AlexNet的层次化设计,使得 AlexNet 能够逐层提取从简单边缘到复杂图形的特征,同时结合归一化、池化和 Dropout 技术,有效提升了训练速度和泛化能力,成为推动深度学习发展的重要里程碑。本文我们来理解AlexNet各层的参数设置以及对应的作用。
一、我们先回顾一下AlexNet的结构:
包括 5 个卷积层、3 个汇聚层和 3 个全连接层 (其中最后一层是使用 Softmax 函数的输出层)。因为网络规模超出了当时的单 个 GPU 的内存限制,AlexNet 将网络拆为两半,分别放在两个 GPU 上,GPU 间只在某些层(比如第 3 层)进行通信。
关键设计总结:
层级 | 核心参数 | 核心作用 | 现代替代方案 |
---|---|---|---|
Conv1-2 | 大卷积核(11×11, 5×5)+ LRN | 快速捕获全局特征,增强对比度 | 小卷积核堆叠(VGG) |
Conv3-5 | 小卷积核(3×3)堆叠 | 深层局部特征细化 | 残差连接(ResNet) |
池化层 | 重叠池化(步长<窗口) | 降维 + 平移不变性 | 步长=窗口(标准池化) |
FC6-7 | 4096神经元 + Dropout | 高阶语义映射 + 正则化 | 全局平均池化(减少参数) |
FC8 | 1000神经元 + Softmax | 多分类概率输出 | 自适应输出(多任务学习) |
二、对AlexNet各层的解释
AlexNet 的输入为 224 × 224 × 3 (原论文实际输入为227×227)的图像,输出为 1 000 个类别的条件概率,具体各层详解如下:
(1) 第一个卷积层,使用两个大小为11×11×3×48的卷积核,步长𝑆 = 4, 零填充 𝑃 = 3,得到两个大小为 55 × 55 × 48 的特征映射组。
-
参数设置:
-
输入尺寸:227×227×3(原论文实际输入,常简化为224×224×3)
-
卷积核:96=48*2 个,尺寸11×11,步长4,无填充(padding=0)
-
激活函数:ReLU
-
后续处理:最大池化(3×3窗口,步长2) + LRN(局部响应归一化)
-
-
输出尺寸:55×55×96(计算:⌊(227−11)/4+1⌋=55)
-
作用与意义:
-
大卷积核(11×11):快速捕获大范围低级特征(如边缘、纹理)。
-
大步长(4):大幅降低特征图尺寸,减少计算量。
-
LRN:模拟生物神经系统的侧抑制,增强特征对比度(后续被BatchNorm取代)。
-
(2) 第一个汇聚层,使用大小为 3 × 3 的最大汇聚操作,步长 𝑆 = 2,得到两 个27 × 27 × 48的特征映射组。
-
池化层1:位于Conv1后,窗口3×3,步长2,输出27×27×96 = 27×27×48×2
-
作用与意义:
-
逐步降采样:逐步减少特征图尺寸,聚焦重要特征。
-
平移不变性:池化使网络对微小位置变化不敏感。
-
控制过拟合:丢弃冗余细节,保留主要模式。
-
(3) 第二个卷积层,使用两个大小为5×5×48×128的卷积核,步长𝑆 = 1,零填充 𝑃 = 2,得到两个大小为 27 × 27 × 128 的特征映射组。
-
参数设置:
-
输入尺寸:27×27×96(Conv1池化后)
-
卷积核:256(128×2)个,尺寸5×5,步长1,填充2(保持尺寸)
-
激活函数:ReLU
-
后续处理:最大池化(3×3窗口,步长2) + LRN
-
-
输出尺寸:27×27×256 → 池化后13×13×256
-
作用与意义:
-
中等卷积核(5×5):提取中级特征(如形状、部件)。
-
填充保留尺寸:避免信息丢失,维持特征图分辨率。
-
重叠池化(步长<窗口):减少过拟合,保留更多信息。
-
(4) 第二个汇聚层,使用大小为 3 × 3 的最大汇聚操作,步长 𝑆 = 2,得到两个大小为 13 × 13 × 128 的特征映射组。
-
池化层2:位于Conv2后,窗口3×3,步长2,输出13×13×256。
-
作用与意义:
-
逐步降采样:逐步减少特征图尺寸,聚焦重要特征。
-
平移不变性:池化使网络对微小位置变化不敏感。
-
控制过拟合:丢弃冗余细节,保留主要模式。
-
(5) 第三个卷积层为两个路径的融合,使用一个大小为 3 × 3 × 256 × 384的卷积核,步长 𝑆 = 1,零填充 𝑃 = 1,得到两个大小为 13 × 13 × 192 的特征映 射组。
-
参数设置:
-
输入尺寸:13×13×256
-
卷积核:384个,尺寸3×3,步长1,填充1
-
激活函数:ReLU
-
后续处理:无池化/LRN
-
-
输出尺寸:13×13×384
-
作用与意义:
-
小卷积核(3×3):细化局部特征,增强非线性表达能力。
-
不降采样:保持空间分辨率,为深层网络提供高维特征。
-
(6) 第四个卷积层,使用两个大小为 3 × 3 × 192 × 192 的卷积核,步长 𝑆 = 1,零填充 𝑃 = 1,得到两个大小为 13 × 13 × 192 的特征映射组。
-
参数设置:
-
输入尺寸:13×13×384
-
卷积核:384个,尺寸3×3,步长1,填充1
-
激活函数:ReLU
-
后续处理:无池化/LRN
-
-
输出尺寸:13×13×384
-
作用与意义:
-
参数对称性:与Conv3相同配置,进一步组合复杂特征。
-
增加网络深度:通过堆叠小卷积核,模拟更大感受野(类似5×5效果)。
-
(7) 第五个卷积层,使用两个大小为 3 × 3 × 192 × 128 的卷积核,步长 𝑆 = 1,零填充 𝑃 = 1,得到两个大小为 13 × 13 × 128 的特征映射组。
-
参数设置:
-
输入尺寸:13×13×384
-
卷积核:256个,尺寸3×3,步长1,填充1
-
激活函数:ReLU
-
后续处理:最大池化(3×3窗口,步长2)
-
-
输出尺寸:13×13×256 → 池化后6×6×256
-
作用与意义:
-
最终特征抽象:提取高级语义特征(如物体整体结构)。
-
末次池化:压缩空间维度,减少全连接层参数。
-
(8) 第三个汇聚层,使用大小为 3 × 3 的最大汇聚操作,步长 𝑆 = 2,得到两 个大小为 6 × 6 × 128 的特征映射组。
-
池化层5:位于Conv5后,窗口3×3,步长2,输出6×6×256。
-
作用与意义:
-
逐步降采样:逐步减少特征图尺寸,聚焦重要特征。
-
平移不变性:池化使网络对微小位置变化不敏感。
-
控制过拟合:丢弃冗余细节,保留主要模式。
-
(9) 三个全连接层,神经元数量分别为 4 096、4 096 和 1 000。
1.全连接层6 (FC6)
-
参数设置:
-
输入:6×6×256 = 9216维向量(展平后)
-
神经元数:4096
-
激活函数:ReLU
-
正则化:Dropout(概率0.5)
-
-
作用与意义:
-
全局特征整合:将空间特征映射为高阶语义表示。
-
Dropout:随机屏蔽50%神经元,防止过拟合。
-
2. 全连接层7 (FC7)
-
参数设置:
-
输入:4096维
-
神经元数:4096
-
激活函数:ReLU
-
正则化:Dropout(概率0.5)
-
-
作用与意义:
-
进一步非线性映射:增强分类决策的判别能力。
-
参数共享:与FC6结构对称,形成深层非线性组合。
-
3. 全连接层8 (FC8)
-
参数设置:
-
输入:4096维
-
神经元数:1000(对应ImageNet类别数)
-
激活函数:Softmax
-
-
输出:1000维概率分布(各类别条件概率)。
-
作用与意义:
-
分类决策:将特征映射到类别空间。
-
Softmax归一化:输出概率满足∑pi=1,适配交叉熵损失。
-
三、局部响应归一化
AlexNet 还在前两个汇聚层之后进行了局部响应归一化(Local Re-sponse Normalization,LRN)以增强模型的泛化能力。我们大概解释一下,什么事局部相应归一化。
局部响应归一化(LRN)是一种归一化技术,其灵感来源于生物视觉系统中的“侧抑制”机制。简单来说,侧抑制指的是在生物神经元中,一个神经元的高激活会抑制其邻近神经元的响应,从而增强对比度。LRN 就是在卷积神经网络中模拟这一现象,使得局部区域内响应较强的神经元能够“胜出”,而较弱的响应被相对抑制,从而增强特征的鲁棒性。
在 AlexNet 中,局部响应归一化通常在前两个池化层之后应用,其数学表达式通常为:
其中:
直观理解:
-
通过这个归一化操作,网络会在同一空间位置的不同通道之间进行“竞争”,较高的激活值会使归一化因子变大,从而使得该神经元在输出时相对“减弱”,而其他神经元受到的影响也会有所平衡。
-
这种机制帮助网络减少对个别神经元过分依赖,提高模型的泛化能力。
通过这种归一化,网络能够平衡各通道的响应,防止某个通道因过大激活而“主导”后续计算,同时让网络对局部变化更为敏感。
总之,LRN 在 AlexNet 中通过模仿生物视觉系统中的侧抑制机制,帮助网络增强局部特征对比度,提升模型鲁棒性,并在当时显著提高了图像分类的准确率。