# 卷积层做了什么

# 平移不变性

考虑检测某个图像特征的模型

当图像的特征经过平移后,理应对模型的结果影响不大

==> 对图像的每个位置应用 相同的 weights ==> 卷积核

# 局部性

有时候我们只关注图像的局部特征,距离较远的图像应当对模型的输出影响较小

==> 考虑某个像素周围一定范围的图像

==> 卷积核的大小

# 运算

选取一个窗口,进行互相关运算

窗口大小即为卷积核(kernel_size)大小

# Conv2d

1
2
3
4
5
6
7
8
9
10
11
12
13
class Conv2d(
in_channels: int,
out_channels: int,
kernel_size: _size_2_t,
stride: _size_2_t = 1,
padding: _size_2_t | str = 0,
dilation: _size_2_t = 1,
groups: int = 1,
bias: bool = True,
padding_mode: str = 'zeros',
device: Any | None = None,
dtype: Any | None = None
)

输入通道,输出通道

卷积核大小

步长与填充

# Channels

可理解为图像蕴含的某类特征,每个通道负责某种特征(但往往是所有通道共同使用识别特征,难以解释为某类具体的特征)

特征映射 -- feature maps

一般随着神经网络层数的加深,channels 数量增加,空间分辨率减小

# Padding

避免因卷积操作造成图像尺寸减小

一般为 (Kernel_size - 1) /2

# Stride

卷积核移动的步长

# Receptive field

感受野

对于某一层的某个元素 x,对 x 的计算造成可能影响的前面层的所有元素

(形象理解,某个位置能观测的图像范围)

一般随着网络加深,感受野增大,实现低层网络关注局部特征,高层网络关注全局特征的效果

# Pooling

汇聚层

  • 降低卷积层对位置的敏感性
  • 降低对空间降采样的敏感性

# Avgpool

每个窗口的平均值

# Maxpool

每个窗口的最大值

# 配合步长

常配合 stride 使用降低数据尺寸

2024/08/07