第五章:卷积神经网络(CNN):从LeNet到ConvNeXt的演进
学习目标
深入理解卷积神经网络的基本原理与核心设计思想,掌握CNN架构演进的关键突破点,能够分析不同CNN变体的适用场景,并具备根据任务需求选择或设计合适CNN架构的能力。
一、卷积神经网络的基石:核心思想与基本组件
1.1 卷积操作的本质:从全连接到局部连接
传统神经网络的局限性
- 全连接网络:每个神经元与上一层的所有神经元相连
- 参数爆炸:对于图像数据(如224×224×3 = 150,528像素),单层全连接就需要数亿参数
- 平移不变性缺失:相同特征出现在不同位置需要重新学习
卷积的核心创新
局部连接(局部感受野)
- 每个神经元仅连接输入区域的局部
- 生物启发:视觉皮层神经元仅处理视野的局部区域
- 数学表达:yi,j=∑m=0k−1∑n=0k−1wm,n⋅xi+m,j+n+by_{i,j} = \sum_{m=0}^{k-1} \sum_{n=0}^{k-1} w_{m,n} \cdot x_{i+m,j+n} + byi,j=∑m=0k−1∑n=0k−1wm,n⋅xi+m,j+n+b
权值共享(卷积核)
- 同一卷积核在输入的不同位置使用相同的权重
- 显著减少参数:从百万级降至百级
- 实现平移等变性:无论特征出现在何处,使用相同检测器
多通道设计
- 输入:彩色图像有RGB三个通道
- 输出:每个卷积核生成一个特征图,多个卷积核形成多通道特征
- 三维卷积核:处理多通道输入,融合跨通道信息
1.2 卷积网络的基本架构组件
卷积层(Convolution Layer)
# 卷积操作的核心参数kernel_size=3# 卷积核大小,常用3×3, 5×5, 7×7stride=1# 滑动步长,控制输出尺寸padding='same'# 填充方式,保持空间尺寸或减小filters=64# 卷积核数量,决定输出通道数池化层(Pooling Layer)
- 最大池化:提取最显著特征,增强平移不变性
- 平均池化:平滑特征,减少噪声影响
- 全局池化:将特征图压缩为标量,替代全连接层
激活函数
- ReLU(Rectified Linear Unit):f(x)=max(0,x)f(x) = max(0, x)f(x)=max(0,x)
- 优点:计算简单,缓解梯度消失,加速收敛
- 缺点:神经元"死亡"问题(负值完全抑制)
- 变种:LeakyReLU、PReLU、ELU、GELU
归一化层
- 批归一化(BatchNorm):对小批量数据标准化,稳定训练
- 层归一化(LayerNorm):对单个样本所有特征标准化,适用于RNN
- 实例归一化(InstanceNorm):风格迁移任务常用