1 核心创新点与效果
AlexNe首次使用深度网络训练ImageNet图像数据并获得成功,主要使用的技术和技巧包括5层Conv层3层全连接层的网络结构、ReLU激活函数、两个GPU并行计算、局部响应归一化LRN(Local Response Normalization)、重叠池化(OverlappingPooling)、数据增强、Dropout。
2 数据预处理
ImageNet图像本身有不同的分辨率,AlexNet先统一resize为256*256(先将短边缩放为256,再做center-crop得到256*256)。但是由于数据增强的处理,模型的输入是224*224。
3 模型结构
3.1 总体结构
模型结构为5个卷积层加3个全连接层,参数个数约为60M(6000万),神经元个数约为65万。
3.2 ReLU激活函数
所有卷积层和全连接层均使用ReLU激活函数,ReLU的非饱和特性使得与其他饱和特性的激活函数(如tanh,sigmoid)相比能更快得收敛,大约可以快数倍。
3.3 双GPU训练
在当时的条件下,采用在两个GPU上并行做计算,且除了第三个卷积层,其他卷积层不同GPU上的神经元没有输入输出的连接。
3.4 局部响应归一化LRN(Local Response Normalization)
在第1、第2个卷积层之后使用了LRN。在Tensorflow中有对LRN的支持,但是现在似乎不常用。
3.5 重叠池化(OverlappingPooling)
池化层步长为2,池化区域大小为3*3。验证结果表明这种重叠池化更不容易过拟合。
4 减小过拟合的方法
4.1数据增强
每个256*256的样本被裁减成224*224(按位置裁减,可以裁减(256-224)*(256-224)个),并且再做了一次水平翻转,所以一个样本被扩增为2048个样本。没有该增强操作,网络显示出显著的过拟合。
在测试集上,对256*256的图像做了四个边缘和中间部位的裁减,并且水平翻转,这样每个测试样本实际为10个patches,对模型的输出结果取平均。
第二种数据增强的方法是改变了RGB图像的亮度。
4.2 Dropout
使用了0.5随机失火的Dropout;因为一个神经元不能依赖于其他失活的神经元,所以Dropout降低了神经元之间的复杂联动性,促使网络学习更加鲁棒的特征。
在测试数据上,用所有的神经元参与计算,并且将神经元的输出结果乘以0.5。
AlexNet在前两个全连接层上使用Dropout;没有Dropout机制,网络显示显著的过拟合;Dropout也导致网络收敛时间大概是原先的两倍。