您的位置:首页 > 移动开发 > Objective-C

Factors in Finetuning Deep Model for Object Detection with Long-tail

2016-12-06 17:23 459 查看

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层,损失函数如下所示:

L=−∑n=1N∑c=1Ctn,clogpn,c,wherepn,c=enetn,ce∑Cc=1netn,c(1)

公式(1)中tn,c表示目标的label,pn,c表示n个sample属于c类的可能性。tn,c=1表示第n个样本属于第c类,等于0则不属于。netn,c是网络分类的输出。θ是网络学习得到的参数。网络对学习参数θ求导,可以得到如下的函数:

∂L∂θ=∑n,c(pn,c−tn,c)∂netn,c∂θ(2)

从公式(2)可以看出,网络参数更新取决于两个因素:

网络预测pn,c的精度,预测的越精准,梯度越小;

c类样本的数目。作者举例如下,在预测误差相同情况下,鸟类1600个样本,但是仓鼠只有16个样本,鸟类的梯度是仓鼠类的100倍。

CNN在训练的过程中各类共享网络的参数,所以网络学习的模型对鸟类的区分能力大于仓鼠。这也说明了数据划分在训练中的重要性。

Experimental results on the long-tail property

为了进一步的通过实验证明long tail property,作者总共采用了train13,train14,和val1作为训练。用符号N+代表正样本,N−作为负样本。作者采用以下三种采样方式进行数据预处理:

Rand-pos:只采样正样本N′+/N+=r={2−1,2−2,2−3,...}

Rand-all:正负样本都随机采样N′+/N+=N′−/N−=r

Pseudo-uniform:每类正样本数目大于Nmax的减少到Nmax,小于Nmax的不作处理。



图3

作者通过实验发现,数据均衡在较小数据的情况下也能保证良好的效果。

Cascaded hierarchical feature learning for object detection

hierarchical cluster

将200类的数据进行层次聚类,聚类过程中度量类之间的相似性用下面公式:

Sim(a,b)=∑i=1Ni∑j=1Nj<ha,i,hb,j>/NiNj,(3)

ha,i表示a类的第i个训练样本在GoogleNet最后一层的输出,hb,j同理,<>表示正交操作。经过层次聚类以后,第l层的第jl个group记作Si,ji。作者实验中取l=1,......,LL=4,ji∈{1,2,.....Jl},J1=1,J2=2,J3=7,J4=18经过层次聚类以后,得到一颗聚类树,如下图所示:



图4

Test stage

在测试阶段,算法主要如图5所示:



图5

Train stage

在网络训练时,对每一个节点都对应着一组类。每次只需训练该节点即可,在训练该节点的过程中,只需要从父节点考虑和该节点有关的正负样本。作者构建层次聚类树的过程时候,保持每个节点尽可能相差较少,所以单节点训练做始终能够保持正负样本均衡,相当于一个训练一个简单的分类。训练步骤如图6所示:



图6

Ablation Study

作者又进一步研究了聚类方法和聚类层数对实验的影响,实验结果如下面两个图所示:



图7



图8

Experimental result



图9

Personal conlusion

作者受到S.Bengio大牛的启发,研究long-tail在fine-tuning的效果,想法非常新颖,实验效果也很好。想更多了解细节,请细读一下原文。个人觉得生活中很多知识都是相通的,广泛涉猎各个方面的成果,对计算机也是很多帮助。计算机研究的就是生活中的问题,而其他行业未尝不是呢?idea可能别人已经在其他行业想到了,如果用到深度学习上呢?借用NBA的一句话自勉,everything is possible!

Reference

Factors in Finetuning Deep Model for Object Detection with Long-tail Distribution
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  深度学习
相关文章推荐