#论文 《ImageNet Classification with Deep Convolutional Neural Networks》

这个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%左右。所以,深度很重要。

为了降低复杂度,没有做预处理。但如果能有更大的计算资源,用更深更大的网络和更长的训练时间,可能效果会更好。

最终想要用在视频序列上。

你可能感兴趣的:(机器学习)