神经网络之 BP 算法

神经网络的一种求解W的算法,分为信号“正向传播(FP)”求损失,“反向传播(BP)”回传误差;根据误差值修改每层的权重,继续迭代

神经网络之 BP 算法

BP算法也叫做δ算法。以三层的感知器为例(假定现在隐层和输出层均存在相同类型的**函数)

神经网络之 BP 算法

输入层误差

神经网络之 BP 算法

隐层误差

神经网络之 BP 算法

输入层误差

神经网络之 BP 算法

误差E有了,那么为了使误差越来越小,可以采用随机梯度下降的方式进行ω和υ的求解,即求得ω和υ使得误差E最小

神经网络之 BP 算法神经网络之 BP 算法

神经网络之 BP 算法

BP算法的例子

神经网络之 BP 算法

  • 初始值:w(0.1,0.15,0.2,0.25,0.3,0.35,0.4,0.45,0.5,0.55,0.6,0.65),   b(0.35,0.65)
  • 输出值:O=(0.01,0.99)
  • 假设隐层和输出层都使用 sigmoid **函数
  • 学习率 η=0.5 \eta=0.5η=0.5

FP过程

神经网络之 BP 算法
神经网络之 BP 算法

同理可以得到:

神经网络之 BP 算法
神经网络之 BP 算法

神经网络之 BP 算法

神经网络之 BP 算法out 

同理可以得到:

神经网络之 BP 算法

输出层误差表示如下:

神经网络之 BP 算法
神经网络之 BP 算法

神经网络之 BP 算法

2、BP 过程

输出层到第二层隐层,以求 神经网络之 BP 算法  为例:

神经网络之 BP 算法

下面我们分别求上式的三个部分,其中第一部分:

神经网络之 BP 算法

第二分部因为:

神经网络之 BP 算法

神经网络之 BP 算法

神经网络之 BP 算法

第三部分,因为:

神经网络之 BP 算法

神经网络之 BP 算法

最终得到:

神经网络之 BP 算法

更新 神经网络之 BP 算法 的值:

神经网络之 BP 算法

同理可以求出:

神经网络之 BP 算法

神经网络之 BP 算法

神经网络之 BP 算法 

神经网络之 BP 算法

神经网络之 BP 算法

第二层隐层到第一层隐层,以求 神经网络之 BP 算法 为例:

神经网络之 BP 算法

神经网络之 BP 算法

神经网络之 BP 算法

下面我们分别计算,第一部分()内的:

神经网络之 BP 算法

其中:

神经网络之 BP 算法

神经网络之 BP 算法

神经网络之 BP 算法

神经网络之 BP 算法

注意:这里由于是反向传播,此时要用到之前更新后的 神经网络之 BP 算法​ 的值

神经网络之 BP 算法

神经网络之 BP 算法

同理:

神经网络之 BP 算法

第二部分:

神经网络之 BP 算法

第三部分:

神经网络之 BP 算法

最终:

神经网络之 BP 算法

于是:

神经网络之 BP 算法

同理求出:神经网络之 BP 算法

以上是第一次迭代,经过多次迭代,最终的误差会越来越小