卷积层(Convolutional Layer, CONV-K-N)
功能:提取局部特征。
符号含义:
- $K$ — 滤波器尺寸(Kernel size):卷积滤波器的宽度和高度,通常为正方形,表示为 $K \times K$。
- $N$ — 滤波器个数(Number of filters):卷积层中滤波器的数量,决定了该层的 输出通道数 ($C_{out} = N$)。
- $P$ — 填充(Padding):在输入特征图的边缘补充像素,以保证输入和输出的特征图尺寸满足特定需求。
- $S$ — 步幅(Stride):卷积核每次移动的步长,定义了滤波器如何滑动覆盖输入特征图。
输出维度:
计算时向下取整,可以想象滑动窗口滑到最后一步时,还剩余一部分无法卷积。
same模式:当 $P=(K-1)/2$ 时,$H_{\text{out}}=H_{\text{in}}/S$,结果向上取整,注意此时 $K$ 必须为奇数。Pytorch 中当 $S=1$ 时可指定 padding='same' 以保证图片尺寸不变。
参数数量:
反卷积层(Transposed Convolutional Layer, DECONV-K-N)
功能:反卷积层用于在卷积操作的基础上执行空间维度的上采样,恢复特征图的分辨率,同时保留原始的局部特征。它被广泛应用于生成式模型(如 GANs)、图像重建(如去噪)以及语义分割任务中。
符号含义:
- $K$ — 滤波器尺寸(Kernel size),与卷积层相同。
- $N$ — 滤波器个数,决定反卷积的 输出通道数 ($C_{out}=N$)。
- $P$ — 填充(Padding),影响输出的大小。
- $S$ — 步幅(Stride),定义输出的特征图增长速率。
- $O$ — 输出填充(Output Padding),用于调整上采样结果的尺寸,尤其当目标尺寸不是反卷积层计算出的标准尺寸时。
输出维度:
其中 $O$ 是输出填充,用于微调输出尺寸。
same模式:当 $P=(K-1)/2$ 且 $O=S-1$ 时,$H_{\text{out}}=H_{\text{in}} \times S$。当 $S\ne 1$ 时,以 same 模式做卷积和反卷积后,图片尺寸可能变化,这是因为卷积时图片尺寸不能整除 $S$,此时需要微调 $O$。
参数数量:反卷积层的参数数量与标准卷积层相同:
池化层(Pooling Layer, POOL-K)
- 功能:降低特征图的尺寸,增强特征的平移不变性。
- 输出维度:
同样向下取整。
- 参数数量:
全连接层(Fully Connected Layer, FC-N)
- 功能:将特征图展平后与全连接层的每个神经元相连,用于最终分类或回归。
- 输出维度:
根据实际分类需求而定。
- 参数数量:
$\text{weights}$ 是一个输入到输出的线性变换矩阵,$\text{bias}$ 是和输出维度相同的偏置。