11 为什么使用卷积?(Why Convolutions?)
11 为什么使用卷积?(Why Convolutions?)
11 为什么使用卷积?(Why Convolutions?)
一、引言:全连接层 vs 卷积层
考虑一张输入图像:
\[\text{输入尺寸} = 32 \times 32 \times 3 \quad (\text{即 } 3072 \text{ 个像素})\]若下一层为全连接层,含 $4704 = 28 \times 28 \times 6$ 个神经元,则参数数量为:
\[W_{\text{FC}} = 4704 \times 3072 \approx 14,\!450,\!688 \quad (\text{约1400万参数})\]而若使用 卷积层(6 个 $5 \times 5$ 的滤波器):
- 每个滤波器参数数:$5 \times 5 \times 3 = 75$(注意:实际应包含通道维度)
- 加上偏置项:每滤波器 $75 + 1 = 76$ 个参数
- 总参数数:$6 \times 76 = 456$
✅ 注:原文中简化为“5×5=25+1=26”,忽略了输入通道(3),但核心思想不变——参数远少于全连接。
二、卷积层的两大核心优势
1. 参数共享(Parameter Sharing)
- 思想:同一个特征检测器(如边缘检测)在图像不同位置应具有相同参数。
- 数学体现:卷积核 $K \in \mathbb{R}^{k \times k \times c}$ 在整个输入空间滑动,权重不变。
效果:
- 若用 $3 \times 3$ 卷积核检测垂直边缘,则该核可同时用于左上角、右下角等区域。
- 即使图像平移,特征仍能被有效提取 → 平移不变性(Translation Invariance)
💡 直观理解:猫的眼睛无论出现在图像哪个位置,都应被同一组参数识别。
2. 稀疏连接(Sparse Connectivity / Local Connectivity)
- 思想:输出中的每个神经元仅与输入的一个局部区域相连。
- 示例:输出位置 $(i,j)$ 仅依赖于输入中以 $(i,j)$ 为中心的 $k \times k$ 区域。
数学表达(忽略偏置):
\[y_{i,j,d} = \sum_{u=1}^{k} \sum_{v=1}^{k} \sum_{c=1}^{C_{\text{in}}} x_{i+u-1, j+v-1, c} \cdot K_{u,v,c,d}\]其中 $d$ 是输出通道索引。
- 对比全连接:全连接中每个输出依赖全部输入(稠密连接),而卷积中每个输出仅依赖 $k \times k \times C_{\text{in}}$ 个输入。
✅ 优势:大幅减少连接数,降低计算量和过拟合风险。
三、卷积带来的额外好处
平移不变性(Translation Invariance)
- 卷积操作天然对小范围平移鲁棒。
- 因为同一个滤波器扫描整张图,无论目标出现在哪里,都能激活相似的特征响应。
- 虽然严格来说 CNN 具有平移等变性(equivariance) ,但配合池化后可近似实现不变性。
📌 注:平移等变性指“输入平移 → 特征图平移”;平移不变性指“输出类别不变”。
四、CNN 训练流程简述(以猫检测为例)
- 输入:图像 $\mathbf{x}^{(i)} \in \mathbb{R}^{H \times W \times 3}$
- 标签:$y^{(i)} \in {0,1}$(二分类)
网络结构:
- 多个 卷积层(Conv) + 激活函数(如 ReLU)
- 池化层(Pooling) (如 Max Pooling)→ 降维、增强平移鲁棒性
- 全连接层(FC) → 分类头
- 输出层:Softmax(多分类)或 Sigmoid(二分类)
代价函数(损失函数) :
二分类交叉熵:
\[\mathcal{L}(\hat{y}, y) = -\left[ y \log \hat{y} + (1 - y) \log (1 - \hat{y}) \right]\]整个训练集的平均损失:
\[J(\theta) = \frac{1}{m} \sum_{i=1}^{m} \mathcal{L}(\hat{y}^{(i)}, y^{(i)})\]其中 $\theta$ 表示所有可训练参数(卷积核权重、偏置、全连接权重等)
优化方法:
- 梯度下降(Gradient Descent)
- 改进算法:Momentum、RMSProp、Adam 等
- 通过反向传播(Backpropagation)计算梯度并更新参数
五、总结:为什么卷积如此有效?
| 优势 | 说明 |
|---|---|
| ✅ 参数共享 | 同一特征检测器全局复用,大幅减少参数 |
| ✅ 稀疏连接 | 每个输出仅依赖局部输入,降低计算复杂度 |
| ✅ 平移鲁棒性 | 对目标位置变化不敏感,适合图像任务 |
| ✅ 层次化特征学习 | 浅层学边缘/纹理,深层学语义对象(如猫脸) |
🔑 核心思想:利用图像的局部性、平移不变性、空间结构等先验知识,设计更高效、更泛化的模型。
六、后续展望(预告)
下周将学习:
- 经典 CNN 架构(LeNet, AlexNet, VGG, ResNet 等)
- 如何选择超参数(滤波器大小、层数、步长等)
- 高级应用:目标检测(Object Detection)、神经风格迁移(Neural Style Transfer)
本文由作者按照 CC BY 4.0 进行授权