链式法则
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了链式法则相关的知识,希望对你有一定的参考价值。
参考技术A 神经网络最最最重要的公式—— 链式法则
通过链式法则,可以把最后一层的误差一层一层地输出到中间层的权值上去,从而得到中间层的梯度信息,从而更新权值,达到很好的效果。
用pytorch实现链式法则:
output:
caffe源码 理解链式法则
网络结构
首先我们抽象理解下一个网络结构是怎样的,如下图所示
- F1,F2,F3为某种函数
- input为输入数据,output为输出数据
- X1,X2为为中间的层的输入输出数据
总体来说有以下关系
- X1 = F(input)
- X2 = F1(X1)
- output = F2(X2)
在训练过程中output其实就是loss层的输出,训练的目的就是为了把loss值降到最低
链式法则
- 链式法则(英文chain rule)即是微积分中的求导法则,用于求一个复合函数的导数,是在微积分的求导运算中一种常用的方法。
- 表达式:
- 其他形式:
链式法则用文字描述,就是“由两个函数凑起来的复合函数,其导数等于里边函数代入外边函数的值之导数,乘以里边函数的导数。
梯度计算
- 假设要求output对X1的梯度
- 由output = F2(F1(X1)),根据链式法则,output对X1的梯度为
- 由output = F2(F1(X1)),根据链式法则,output对X1的梯度为
- 假设F(x)= wx + b,相求output对w和b的梯度
- 则output对w的梯度为
- 则output对w的梯度为
- 则output对w的梯度为
以上是关于链式法则的主要内容,如果未能解决你的问题,请参考以下文章