在卷积网络中,参数为卷积核中权重以及偏置。和全连接前馈网络类似,卷积网络也可以通过误差反向传播算法来进行参数学习。本文我们从数学角度,来学习卷积神经网络梯度的推导和其反向传播算法的原理。
一、梯度:损失函数 L 关于第 𝑙 层的卷积核𝑾 和 偏置B的偏导数
在全连接前馈神经网络中,梯度主要通过每一层的误差项 𝛿 进行反向传播, 并进一步计算每层参数的梯度。
在卷积神经网络中,主要有两种不同功能的神经层:卷积层和汇聚层。而参数为卷积核以及偏置,因此只需要计算卷积层中参数的梯度。
不失一般性,对第 𝑙 层为卷积层,第 𝑙 − 1 层的输入特征映射为 𝒳^(𝑙−1) ∈ R^(𝑀×𝑁×𝐷),通过卷积计算得到第𝑙层的特征映射净输入𝒵^(𝑙) ∈R^(𝑀′×𝑁′×𝑃)。第𝑙层的第𝑝(1 ≤ 𝑝 ≤ 𝑃)个特征映射净输入:
其中 𝑾 ^(𝑙,𝑝,𝑑) 和 𝑏^(𝑙,𝑝) 为卷积核以及偏置。第 𝑙 层中共有 𝑃 × 𝐷 个卷积核和 𝑃 个偏 置,可以分别使用链式法则来计算其梯度。
根据卷积的导数计算公式,可以参考:
卷积神经网络 - 卷积的变种、数学性质-CSDN博客
损失函数 L 关于第 𝑙 层的卷积核 𝑾 ^(𝑙,𝑝,𝑑) 的偏导数为:
其中,
为损失函数关于第 𝑙 层的第 𝑝 个特征映射净输入 𝒁(𝑙,𝑝) 的偏导数。
同理可得,损失函数关于第 𝑙 层的第 𝑝 个偏置 𝑏^(𝑙,𝑝) 的偏导数为:
在卷积网络中,每层参数的梯度依赖其所在层的误差项 𝛿^(𝑙,𝑝)。
二、卷积神经网络的反向传播算法
卷积层和汇聚层中误差项的计算有所不同,因此我们分别计算其误差项。
1、汇聚层
当第 𝑙 + 1 层为汇聚层时,因为汇聚层是下采样操作,𝑙 + 1 层的每个神经元的误差项 𝛿 对应于第 𝑙 层的相应特征映射的一个区域。𝑙 层的第 𝑝 个特征映射中的每个神经元都有一条边和 𝑙 + 1 层的第 𝑝 个特征映射中的一个神经元相连。
根据链式法则,第 𝑙 层的一个特征映射的误差项 𝛿^(𝑙,𝑝),只需要将 𝑙 + 1 层对应特征映射的误差项 𝛿^(𝑙+1,𝑝) 进行上采样操作(和第 𝑙 层的大小一样),再和 𝑙 层特征映射 的激活值偏导数逐元素相乘,就得到了 𝛿^(𝑙,𝑝)。
这段话比较抽象,大家可以慢慢理解,着重理解前后层之间误差项的关系:
第 𝑙 层的第 𝑝 个特征映射的误差项 𝛿^(𝑙,𝑝) 的具体推导过程如下:
其中 为第 𝑙 层使用的激活函数导数,up 为上采样函数(up sampling),与汇聚层中使用的下采样操作刚好相反。
如果下采样是最大汇聚,误差项 𝛿^(𝑙+1,𝑝) 中每个值会直接传递到前一层对应区域中的最大值所对应的神经元,该区域中其他神经元的误差项都设为 0。
如果下采样是平均汇聚,误差项 𝛿^(𝑙+1,𝑝) 中每个值会被平均分配到前一层对应区域中的所有神经元上。
2、卷积层
当𝑙 + 1层为卷积层时,假设特征映射净输入𝒵^(𝑙+1) ∈ R^(𝑀′×𝑁′×𝑃),其中第𝑝(1 ≤ 𝑝 ≤ 𝑃)个特征映射净输入:
其中𝑾^(𝑙+1,𝑝,𝑑) 和𝑏^(𝑙+1,𝑝) 为第𝑙+1层的卷积核以及偏置。第𝑙+1层中共有𝑃×𝐷 个卷积核和 𝑃 个偏置。
第 𝑙 层的第 𝑑 个特征映射的误差项 𝛿^(𝑙,𝑑) 的具体推导过程如下:
可以看到,第l层的误差项,还是可以通过第l+1层的误差项推导而来,就是所谓的反向传播算法。和前馈全连接神经网络的反向传播算法有所不同,但是思路是类似的,理解这一点很关键。
三、附:卷积神经网络中的上采样和下采样
在卷积神经网络(CNN)中,上采样和下采样是两个关键操作,用于调整特征图的空间尺寸,从而达到提取有用特征和恢复空间分辨率的目的。下面详细解释这两个概念,并举例说明:
1. 下采样(Downsampling)
定义与目的:
下采样主要用于减少特征图的空间尺寸。常见方法有最大池化和平均池化。
- 最大池化:在一个预定义区域内(如2×2),取最大值。
- 平均池化:在该区域内取平均值。
作用:
- 降维和降低计算量:减小后续层输入的尺寸,从而减少参数量和计算量。
- 增强局部不变性:对小幅平移、旋转和尺度变化不敏感,提高特征的鲁棒性。
例子:
假设我们有一张特征图尺寸为 28×28×64(64个通道),使用 2×2 最大池化,步幅为 2。池化操作会把每个2×2区域中的最大值选出,从而将尺寸缩小到 14×14×64。这一步骤使得网络更关注局部最显著的特征,同时降低计算资源消耗。
2. 上采样(Upsampling)
定义与目的:
上采样用于增大特征图的空间尺寸,常见方法包括最近邻插值、双线性插值以及转置卷积(反卷积)。
- 最近邻插值:简单地复制最近的像素值。
- 双线性插值:根据周围像素的线性关系计算新像素值。
- 转置卷积:通过可学习的卷积核将低分辨率特征图“反向”映射到高分辨率空间,同时恢复部分细节信息。
作用:
- 恢复空间细节:例如在语义分割或图像生成任务中,需要将经过下采样后的特征图恢复到与输入图像相同的分辨率,以便对每个像素做出预测或生成高分辨率图像。
例子:
在语义分割任务中,一个常见的网络(如U-Net)首先对输入图像(例如 224×224)经过多层卷积和池化操作进行下采样,最终得到较小的特征图(比如 28×28)。接着,通过上采样(例如转置卷积)将这些特征图逐步恢复到原始尺寸224×224,以便为每个像素分配一个类别标签。上采样过程中,网络不仅简单放大图像,还通过学习对细节进行重建,从而生成更精细的分割结果。
3. 综合说明
-
下采样:
将输入特征图通过池化操作等方式缩小尺寸,提取局部最重要的特征,同时降低计算量。
例子:从 28×28×64 的特征图通过2×2最大池化变为 14×14×64。 -
上采样:
将下采样后的特征图通过插值或转置卷积等方法放大,还原出细节和空间信息。
例子:在语义分割中,将 28×28×F 的特征图逐步上采样到 224×224,最终得到与原图大小一致的分割图。
这两个操作在网络中通常处于对称结构中(例如编码器-解码器结构):编码器部分通过下采样提取抽象特征,解码器部分通过上采样恢复空间分辨率,最终实现像素级的预测或图像生成。