一、文章意义
这篇文章的意义应该不用多说了,2012年ImageNet比赛的第一名,超了第二名一大截。可以说从这个模型提出来以后,深度学习的火热度又上了一个层次,因为这也证明了深度学习在实际中的可实现性。至此之后的许多模型,比如VGG等都是借鉴了这篇文章提出的结构,是里程碑意义的。
二、网络结构
网上很多都是贴的作者文章的图,这里有一个比较详细的结构图:
关于结构分析,可以参考这篇博客:
点击打开链接,图中的norm层就是Local Response Normalization。
三、模型特点
文章的特色分为两个部分:
1、“unique features”,提高最后的准确率并缩短训练时间,对应文中的第三部分;
2、防止过拟合的措施,对应文中的第四部分;
下面分别总结。
1、提高准确率并缩短训练时间的方法(越重要的排在越前面)
(1)ReLU Nonlinearity
是这篇文章模型中起很大作用的tricks,在以后的文章中几乎都会提到。这里主要强调了ReLU在梯度下降时达到25%训练集错误率所花费的时间较小,即会大大缩短训练时间;
(2)多GPU训练
这篇文章用了两块GTX580GPU并行计算,这个trick使top-1和top-5分别下降了1.7%和1.2%(我都只是一块...)。
(3)Local Response Normalization
局部归一化相应,按作者的说法,通过这个trick使top-1和top-5分别下降了1.4%和1.2%,但是在后来的VGG那篇文章里作者否认了这个trick的功能,认为并没有什么卵用。
(4)Overlapping Pooling
重叠池化,即池化窗口大小<池化窗口移动大小,因此叫重叠。这个trick使top-1和top-5分别下降了0.4%和0.3%。
2、减小过拟合的措施
(1)Data Augmention
数据增加(或者数据增强)。作者主要用了两种增强手段:image translations+horizontal reflections 和RGB channel shift.
(1)image translations+horizontal reflections
即从原图像的256*256的图像中取所有的224*224的图像块,这样一张256*256的图像对应(256-224)*(256-224)=1024个图像块。再取这些图像块对应的水平翻转图像块,即1024*2=2048,因此作者最后说通过这种方法训练集扩增了2048倍。但这么理解的话作者文章random提取224*224的图像块就不知道怎么理解了,明明是取遍所有的224*224啊,这里留了个疑问。
(2)RGB channel shift
这里面涉及到了PCA,我不清楚,总之这套操作下来top-1的准确率提高了1个百分点。
(2)Dropout
我没有仔细读Dropout的文章,大致意思是每次以50%的概率随机去掉一部分神经元,使其对网络的贡献为0,。这样每次都在重新组合新的网络,提高模型的泛化能力。Dropout在以后的文章中也是经常用到,跟ReLU的出现频率是一个级别的。
还要提及的是作者最后在test的时候,对图像也有操作。提取一幅256*256图像四个边角和中心的224*224的图像块,共5块,再获得它们对应的镜像图像,因此 一共10块。并取这10块图像块在softmax的输出的平均值作为最终预测结果。在caffe里好像没有这种操作,需要自己手动完成吧。