机器学习反向传播梯度推导
在我的前一篇文章中,已经推导出了单层感知机梯度的计算公式
多层感知机梯度推导
φWjkφE=(0k−tk)0k(1−0k)Wj0
1. 链式法则:
φg(x)φf(x)=φh(x)φf(x)φg(x)φh(x)
φWjk1φE=φWjk2φEφWjk1φWjk2
2. bpnn推导:
注:Σ,σ为激活函数,同时OjJ=σ(xjJ)
所以:φWjkKφE=(OkK−tk)OkK(1−OkK)OjJ
φWjkKφE=(OkK−tk)δkOjJ
那么现在的关键就是求出φWijJφE以及找出下一层权值梯度与上一层权值梯度的关系,依次迭代
φWijJφE=φWijJφ21Σi=0m(OkK−tk)2
对WijJ的导数有影响的只有OkK,所以:
φWijJφE=φWijJφ21(OkK−tk)2
φWijJφE=(OkK−tk)φWijJφOkK
φWijJφE=(OkK−tk)φWijJφσ(xkK)
φWijJφE=(OkK−tk)OkK(1−OkK)φWijJφxkK
使用链式法则:φWijJφE=(OkK−tk)OkK(1−OkK)φOjJφxkKφWijJφOjJ
φWijJφE=(OkK−tk)δkKWjkφWijJφOjJ
φWijJφE=(OkK−tk)δkKWjkφWijJφσ(xjJ)
类似于上一层推导:φWijJφE=(OkK−tk)δkKWjkδjJxj0
神经网络计算过程:
- 通过前向传播计算出训练结果
- 将训练结果通过反向传播作用于梯度下降