cnn 反向传播推导_一步一步推导反向传播

一步一步推导反向传播

假如我们由如下的网络(这里只给出最后两层

)其中
是最后输出:

46bdfdd63bdb165fd4519c11e7eda074.png

其中有如下定义:

注意这里的
都是矩阵或向量。其定义和吴恩达的一样,比如
代表第

因为反向传播是要求最后的损失对前面所有的权重的导数,然后再更新权重,所以我们的关键在于求出损失的权重的求导,上面的图中最后的输出是

,所以我们对应的损失如下:

我们将

我们的目的是要求

,我们可以通过链式运算:

首先由上面的损失公式,我们可以很直观的看出来

,注意这里省去了常数部分。

根据链式法则,我们可以得到

,然后再结合式1,因为
,并且
,所以
,最终我们得到如下:

我们离权重只剩下一步之遥了,同样利用链式法则,我们可以得到

,结合式子2,因为
,所以
到此为止,我们得到了损失对
的导数:

看到这里,可能心里想,这如果要好几百层怎么推呀,其实我们可以发现当我们求第

层的时候,我们会用到
层的数据,所以如果能找到规律就好了,那么我们再向下推一层看看,同理,根据链式法则,我们可以得到
,而
,所以
,所以我们得到如下:

看看我们发现了什么,我们发现第

层对
的导数和第
层对
的关系了,所以我们可以设
,所以我们有:

再根据链式法则得到对权重的导数为:

其中(

按照(7)这种写法,我们也可以将(4)改下如下:

所以我们就得到了我们的损失对于任意

层的权重的导数,也就是式子4_1,发现里面只存在一个
是未知的,而结合式子6,我们就能求出所有层的

比如我们最后一层是

层,根据
的定义得到
,因为最后一层,所以结合损失,计算得到
,可以参考式子3的计算。当计算得到第
,那么
就可以递推得到,进而带入4_1,就能得到对所有层权重的导数,进而更新权重。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值