目录
一、简单理解
bp是back propagation的简写,意思为反向传播。而网络,我找到了下面这个三层网络的图,

我感觉这个图还是可以看的,将N看作输入层,R作为输出层,N1—N5作为隐藏层,M1—M5看作输入层到隐藏层的权重,A1—A5为隐藏层到输出层的权重。而这个图的计算也比较简单,R=N*M1*A1+N*M2*A2+N*M3*A3+N*M4*A4+N*M5*A5.。这个图并非神经网络,他只是一个普通的网络,因为它是单向传播的,神经网络是可以反向传播的网络。
二、BP神经网络的结构原理
首先,给出它的结构图:

1、正向传播
看下面这个我自己画的图,应该比较好理解

但是这个图只是一个节点的图,接下来将每一个节点计算出来,进行简化。

然后,其实这个网络可以转化为几个矩阵相乘的步骤。

这里,再对关于b的那几个进行说明,那是阈值,设置阈值的目的是为了更快更好逼近真实关系。
正向传播到此结束。
2、反向传播
首先说一下反向传播的原因是预测值与真实值之间的误差太大了,所以有了反向传播,而反向传播的目的是为了调整权重。
这里误差就得是损失函数啦!(分类问题用交叉熵,回归问题用均方差)
Loss=|y0-y|;
我们得目的不是为了调整权重嘛!所以在这里用到了梯度下降法。梯度是什么?就是损失函数增加最快得方向(高数下册学到的),而沿着梯度的反方向就可以让损失函数逼近最小值。
反向传播的过程可以理解为,根据损失函数,反向算出d(u1,1),d(u1,2)等,再将原来的参数加上自己的梯度,就完成了一次反向传播。
需要用到链式求导。




其实,这个推导过程不好理解,那么这里有老师讲过的,比较好理解的截图。
在这个图的基础上进行梯度下降即可。
三、BP神经网络总结
通过一次正向传播,和一次反向传播,我们就可以将网络的参数更新一次,所谓训练网络,就是让正向传播和反向传播不断的往复进行,不断地更新网络的参数,最终使网络能够逼近真实的关系。
理论上,只要网络的层数足够深,节点数足够多,可以逼近任何一个函数关系。但是这比较考验你的电脑性能,事实上,利用 Bp 网络,能够处理的数据其实还是有限的,比如 Bp 网络在图像数据的识别和分类问题中的表现是很有限的。但是这并不影响 Bp 网络是一种高明的策略,它的出现也为后来的 AI 技术做了重要的铺垫。

3383

被折叠的 条评论
为什么被折叠?



