李宏毅DNN学习笔记-Backpropagation

前面学到cost function 长如下酱紫

梯度下降法中cost 的增量表示为,对于每个给定都需要计算,如果一个一个的计算那就要算到死啊,这里有个好的方法就是鼎鼎大名的backpropagation。
进入backpropagation之前,先复习下链式法则chain rule啊,快忘光了。。。

 

case 1 假设如上两function, 当改变x之后呢,透过 g(x)这个 function y 的值会改变,y的值改变之后通过h(y) z的也跟着改变,
所以改变x的值会影响y的值,会影响z的值。通过链式法则,z对x的影响可以写成右边的微分形式。

case 2  三个function,输出x、y的输入都是s,输出z的输入为x和y, s的改变影响x、y,
又通过x、y影响z,所以s的改变通过两条路径来影响z这个值,通过链式法则,x对z的影响可通过上右图来表示。
 

怎么计算呢?

表示第 l -1 层的第 j 个neuron 连到 第 l 层网络的第 i 个neuron与之间见的weight。
如果我改变了的值,我会改变neuron i 输入的值,改变activation function 的输入值之后呢,

我会改变这个neuron 的输出值,进过一连串反应之后,最后会改变cost function 的值。想象一下刚才的chain rule,

这个chain可以写成; 

 将分两项来计算,前一项,某层网络的某个neuron的z和它的weight w 的微分,如下红框展示;

后一项是cost 对 某层网络的某个neuron的z 微分。

 首项计算

 某层网络的某个neuron可能是中间层也可能是input ,分情况讨论,如上。经微分后得到的结果是:
前一层某neuron的output(带入input x 可求出),或者是某个neuron的输入x(不要计算)。

对于第二项的计算比较复杂,因为它表示的是最终输出cost对其中某层某neuron的weight的微分
,这其中经过了不知多少层多少neuron,怎么办?这就是Backpropagation的价值所在啊。。。
且看如下分解;

  第二项计算


曲线救国,问题转化为怎么计算 最后一层的,怎么计算出最后一层呢?

最后输出层 算出之后,接下来找到某一层 l 与 l+1的层的关系(层与层的关系);

微分,可以理解为变化的影响因子, 它具有传导效益,如上分析某个neuron  z 的变化经过输出 a 的传导,
对后一层neuron z的影响,最终传导到cost function。根据链式法则可写出上图的微分公式,经过计算可简化出关于的层级关系,如下分析;

 

 的简洁层级关系求出来了,是不是很像一个新类型的neuron?weight 为原neuron的装置,激活函数是个整数,可看成硬件电路中的放大器。

 总结一下:分析某个weight改变的对网络的影响,通过链式法则写出微分公式,分项微分,对第二项不确定层级的z微分,
转化思路,先求出最后一层,再找出层级的关系,由最后一层算起到要算的那一个weight 的

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值