反向传播算法
作者:互联网
BP公式推导
bp算法通过loss计算得到的误差,从最后的输出层,通过loss不断的向后,对能影响到loss变化的传播路径中各个隐藏层的神经元的输入和输出函数求偏导,更新目标权重的一个过程。
具体的计算方式如下。
先来构建一个网络图,然后我们定义一些数学符号
其中
- \(w_{ij}^{l}\) 表示 第\(l\)层中的第\(j\)个神经元与前一层第\(i\)个神经元之间的连接权重
- \(z_{i}^{l}\)表示 第\(l\)层中第\(i\)个神经元的输入
- \(a_{i}^{l}\)表示 第\(l\)层中第\(i\)个神经元的输出
- \(f\) 代表激活函数
其中需要注意的是,每一个神经元内部的结构有输入和输出,求偏导的时候,要分别考虑到它的输入和输出。如下所示:
接下来我们看一下求BP的时候,需要的一些公式和知识点,loss我们使用mse代替,因为好算
我们以求解第1层第一个神经元的权重\(w_{11}^{1}\)为例子,红色箭头表示其会通过那些路径影响倒loss,反过来,loss也是通过原路径去影响到这个权重
那么链式求导的公式为
注意此处输出层并未被激活,所以我们忽略loss对输出的求导,否则loss还需要对\(\sigma(z)\) 求一次导
对于其他层的权重,链式求导方式为
标签:输出,权重,loss,层中,传播,算法,反向,求导,神经元 来源: https://www.cnblogs.com/zhouyc/p/13589917.html