摘要:
本文提出了一种通用的基于深度学习的多源数据联合学习的算法(使用本文提出的 Domain Guided Dropout 替换传统的 Dropout),并通过广泛的实验,在 Learning ReID feature representation 任务上有效的验证和分析了算法的有效性。
作者来自香港中文大学。
论文链接:https://arxiv.org/abs/1604.07528
代码地址:
https://github.com/Cysu/dgd_person_reid
论文解读
领域痛点:
数据集多为小数据集,无法满足深度学习模型算法的研究,数据集视角变化及分辨率其他不够多样性,得到的算法性能不会有很好的域迁移性能和泛化能力。
文章介绍:
这是一篇domains adaption文章,也可以认为是一片数据增强的文章,旨在将存在大bias且不相关的数据集利用上,利用深度学习模型提取更有效的特征的表达,关键在于不同的神经元对于不同的domain所学习得到的特征表示不同,有些共享的特征,也有些局限于特定的domain,作者的idea是先将多个数据集的一部分数据混合在一块组成一个大的数据集,作者考虑了dropuot正则化对模型的训练结果和过拟合问题有重要的影响,受启发于Batch normalization: Accelerating deep network training by reducing internal covariate shift和Very deep convolutional networks for large-scale image recognition对应的VGG网络设计,作者再结合BN-inception(比较适合混合不同bias的混合数据训练)并谨慎设计了符合数据集训练要求的网络模型,如下:
训练时,首先用标准的dropout和softmax进行训练,作者称为JSTL (jointly with a single-task learning objective),得到一个基本的模型后,然后对每一个域计算的到fc7层每个神经元的影响分数,每个域会计算出一个平均的fc7层神经元影响分数impact factor,再用impact factor来实现所谓的Domain Guided Dropout layer (DGD),继续微调模型,为得到在某一域更好的特征表达,然后在每个domain上finetune,此处的finetune作者采用了设计的stochastic dropout层,在每个数据即上的测试结果显示,基本都得到了最好的性能表现。
实验
数据集:CUHK03,CUHK01,PRID,VIPeR,3DPeS,i-LIDS和Shinpuhkan
所有数据集都分成train,val,和test,取所有的train sets 合并成一个大数据集进行训练, 但微调只在前6个上进行,因为,最后一个数据集只有24个ID.
实验方法及结果对比:
作者的贡献:
提出了Domain Guided Dropout有兩種不同的形式:
1.deterministic dropout 和stochastic dropout,使用DomainGuided Dropout来消去每个领域无用的神经元,从而提高了CNN的性能
2.作者最初的模型训练,选择了混合所有数据,重新标记ID,变多任务为单人务分类训练的模式,从0开始训练,这样同时训练可以得到区分行人的基模型形式
3.验证了不同域下的有效神经元是不同的
4.在每个ReLU层之前都加了Batch Normalization层BN,为了加快收敛,避免手动修改权值等
摘自网友的一些总结:
http://blog.csdn.net/lv26230418/article/details/51317180
1. 可以看到,独自训练在大库上不错,但小库由于数据不足,效果比较差。
2. 联合训练(JSTL)比独自训练好,尤其是对小库。
3. DGD有效。CUHK03下无效可能是由于大库降低自己的效果来提升小库的。
4. FT有效。DGD克服了FT overfitting的问题,PRID 下FT-JSTL。