机器学习:神经网络反向传播推导

转载:https://zhuanlan.zhihu.com/p/23270674

自己推导一遍就完全理解梯度的更新方式了!

机器学习:神经网络反向传播推导

前向传播

  1. 先计算机器学习:神经网络反向传播推导的所有输入:机器学习:神经网络反向传播推导,代入数据可得:机器学习:神经网络反向传播推导;
  2. 然后利用logistic函数计算得机器学习:神经网络反向传播推导的输出:机器学习:神经网络反向传播推导;
  3. 用同样的方法得机器学习:神经网络反向传播推导

对输出层神经元重复这个过程,使用隐藏层神经元的输出作为输入。这样就能给出机器学习:神经网络反向传播推导的输出:

机器学习:神经网络反向传播推导,代入数据可得:

机器学习:神经网络反向传播推导,则其输出为:

机器学习:神经网络反向传播推导

同样可以得到机器学习:神经网络反向传播推导

开始统计所有的误差

机器学习:神经网络反向传播推导

如上图,机器学习:神经网络反向传播推导的原始输出为0.01,而神经网络的输出为0.75136507,则其误差为:

机器学习:神经网络反向传播推导

同样可得 机器学习:神经网络反向传播推导

综合所述,可以得到总误差为:机器学习:神经网络反向传播推导

反向传播

输出层

对于机器学习:神经网络反向传播推导,想知道其改变对总误差有多少影响,于是得:机器学习:神经网络反向传播推导

通过链式法则可以得到:

机器学习:神经网络反向传播推导

机器学习:神经网络反向传播推导

机器学习:神经网络反向传播推导

机器学习:神经网络反向传播推导

机器学习:神经网络反向传播推导

机器学习:神经网络反向传播推导