cnn 反向传播推导_四张图彻底搞懂CNN反向传播算法(通俗易懂)

本文深入介绍了卷积层和池化层的反向传播算法。通过图示展示了如何将卷积层转换为全连接层进行反向传播,并详细解释了平均池化和最大池化的反向传播过程。对于卷积层,重点在于矩阵展开和转换;而对于池化层,主要探讨了如何根据最大值索引更新梯度。这些内容对于理解深度学习中的反向传播至关重要。
摘要由CSDN通过智能技术生成

038651bb1547e4bc93e773dc69252b96.png

阅读本文之前,请首先阅读之前讲述的全连接层的反向传播算法详细推导过程:

反向传播算法推导过程(非常详细)已经了解反向传播算法的请自动忽略。

1. 卷积层的反向传播

废话不说,直接上图:

cd061bfa67d7ce6ce05c93749aecbbc0.png

假设输入为一张单通道图像

,卷积核大小为
,输出为
。为了加速计算,首先将
按卷积核滑动顺序依次展开,如上图所示。其中,
中的红色框代表
中的红色框展开后的结果,将
依次按照此方式展开,可得
。同理可得
,然后通过矩阵相乘可得输出
等价)。此时,已经将CNN转化为FC,与反向传播算法完全一致,这里不再做详细介绍。

当有 N 个样本,做一个batch训练,即channel=N时,前向与反向传播方式如下图所示:

f0099c3d986b62b50033fabed9360b8d.png

其中,输入图像channel=3,使用2个

的卷积核,输出两张图像,如图所示。红色框、黄色框代表的是卷积核以及使用该卷积核得到的输出图像
。当输入图像为一个batch时,
的转化方式如上图,首先将输入图像与卷积核分别按单通道图像展开,然后将展开后的矩阵在行方向级联。此时,已经将CNN转化为了FC,与反向传播算法完全一致,这里不再做详细介绍。

2. Average pooling的反向传播

0b773c2b5cfb13bd3e134d982953e613.png

不用求,因为
为常数。

3. Max-pooling的反向传播

c824ae156dab970c8e5c72b4c4cda44a.png

遍历

的每一行,找出此行最大值的索引
,然后将
中索引为
的值设为
对应行的值,将此行其余列的值设为
,如上图所示红框所示。假设
中(1,1)处的值是第一行中最大的值,则将
赋值给
中索引为
的位置。最后计算:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值