出处:
《ImageNet Classification with Deep Convolutional Neural Networks》
AlexNet在2012年的ImageNet比赛上夺冠
背景:
之前目标检测和识别任务对数据量要求比较大,AlexNet共有五层卷积和三层全连接,实验中其表示网络深度会对网络性能产生影响。
网络结构:
五层卷积和三层全连接,输入维度是224*224*3
- Conv1: num=96,kernel_size=11,stride=4,pad=0,224*224*3 —> 55*55*96
- LRN局部响应归一化(Local Response Normalized)
- Maxpooling,kernel_size=3, stride=2, pad=0,55*55*96 —> 27*27*96
- Conv2: num=256,kernel_size=5,stride=1,pad=2,27*27*96 —> 27*27*256
- LRN局部响应归一化(Local Response Normalized)
- Maxpooling,kernel_size=3, stride=2, pad=0,27*27*256 —> 13*13*256
- Conv3: num=384,kernel_size=3,stride=1,pad=1,13*13*256 —> 13*13*384
- Conv4: num=384,kernel_size=3,stride=1,pad=1,13*13*384 —> 13*13*384
- Conv5: num=256,kernel_size=3,stride=1,pad=1,13*13*384 —> 13*13*256
- Maxpooling,kernel_size=3, stride=2, pad=0,13*13*256 —> 6*6*256
- FC1: 6*6*256 —> 4096
- FC2: 4096 —> 4096
- FC3: 4096 —> 1000 —> softmax
特点:
- 成功使用ReLU作为CNN的激活函数,并验证其效果在较深的网络超过了Sigmoid,成功解决了Sigmoid在网络较深时的梯度弥散问题。虽然ReLU激活函数在很久之前就被提出了,但是直到AlexNet的出现才将其发扬光大。
- 训练时使用Dropout随机忽略一部分神经元,以避免模型过拟合。Dropout虽有单独的论文论述,但是AlexNet将其实用化,通过实践证实了它的效果。在AlexNet中主要是最后几个全连接层使用了Dropout。
- 在CNN中使用重叠的最大池化。此前CNN中普遍使用平均池化,AlexNet全部使用最大池化,避免平均池化的模糊化效果。并且AlexNet中提出让步长比池化核的尺寸小,这样池化层的输出之间会有重叠和覆盖,提升了特征的丰富性。
- 提出了LRN层,对局部神经元的活动创建竞争机制,使得其中响应比较大值变得相对更大,并抑制其他反馈较小的神经元,增强了模型的泛化能力。
结果 = 当前位置 / (前n/2和后n/2通道对应位置的平方和)