论文笔记 《ImageNet Classification with Deep Convolutional Neural Networks》

这篇文章看了不下5遍,但每次都有新发现,于是还是整理一下吧。

架构

ReLU

一句话概括:不用simgoid和tanh作为激活函数,而用ReLU作为激活函数的原因是:加速收敛。
因为sigmoid和tanh都是饱和(saturating)的。何为饱和?个人理解是把这两者的函数曲线和导数曲线plot出来就知道了:他们的导数都是倒过来的碗状,也就是,越接近目标,对应的导数越小。而ReLu的导数对于大于0的部分恒为1。于是ReLU确实可以在BP的时候能够将梯度很好地传到较前面的网络。

Local Responce Normalization

一句话概括:本质上,这个层也是为了防止激活函数的饱和的。
个人理解原理是通过正则化让激活函数的输入靠近“碗”的中间,从而获得比较大的导数值。
所以从功能上说,跟ReLU是重复的。
不过作者说,从试验结果看,LRN操作可以提高网络的泛化能力,将错误率降低了大约1个百分点。

Overlapping Pooling

一句话概括,从试验结果看,作者认为Overlapping之后,能够减少网络的过拟合。

Overall Architecture

一句话概括,5个卷积层+3个全连接层+1个softmax层。在第1,2,5个卷积层后加了一个LRN和Max Pooling。

Reducing Overfitting

Data Augmentation

用了两种方法:

  1. 随机crop。训练时候,对于256*256的图片进行随机crop到224*224,然后允许水平翻转,那么相当与将样本倍增到((256-224)^2)*2=2048。测试时候,对左上、右上、左下、右下、中间做了5次crop,然后翻转,共10个crop,之后对结果求平均。作者做,不做随机crop,大网络基本都过拟合(under substantial overfitting)。
  2. 对RGB空间做PCA,然后对主成分做一个(0, 0.1)的高斯扰动。结果让错误率又下降了百分一。

dropout

一句话概括,在第1,2个全连接层后面加入了dropout后,能够防止过拟合。不加,也是会under substantial overfitting的。

Detail of learning

  • batch: 128
  • momenttum: 0.9
  • weight decay: 0.0005
  • init the weights: Guassian(0, 0.01)
  • init the bias: constant 1 or constant 0
  • learning rate: 0.01, divide by 10 while valid error rate stopped improving

Result

主要看ILSVRC-2012的结果。
文中模型top1 40.7%,top5 18.2%
五个模型平均出来后是top1 38.1%和top5 16.4%

Discussion

  • 模型没有用到unsupervised pre-training
  • 如果删去任何一个卷积层,top1 error会升高2%左右
很久没有更新网站,发现多了不少评论和问题,无法一一回复,如果现在仍有问题请再次留言 :) 2016.03.29