Factors in Finetuning Deep Model for Object Detection with Long-tail
论文下载地址
第一次看到Long-tail这个字眼是在一本经济学的书本上,由美国经济学家克里斯·安德森提出。最近看CVPR16看到一篇关于Long-tail的文章,看到名字就被吸引了(论文起一个好名字很重要),很想知道长尾理论在深度学习的finetunning中有什么作用。这篇文章是香港大学和上海交大一起发表的文章,主要讲述了finetuning的时候主要考虑的因素。
先粘贴一张经济学中长尾理论的图片,如下图所示:
图1
长尾理论是网络时代兴起的一种新理论,由于成本和效率的因素,当商品储存、流通、展示的场地和渠道足够宽广,商品生产成本急剧下降以至于个人都可以进行生产,并且商品的销售成本急剧降低时,几乎任何以前看似需求极低的产品,只要有卖,都会有人买。这些需求和销量不高的产品所占据的共同市场份额,可以和主流产品的市场份额相当,甚至更大。[摘选自百度百科]
Introduction
finetuning主要利用在大的数据集训练出来的模型,应用在小的数据集上重新训练,得到更好的效果。大的数据集一般是ImageNet的数据集,小的数据集就是和任务相关的数据集,比如说cifar,voc等等。finetuning必要的原因是,大的数据集进行训练可以得到一个网络模型,但是大的数据集和小的任务相关数据集之间可能存在差异,在小的数据集表现效果不太理想,但是直接采用小数据集又因为数目太少,无法更好训练,所以利用大数据集得到的参数在小数据集finetuning就能提高实验的效果。还有一个重要原因是,训练新的模型是一个耗时耗资源的操作,借用caffe官网的话说就是浪费电力资源和计算资源。
在训练网络的时候采用ImageNet数据集,但是这个数据集有一个特点就是每类数据之间的数量相差很大。小部分的类内数目很多,但是很大部分类内数目却很少。例如目标为人的类里面图片数目(6007)远多于目标为鸟的图片数目(1643)。传统的手动特征,例如sift,surf这些特征提取和类别无关,所以这些特征不会受到长尾特性的影响,CNN特征却强烈依赖数据集。数据集分布不均,会导致学习的模型倾向于数目较大的类别。作者在实验室发现:如果类内图片数目符合均匀分布的话,即便是移除40%的正样本,检测的特征也会有所提高。
针对数据分布不均这种情况,作者提出了一个层次的特征来提高分类结果。本篇论文的主要工作也就是这两部分:
- 通过实验发现数据受long-tail property影响。
- 通过学习层次CNN特征来解决数据集分布不均的情况。
Factor in Finetuning
Baseline model
本篇论文主要是做关于目标检测方面的finetuning,目标检测的baseline各部分如下所示:
- Region Proposal:使用selective search方法做边框选择,用Bounding box rejection方法来获取6%的边框。
- Training &Test Data:作者使用了ImageNet目标检测的数据集进行训练和测试。ImageNet ILSVRC2013数据集主要分成三部分:train13(395918), val(20121),test(40152)。在上述数据集的基础上,作者又从ImageNet ILSVRC2014数据集中选取train14(60658)张图片。
- NetWork, preparing and training:作者选取了GoogleNet,不改变网络的结构。
- SVM learning:特征训练出来,每类学习一个一对多的SVM线性分类器。
freezing the pretrained layer
finetuning过程中,需要固定某些层的参数,只需要finetuning其他层的参数。作者通过实验,得出下表的结果:
表1
观察上表可以发现,固定conv1-icp(4a),finetuning其他层和全部finetuning的实验精度相同。从低到高固定的层数越来越多,精度下降越来越快。实验结果表明,在低层的网络中学习的是图片共有的局部特征,没必要进行finetuning,在高的网络层中才会得到与任务相关的语义信息。通过实验可以得到如下的结论:finetuning的时候只需要finetuning高层。这样做在较小损失精度的同时,却能大大提高了finetuning的时间。
Investigation on training data preparation
investigation on different subset of training data
作者在实验中,总共选取了train13,train14,val三个数据集进行训练分类器。训练分类器的过程中,正负样本的选取同样需要注意。作者通过实验得到如下表的结论:
表2
从上表可以发现,对于正负样本最好从同一个数据集中选取。
long tail property
在ImageNet中选取了200类数据作为训练。作者按照验证集中每类数据图片数目进行排序,发现在200类数据中,前20类占据了整个验证集59.5%的数据。从下图中,可以看出200类数据的分布情况,右图按每类图片数量进行排序,和图1的长尾理论分布图基本相似,说明数据具有long tail property。
图2
ImageNet分类任务最后softmax层,损失函数如下所示: