反向传播公式推导

参考博客:反向传播算法(过程及公式推导)

1. 符号定义

  • wLjk 表示第L1层的第j个神经元到第L层的第k个神经元映射的权值。
  • bLk 表示第L层的第k个神经元的偏置量。
  • zLk=jwLjkaL1j+bLk 表示第L层的未经激活函数的输出。
  • aLk=σ(zLj) 表示第L层经过sigmoid函数后的输出。

2. 损失函数定义

二次代价函数:(x代表输入的样本,y(x)代表标签值)

C=12nx||y(x)aL(x)||2

当只关注某一个样本xi的时候,有:

C=12(ya)2

3. 反向传播推导

  • 计算最后一层神经网络产生的错误

    对于每一个L层的神经元有:

δLk=CzLk=CaLkaLkzLk

​ 则整个L可以用矩阵的Hadamard积(矩阵行行对应相乘)来进行计算:

δL=aCσ(zL)
  • 反向传播

    计算每一层的每个神经元产生的误差,推广到每一层的每个神经元有:

    δLk=CzLk=mCzL+1mzL+1maLkaLkzLk=mδL+1mwL+1kmaLk+bL+1maLkσ(zLk)=mδL+1mwL+1kmσ(zLk)

    推广到整个一层有:

    δL=((WL+1)TδL+1)σ(zL)
  • 计算权重的梯度

    CwLjk=CzLkzLkwLjk=δLk(wLjkaL1j+bLk)wLjk=aL1jδLk
  • 计算偏置的梯度

    C\partbLk=CzLkzLkbLk=δLk(wLjkaL1j+bLk)bLk=δLk

4.总结

反向传播四个公式:

  1. 输出层误差:

    δL=aCσ(zL)
  2. 反向传播每一层误差:

    δL=((WL+1)TδL+1)σ(zL)
  3. 权重梯度:

    CwLjk=aL1jδLk
  4. 偏置梯度:

    CbLk=δLk

本文标题:反向传播公式推导

文章作者:zhkmxx930

发布时间:2019年02月17日 - 18:02

最后更新:2019年03月27日 - 16:03

原始链接:https://zhkmxx9302013.github.io/post/9e924caa.html

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

一分钱也是爱,mua~
Powered By Valine
v1.5.2