反向传播算法一般用链式法解释,例如有如下神经网络

详解反向传播算法

一 前向传播

对于节点h1来说,h1的净输入neth1如下
详解反向传播算法

接着对neth1做一个sigmoid函数得到节点h1的输出
详解反向传播算法

类似的,我们能得到节点h2,o1,o2的输出outh2,outo1,outo2.

二 误差

得到结果后整个神经网络的输出误差可以表示为:
详解反向传播算法

其中output就是刚刚前向传播算出来的outo1,outo2;target是节点o1,o2的目标值。Etotal是衡量二值误差的。
这个Etatol也可以认为是cost function,不过这里省略了防止overfit的regularization term(详解反向传播算法)
展开得到
详解反向传播算法

三 后向传播

对输出层的w5

通过梯度下降调整w5,需要求详解反向传播算法 由链式法则:
详解反向传播算法

如下图所示:
详解反向传播算法

以上3个相乘得到梯度详解反向传播算法,之后就可以训练了:
详解反向传播算法

很多教材,比如stanford的课程,为了计算方便会把中间结果
详解反向传播算法

记做详解反向传播算法

表示这个节点对最终的误差需要负多少责任。所以有
详解反向传播算法

对隐藏层w1

通过梯度下降调整w1,需要求详解反向传播算法 ,由链式法则:

详解反向传播算法

如图所示:
详解反向传播算法

参数w1影响了、neth1,进而影响了outh1,之后影响了Eo1,Eo2。

求解每一部分:
详解反向传播算法
其中
详解反向传播算法
这里详解反向传播算法 之前计算过。

详解反向传播算法 的计算也类似,所以得到

详解反向传播算法
详解反向传播算法 的链式中其他两项如下:
详解反向传播算法
详解反向传播算法

相乘得到
详解反向传播算法

得到梯度后,就可以对w1迭代了
详解反向传播算法
在前一个式子里同样可以对详解反向传播算法 进行定义
详解反向传播算法

所以整梯度可以写成详解反向传播算法

所谓的后向传播,其实就是『将来在宣传传播上出了偏差,你们要负责的!』,每一个节点负责的量用\delta表示,那么,隐藏节点需要负责的量,就由输出节点负责的量一层层往前传导。

四 图示

详解反向传播算法

详解反向传播算法

详解反向传播算法

参考:
【1】A Step by Step Backpropagation Example
【2】Unsupervised Feature Learning and Deep Learning Tutorial
【3】https://www.zhihu.com/question/24827633

相关文章:

  • 2021-07-27
  • 2021-05-12
  • 2021-10-16
猜你喜欢
  • 2021-06-24
  • 2021-09-30
  • 2021-05-23
  • 2021-05-17
  • 2021-08-29
相关资源
相似解决方案