机器学习:神经网络反向传播推导
转载:https://zhuanlan.zhihu.com/p/23270674
自己推导一遍就完全理解梯度的更新方式了!
前向传播
- 先计算
的所有输入:
,代入数据可得:
;
- 然后利用logistic函数计算得
的输出:
;
- 用同样的方法得
;
对输出层神经元重复这个过程,使用隐藏层神经元的输出作为输入。这样就能给出的输出:
,代入数据可得:
,则其输出为:
。
同样可以得到。
开始统计所有的误差
如上图,的原始输出为0.01,而神经网络的输出为0.75136507,则其误差为:
同样可得 。
综合所述,可以得到总误差为:。
反向传播
输出层
对于,想知道其改变对总误差有多少影响,于是得:
。
通过链式法则可以得到: