BP反向传播算法的思考和直观理解 -卷积小白的随机世界

https://www.toutiao.com/a6690831921246634504/

 

 2019-05-14 18:47:24

本篇文章,本来计划再进一步完善对CNN卷积神经网络的理解,但在对卷积层反向传播算法的理解中,越发觉得之前对于BP反向传播算法的理解是不到位的。小白近日觉得,对于深度神经网络,"反向传播"的思想是灵魂。因此,本篇力求再次深入理解和思考"反向传播"算法,并尽量从直观理解上加以描述,为后续深度学习模型的理解打好基础。

第三十四篇 BP反向传播算法的思考和直观理解

物质的宇宙来源模型臆想

BP反向传播算法的思考和直观理解 -卷积小白的随机世界

 

小白体会,宇宙本身类似于一个神经网络。"奇点"无限小且空无一物,但蕴涵无限能量。万事万物无中生有,这里的"有"即"物质","物质"相对于奇点的"空"可理解为"偏差"。

(注:物质是"有",用数学的1表示;宇宙之初奇点空无一物,用0表示;1的存在,可理解为相对于0的偏差)

"物质"(偏差)并不是独立存在的,是相对的(并非真的无中生有)。其需要在"时空"(这里的时空,被呈现为光速,地球引力常数g,空间距离h,… …)中被表征,表征为"质量""速度""位置""形状""颜色"等这些信息(这些信息可理解为能量的外在)。即,质能方程"E=mC2"的含义是,能量在时空中,被表征为物质。因此,物质,时空,能量三者一体,共生共存,互为表征。

"输入","网络权重参数","输出"三者一体,共生共存,互为表征

神经网络有输入,网络权重参数,和输出。我们有理解,输入即能量(类似于:奇点中无限能量),这些能量表征于网络中(类似于:宇宙大爆炸,不仅炸出了时空;同时,能量也分布在时空中,并表征于时空网络中,形成物质外在),而我们感受到的客体物质以及主体人本身,本质为能量在时空中的表征。

输入,神经网络的参数,输出三者之间,也是共生共存,互为表征。在神经网络的学习过程,即反向传播算法 ,其本质是根据输入和偏差来调整神经网络参数,不断调整,使三者形成一体,互为表征。

注:小白体会到,深度神经网络的学习,类似于人类认知宇宙的过程,在历史长河中,人不断的通过从外界获得信息和能量(输入)以及人类随时间推移产生了对物质外在认知的偏差(输出偏差),来调整人类对时空规律(神经网络参数调整)的认知。

深度神经网络的学习,也可比喻成宇宙爆炸的过程,宇宙中尘埃,行星,横行,生物,生命的形成过程,是相对于宇宙奇点的偏差。这些偏差形成的过程,也是时空形成的过程(时空常数根据物质偏差同步形成和调整),而这个过程遵循当前这个宇宙中的能量守恒定律(损失函数)。

神经网络的"梯度"和"输出偏差"的互为表征

BP反向传播算法的思考和直观理解 -卷积小白的随机世界

 

如上图一条斜线,这个斜线的斜率是导数,而"导数"等于(Y2-Y1)/(X2-X1)。此刻,我们应有体会,在X偏差((X2-X1))(或Y偏差(Y2-Y1))不变的情况下,导数(梯度)其实和Y偏差(或X偏差)为一体两面,可互为转化。当然,对于曲线的情况下,这里的偏差指的是Delta X或Delta Y。

BP反向传播算法的思考和直观理解 -卷积小白的随机世界

 

对于上述的神经网络,输入向量Xn是确定的,但输出Y是有偏差的(和数据Xn的标记不一致)。我们知道,Y的偏差是由隐藏层的所有权重参数造成的。也即,Y偏差和神经网络参数为一体两面。小白此刻产生两个问题。

问题1:神经网络中不同层的权重如何分别计算?

问题2:输出偏差和梯度一体两面的关系具体如何体现?

输出偏差和能量守恒

BP反向传播算法的思考和直观理解 -卷积小白的随机世界

 

如上图,我们可以把输入向量Xn(x1,x2,x3)看作是能量,把神经网络看作是时空网络h(w,b),把输入向量的标记y看作是物质。有y=hw,b(X)(我们想象这类似于E=mC2)。

另外,损失函数相当于效益函数,即神经网络的调整目标是"遵循能量守恒定律"(即损失函数最小)

BP反向传播算法的思考和直观理解 -卷积小白的随机世界

 

如上图,我们应有两个疑问:

疑问1:为什么要计算Zi的偏差?

这个问题应该很容易回答。因为,Zi是输出,由于有损失偏差(能量不守恒),这个损失偏差是由输出Zi的偏差造成的。因此,一旦损失函数未达到最优,Zi必有偏差。Zi的偏差是神经网络参数的偏差造成的。因此,我们需要根据Zi的偏差来调整神经网络的参数。我们需要根据输入,不断的调整,一直到损失函数达到最优(能量守恒),Zi也就没有了偏差(正确的输出),这时,我们的 神经网络也就完成了学习。

疑问2:为什么要计算损失函数对于输出Zi求导?

我想这个问题的答案在于对"求导"的理解。导数是一个函数,函数的因变量是输出Zi,函数的值 为"Zi处损失偏差"和"Zi偏差"的比值,也即Zi处关于损失函数的斜率(梯度)。

如果,梯度是一个常数k,那么,我们就有"Zi的偏差=损失偏差(J)/ k"。但是,如果梯度是变化的,那么,Zi偏差如何计算呢?

百般思索后,我们应该没有办法来表示。但是,我们会想到,"损失"的偏差可以由很多个局部的偏差叠加表示,这时我们似乎有所觉悟,这就是"微分"的意义。如下图:

BP反向传播算法的思考和直观理解 -卷积小白的随机世界

 

因此,此时我们应该有如下的体会:

1. 斜率的本质,反应了损失偏差相对输出偏差Zi的缩放程度;因此,我们知道了Zi相对损失偏差的斜率,也就完全知道了Zi的相对偏差;

2. 对于非线性关系,导数反应的局部损失偏差相对于输出偏差Zi的缩放成都;因此,我们应有理解,导数完全承载了Zi的相对偏差的全部信息;

3. 对于非线性关系,"导数"虽然是局部的一个表达,但,这个局部的表达是适用于整体的(这个导数是曲线整体的导数)。因此,偏差和倒数,都承载了整体的信息。只不过,对于线性关系,一个偏差就可以承载(因为两个点得到偏差,就可以确定直线的整体);但,对于非线性关系(曲线),我们就不能使用偏差了,因为,曲线整体会对应无数的偏差,因此,我们采用导数。其实,细想,倒数的本质也是偏差,只不过是动态调整的偏差(不同x的倒数不同),因此,导数意味着整体的偏差。

输出偏差和网络权重梯度的一体性

BP反向传播算法的思考和直观理解 -卷积小白的随机世界

 

如上图,我们应有体会,"Zi"的偏差和产生"Zi"的网络权重"wij"的偏差是一体的。Zi的偏差完全由"Wij"产生。但此时,对于网络权重"Wij"的偏差,我们改了一个新名字,称之为"梯度"。这是因为,对应"Zi"有"j"个权重,因此,这里是一个权重偏差向量(wi1偏差,wi2偏差,wi3…偏差),这个向量我们称之为"梯度"。

因此,我们应有理解,输出Zi的偏差和权重梯度是一体的。

神经网络多层偏差和梯度传导模型

BP反向传播算法的思考和直观理解 -卷积小白的随机世界

 

对于多层神经网络,我们知道每一个"隐藏层"或"输出层"可理解为一次特征的映射,即我们可以把每一层看作一个特征的空间。可以形象的理解为,输入层看作"能量粒子层",能量粒子通过旋转组合(权重)形成"原子层"(隐藏层),然后逐步形成"元素层","分子层",直到最后输出我们肉眼看到的"物质"。也就是说神经网络的每一"层"描述的是同一个世界,只不过维度不同,即不同的"层"对应原子世界,分子世界,物质世界等,但都是同一个世界。

此时我们应有如下理解:

"损失偏差","输出层偏差","输出层权重梯度","隐藏层偏差","隐藏层权重梯度","输入层权重梯度","损失函数的偏差",这七个变量是对等关系,只不过是在不同维度下的不同的具体表现形态。

BP反向传播算法的思考和直观理解 -卷积小白的随机世界

 

上图是,L-1层权重梯度的计算。这样我们就有了如下图的总结对照。

BP反向传播算法的思考和直观理解 -卷积小白的随机世界

 

总结和引申思考

反向传播算法使我们加深了对函数的理解。其实,神经网络的每一层都可以理解为一个函数Y=f(X)。而多层神经网络可理解为一个嵌套的函数,比如:Y1=f1(X);Y2=f2(Y1);Y3=f3(Y2);…;Y=fn(Yn-1)。这样,Y=f(X) = fn(fn-1(… f2(f1(X) ) ) );

其中,Y可以理解为"果",而X可理解为"因"。而神经网络学习的目的就是要找到f(),即寻找因果关系。

对于线性因果关系(线性函数),我们是很容易就能找到的,我们知道两点决定一线。我们也应有理解,"斜率"其实就是因果关系。这个"因果"关系,如果从因和果的角度看,其反应的是"果"的变化幅度引起的"因"变化幅度缩放关系。

比如蝴蝶效应,一场风暴归结于一个蝴蝶煽动下翅膀,这个缩放关系极大。但,蝴蝶煽动翅膀也可能仅仅会引起一个玩耍孩童的偶然注目,这个缩放关系又是较小的。因此,我们发现现实世界的数学模型并非都是线性关系。

BP反向传播算法的思考和直观理解 -卷积小白的随机世界

 

如上图,是一个蝴蝶煽动翅膀的一个非线性因果的世界。这时,我们有一些理解如下:

A: 图中的曲线表示了一个蝴蝶煽动翅膀的因果世界;

B: 图中的曲线上的一个单点是没意义的,比如蝴蝶一次煽动翅膀,恰巧风暴发生了,这没有任何意义。假如蝴蝶煽动10次,风暴发生8次,这才可能说明蝴蝶振翅和风暴之间存在因果。因此,曲线的意义在于曲线的变化,即曲线局部偏差的走向,也即"因偏差和果偏差的缩放程度"。

C: 深度学习的过程是寻找上面曲线的过程。如何学习呢?根据第2点,我们应该想到,我们需要找到曲线上的所有的局部偏差,最后得到完整的曲线。也即,我们根据每一个样本数据(或一小部分样本数据)来形成局部的偏差。其实,这个过程就是"梯度下降",也是神经过程学习的过程,也是因果曲线形成的过程。

D: 根据第2点,我们还会想到,其实这里蝴蝶煽动翅膀和风暴的因果关系还包含了"概率",因此,我们应有理解,"概率"也是对因果关系的数学建模。概率可以表示随机事件的因果关系,概率和斜率本体相同。

小白体会,"学习"是智能的本质。既然是学习,那么学习的内容已经存在了,即时空逻辑,外在因果已经客观存在。学习的过程是把外在客体的时空逻辑和因果关联进行映射和投影,这个过程我们需要解决两个问题,一个问题 是映射和投影的载体,即我们的学习模型;另一个问题是 我们学习过程中,时空逻辑信息和因果信息从外在客体流动到我们的模型的信息流的编码,格式以及学习模型载体对信息流的解析和固化描绘,即我们的算法;

分层的深度神经网络模型就是我们的学习模型载体;BP反向传播就是我们的算法,对于这个算法,"偏差"和"梯度"就是我们对信息流的编码,反向传播(即梯度和偏差的计算)以及根据计算结果对学习模型的调整就是我么对信息流的解析和固化。

小白体会到,为什么通常我们认为计算能力和存储能力是衡量信息时代发展的指标。因为,其反应的我们人类的学习能力,是我们对外在宇宙世界的认知能力和控制能力。

此外,宇宙的本质是变化,变化是宇宙的终极定律,而我们人类所描绘的宇宙是变化的载体。也就是说,时空的意义在于给变化提供了载体。

"变化"来源于哪里呢?奇点中存在一只蝴蝶吗?我想这个蝴蝶应该在奇点的外面,那这个蝴蝶又是什么呢。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值