文章目录
Introduction
为了识别更多的图像,我们需要一个有强大学习能力的模型。CNN是一个很好的选择。随着其深度和宽度的增加,其性能也有很大的提升。同时,相比于前馈神经网络,CNN有着更少的连接和参数。
随着算力的提升,CNN有了用武之地,这也是为什么做CNN的原因。
本文基于CNN设计了一个新的网络,包含5个卷积层和3个全连接层。同时,为了避免过拟合,用了一些特别的技术。
The Dataset
直接裁剪 256 × 256 256\times 256 256×256大小的图像,作为输入。
里程碑:直接在raw image上进行训练。
The Architecture
ReLU Nonlinearity
tanh和sigmoid存在梯度饱和的问题,ReLU则没有这个问题,所以后者能帮助模型收敛得更快。
ReLU也不见得有多好,就是简单且好用。
Local Response Normalization(LRN)
ReLU不需要对于输入进行标准化来避免饱和,但还是做一个Normalization的话,效果还是有提升的。
这是因为ReLU没有一个值域区间,所以要对结果进行归一化。
对局部神经元的活动创建竞争机制,使得其中响应比较大的值变得更大,抑制反馈比较小的神经元。
(该部分没什么意义)
Overlapping Pooling
对传统的Pooling做了一个改动。通常步长是和池化尺寸一致的,这里让步长小于尺寸,使得池化层的输出之间会有重叠,提升了特征的丰富性。
Overall Architecture
图里面包含了两个AlexNet,在第三个卷积的时候会相互把数据耦合一下。
每个GPU训练一半的通道。
随着网络深度的增加,将空间信息慢慢压缩,此时语义信息慢慢增加。
全连接层部分也会把数据耦合一下,最后拼接为4096维度的向量,再压缩为1000维度,代表为1000个类别的置信度。
只是为了能够训练,所以分成了两部分进行训练,实际上是没有必要的。
Reduce Overfitting
Data Augmentation
- 从256x256中扣一块224x224大小的图像(他说有2048种扣法,但实际上都差不多);
- 把RGB的通道上做一些改变,用了PCA的方法。
Dropout
随机将隐藏层的一些输出变成0,这个概率为50%。
在这篇文章中认为这是每次训练得到的一个不同的模型然后做融合。但实际上并不是这样。
在之后的工作中指出,Dropout在线性模型上近似于一个L2正则项。
本文中把Dropout放在了两个全连接层上面。
现在的CNN中丢掉了全连接层,所以Dropout使用的不是很多,但实际上,其在RNN、Attention这样的全连接结构中还是很常见、很好用的。
Details of learning
- SGD;
- weight decay(手动确定学习率下降时的epoch,现在一般是先慢慢增加再慢慢减少);
- momentum(避免优化的表面不那么平滑而掉到一个坑里去);
- 标准差为0.01、均值为0的高斯分布做权重的初始化;偏置初始化为1;
Results
文章的最后展示了两个实验的效果。第一个图像是展示部分图片与其分类结果。第二个图片是将AlexNet最后得到的特征向量拿出来,将相似的图像归类到一起。第二个实验发现归类的结果是很不错的,这说明了AlexNet得到的特征学习得很好。
总结
AlexNet的贡献在于:
- 提出了AlexNet;
- ReLU、LRN、Pooling;
- 数据增广(2种);
- 训练细节(4个)