复合函数求导法则:
对神经网络的代价函数进行求导的时候,使用反向传播算法计算,会用到上述法则
前向传播公式:
假定:
不定义偏置b
激活函数为a
则有:
= a ( * )
总结:
本层输出 = 激活函数 ( 本层参数 * 本层入参 )
反向传播算法的公式:
假定:
不定义偏置b
代价函数使用
激活函数为a,激活函数的导数为a'
第n层的参数为
第n层的反向偏导为
则有:
最后一层:D = 预测值 - 实际值
其他层: = . * . * a'
如下代码第:115,116行
总结:
误差倒数 = 下一层的误差倒数 * 本层的参数 * 激活函数的导数
最后一层的误差导数(反向传播起始值)= 模型预测值 - 实际值
参数值更新公式:
W = W - .* D
总结:
新参数= 上一次的参数 - 学习率 * 误差导数
代码可参考:https://www.cnblogs.com/jsfantasy/p/12177216.html