卷积层如何反向求导

本文探讨了卷积神经网络的反向求导过程,解释了如何在卷积层进行误差反向传递。通过回顾正向卷积的计算方式,详细阐述了如何计算损失函数对输入x和卷积模板y的偏导数,涉及到步长、填充和膨胀等关键因素。
摘要由CSDN通过智能技术生成

通常我们在进行卷积的运算时,只考虑正向运算,似乎我们对卷积的正向运算非常了解。但是机器学习或者是深度学习的关键在于参数优化,而优化势必要反向运算,即损失函数对各个层级的参数进行求偏导。如果是如果是传统的机器学习,由于他的链路比较短,所以反向求导似乎很容易想象、很容易理解。而一旦切换到深度学习的阵营,我们对于反向求导似乎不怎么考虑,因为各种深度学习框架早已内置了各种反向求导机制,我们只管设计深度卷积框架就行,优化的事情交给TensorFlow或pytorch等就行。
今天就来思考一下针对卷积神经网络的的反向求导过程,他到底是怎么实现的?今天的思考只是一个粗浅的看法,不涉及关于反向求导的复杂庞大的理论体系。

第一件事情

所谓的误差反向传递或者是反向求导,理论上就是复合函数求偏导,这个复合函数层层嵌套,这是理解反向求导的内核。打个不太恰当的比方,就如同洋葱一样,剥很多层皮之后才可能看到那个洋葱心,反向求导就是这么个玩意,但是在这里,我们剥的每层皮都有价值,因为在每层皮上既可以求出损失函数对该层参数的偏导数,以方便优化,又能将损失误差通过该层的参数传递到该层的前向输入口(即上一层的输出口),以方便前面一层(里面一层)的求偏导工作。

第二件事情

在卷积神经网络中,误差是怎么一步一步往后传递的?如果该层有一个显示的表达式,我们很容易反向求导,可是他偏偏是以卷积模板通过滑窗的方式进行的前向计算,这个我们的求导增添了意思朦胧感。解铃还须系铃人,如果你认真思考正向的卷积到底是怎么做的,其实就很容易逆向求导。
这里我们假设该层的逆向输入偏导数是 z ′ z' z,他的维度和size与该层的正向输出 z z z完全一样。假设该层的正向输入为 x x x,其中的一个卷积模板filter为 y y y,整个网络的损失函数标记为 L \mathcal L L L \mathcal L L对该层的正向输入 x x x求偏导的结果记为 x ′ x'

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值