这个Alex是第一作者,NN名字叫AlexNet,Hinton是第三作者。是第一个提出CNN的,还有dropout等方法。
1 Intro
CNN与之前的标准前馈神经网络对比:连接和参数更少,因此更容易训练;而且它的理论最佳只是比之前的稍差。
GPU让训练CNN成为可能。而且,ImageNet也足够大,这样不怕过拟合。
本文贡献:
训练了最佳的CNN;
有trick来提升性能,降低训练时间,见Section 3;
防止过拟合的技术,见Section 4;
减少任意一个卷积层都会降低效果。
本文训练的时候,限制主要是GPU的内存和训练时间,如果可以增加计算资源的话,应该可以提升效果。
2 数据
就是ImageNet,数据量足够大,不太怕过拟合。
3 架构
NN的架构见Fig 2。
总共8层。前5层是卷积层,后3层是全连接层。
Section 3.1~3.4逐个介绍,按照重要性排序。
3.1 ReLU非线性
ReLU比tanh和sigmod好。比tanh快好几倍。
没有ReLU,可能实验没法完成。
3.2 并行GPU
一个GPU内存是3G,不够训练1.2million的数据,所以用了2块GPU并行。
trick:
相邻层在一个GPU内,加快速度。
用了某个相似的框架,降低了error 1.5~1.7个百分点。
2个GPU比一个GPU快了一点点。
3.3 Local Response Normalization
这个正则化框架提升了泛化能力。
降低了误差1.2~1.4个百分点。
3.4 overlapping Pooling 池化
Pooling层是对前面层中,相邻group的输出做一个抽象的总结。【如,找max的,或者avg的等等。】
降低误差0.3~0.4个百分点。
还稍微有防止过拟合的贡献。
3.5 架构
5层卷积+3层全连接。
输出是1000个分类的softmax。
其中,提到了,最大化multinomial logistic regression等价于最大化the average across training cases of the log-probability of the correct label under the prediction distribution.
介绍了一下连接结构,用来提升计算速度等。
4 降低过拟合
参数太多,有60 million。
提出了两种防止过拟合的技术。
4.1 增加数据
通过做转换,来增加数据。
有两种方法来实现。一是random抽取固定大小的patch,二是转换成RGB 。这俩方法计算量小,可以放到CPU中,与GPU并行执行,相当于没有多耗费时间。
4.2 dropout
这个dropout被视为一种有效的model combination方法。
dropout概率为0.5,用在了三个全连接层中的前两个中(而不是所有的都用!),可以强烈的防止过拟合,但是double了训练的iteration。
5 学习细节
初始化:
每层参数初始化:N(0,0.01);
bias:有的层是1,有的层是0.【不知道为什么要区分开】
训练:
SGD;
batch size:128;
momentum:0.9;
decay:0.0005;
learning rate: 初始0.01。当validation error rate不动的时候,将learning rate除以10。训练中,除了3次。
训练用了5~6天,用了2个3GB的GPU。
6 结果
当然是好了,提升很高,比第二名超出很多。
7 讨论
如果减少一个层,就会降低效果2%左右。所以,深度很重要。
为了降低复杂度,没有做预处理。但如果能有更大的计算资源,用更深更大的网络和更长的训练时间,可能效果会更好。
最终想要用在视频序列上。