本文的大概思想就是:
(1)增加训练样本;(2)增加测试样本预测数量;(3)多个CNN模型的融合;
一、增加训练样本的数量
常用的增加样本的方法有:crop、flip及add randomly generated ligthing;
1、传统的crop方法是把图像resize到256*256,然后在进行crop,但是这样会损失掉一部分有用的信息例如下图:
因此本文采用的方法:先将图像的最小的一边放大到256,这样就形成了256*N或者N*256,然后在进行crop;
2、除了随机加入光照噪声以外,还可以加入额外的颜色处理,即随机改变图像的对比度、亮度和色度(0.5-1.5的比例);
二、增加额外的预测数据
除了采用五个crops和两个flips外:
1、采用三个尺度的图像,256、228和284;
2、采用三个视觉角度,同时倍增了全连的层数,但是并没有取得好的效果;
3、减少预测的数量
由于采用了 translations, 2 flips, 3 scales, and 3 views 这样就产生了90 预测,如果将这90个预测都使用的话,将极大影响测试速度,不使用。简单的方法是采用贪婪方法:即首先采用最可行的一个预测,逐渐加入其他预测,直到识别率不再增加。(不解之处:在测试的时候,根本就无法知道什么时候识别率不再增加,有可能还是要把所有的预测都用上)。效果图如下:
三、高分辨率的模型
采用更大的图像,训练一个高分辨率的模型,然后把基本模型和高分辨率模型进行结合。在训练高分辨率的模型的时候有一下几个点:
1、9 crops, 2 flips, 3 scales, 3 views,采用前面的贪婪预测方法。
2、由于训练样本非常丰富,因此drop out 就不再那么重要。本文采用分阶段drop out,取得了不使用和一直使用drop out更好的效果。模型融合的效果如下图:
四、在ILSVRC2013上的识别率
五、总结
个人认为,这篇论文也没有什么比较出色的创新点,只不过就是比别人增加样本的方法多一些,并且取得比较好的效果是因为有10个模型的融合的结果。
值得借鉴的点:
1、增加样本的方法;
2、阶段性使用drop out;阶段性使用drop out还属首次,取得了好的效果。
Some Improvements on Deep Convolutional Neural Network Based Image Classif ication