在某一层,一个神经元直接对应的区域,比如 3×3
单层卷积核大小 = 感受野大小
小猫在这里可能是 6×6,但每个神经元的感受野还是 3×3
卷积计算:内积+偏置
输入图像一般是三维 张量:高 × 宽 × 通道数
感受野的深度 = 输入通道数
卷积核的 高和宽,通常写成 kernel size 3*3
现代 CNN 更偏好“小核 + 深层堆叠”
如果每个神经元都独立训练一套权重:
在图像上用滤波器滑动:内积+偏置
每个位置的感受野对应一个神经元 → 所有神经元的输出合在一起,形成一张 特征图 (feature map)。
怎么匹配到不同位置的小猫?
假设滤波器学到了“竖直边缘”:
当它扫到猫耳边缘的 3×3 像素时,卷积结果(加权和)会变大 → “检测到竖直边缘”;当它扫到猫爪边缘的 3×3 时,如果也是竖直的 → 同样会输出大值;当它扫到猫肚子一片平坦区域时 → 卷积结果很小(说明没有竖直边缘)
因为同一套权重在全图复用,所以无论这个“竖直边缘”出现在左上还是右下,滤波器都能响应。
矩阵乘法 (3×3 × 3×3):结果还是一个 3×3 矩阵。
卷积里的内积 (Frobenius inner product):
输出 4×4 是因为 stride=1 + padding=0(不补边界);输出 6×6 是因为 stride=1 + padding=1(补边界为0)
如果有 64 个滤波器,就可 以得到 64 组的数字。这组数字称为特征映射(feature map)
输出的 64 张特征图合起来,才是这一层卷积层的输出
把一张比较大的图像做 下采样(downsampling)
最大池化 (Max Pooling):取局部窗口内的最大值
平均池化 (Average Pooling):取局部窗口的平均值
近年来图像的网络的设计往往也开始把 pooling 丢掉
pooling 最主要的作用是减少运算量, 通过下采样把图像变小,从而减少运算量。随着近年来运算能力越来越强,如果运算资源足 够支撑不做pooling,很多网络的架构的设计往往就不做pooling,而是使用全卷积
假设有一个 CNN: