Domain Adaptive(特征层面)
- 继Jason Yosinski在2014年的NIPS上的《How transferable are features in deep neural networks?》探讨了深度神经网络的可迁移性以后,有一大批工作就开始实际地进行深度迁移学习。简要回顾一下Jason工作的重要结论:对于一个深度网络,随着网络层数的加深,网络越来越依赖于特定任务;而浅层相对来说只是学习一个大概的特征。不同任务的网络中,浅层的特征基本是通用的。这就启发我们,如果要适配一个网络,重点是要适配高层——那些task-specific的层。
1.《Domain adaptive neural networks for object recognition》,2014,DaNN
在2014年环太平洋人工智能大会(PRICAI)上提出了一个叫做DaNN的神经网络。DaNN的结构异常简单,它仅由两层神经元组成:特征层和分类器层。作者的创新工作在于,在特征层后加入了一项MMD适配层,用来计算源域和目标域的距离,并将其加入网络的损失中进行训练。所以,整个网络的优化目标也相应地由两部分构成:在有label的源域数据上的分类误差(),以及对两个领域数据的判别误差()。优化目标由下式形象地表示:
式中的这个是权衡网络适配的权重的一个参数,可以人工给定。很好理解,就是网络的分类误差;()表示两个领域的距离。
但是,由于网络太浅,表征能力有限,故无法很有效地解决domain adaptation问题(通俗点说就是精度不高)。因此,后续的研究者大多数都基于其思想进行扩充,如将浅层网络改为更深层的AlexNet、ResNet、VGG等;如将MMD换为多核的MMD等。
注:MMD距离(Maximum mean discrepancy)
最大均值差异(Maximum mean discrepancy),度量在再生希尔伯特空间中两个分布的距离,是一种核学习方法。两个随机变量的距离为:
其中k(.)是映射,用于把原变量映射到高维空间中。X,Y表示两种分布的样本,F表示映射函数集。
基于两个分布的样本,通过寻找在样本空间上的映射函数K,求不同分布的样本在K上的函数值的均值,通过把两个均值作差可以得到两个分布对应于K的mean discrepancy。寻找一个K使得这个mean discrepancy有最大值,就得到了MMD。最后取MMD作为检验统计量(test statistic),从而判断两个分布是否相同。如果这个值足够小,就认为两个分布相同,否则就认为它们不相同。更加简单的理解就是:求两堆数据在高维空间中的均值的距离。
近年来,MMD越来越多地应用在迁移学习中。在迁移学习环境下训练集和测试集分别取样自分布p和q,两类样本集不同但相关。我们可以利用深度神经网络的特征变换能力,来做特征空间的变换,直到变换后的特征分布相匹配,这个过程可以是source domain一直变换直到匹配target domain。匹配的度量方式就是MMD。
2.《Deep Domain Confusion: Maximizing for Domain Invariance》,2014,DDC
DDC针对预训练的AlexNet(8层)网络,在第7层(也就是feature层,softmax的上一层)加入了MMD距离来减小source和target之间的差异。这个方法简称为DDC。下图是DDC的算法插图。
从上图我们可以很明显地看出,DDC的思想非常简单:在原有的AlexNet网络的基础上,对网络的fc7层(分类器前一层)后加一层适配层(adaptation layer)。适配层的作用是,单独考察网络对源域和目标域的判别能力。如果这个判别能力很差,那么我们就认为,网络学到的特征不足以将两个领域数据区分开,因而有助于学习到对领域不敏感的特征表示。
DDC的思想十分简单,但是却成为了深度网络应用于迁移学习领域的经典文章。
3.《Learning transferable features with deep adaptation networks》,2015,DAN
DAN是在DDC的基础上发展起来的,它很好地解决了DDC的两个问题:
一是DDC只适配了一层网络,可能还是不够,因为Jason的工作中已经明确指出不同层都是可以迁移的。所以DAN就多适配几层;
二是DDC是用了单一核的MMD,单一固定的核可能不是最优的核。DAN用了多核的MMD(MK-MMD),效果比DDC更好。
DAN的创新点是多层适配和多核MMD。下图是DAN的网络结构示意图。
多核MMD(Multi-kernel MMD,MK-MMD)
这个MK-MMD是基于原来的MMD发展而来的,它并不是这个文章提出来的。原来的MMD呢,是说我们要把source和target用一个相同的映射映射在一个再生核希尔伯特空间(RKHS)中,然后求映射后两部分数据的均值差异,就当作是两部分数据的差异。最重要的一个概念是核k,在MMD中这个k是固定的,我们在实现的时候可以选择是高斯核还是线性核。这样的缺点是明显的:我怎么知道哪个核一定好?
MK-MMD就是为了解决这个问题。它提出用多个核去构造这个总的核。
多层适配
原来的DDC方法只是适配了一层,现在DAN也基于AlexNet网络,适配最后三层(6~8层)。为什么是这三层?因为在Jason的文章中已经说了,网络的迁移能力在这三层开始就会特别地task-specific,所以要着重适配这三层。至于别的网络(比如GoogLeNet、VGG)等是不是这三层那就不知道了,那得一层一层地计算相似度。DAN只关注使用AlexNet。
4.《Beyond Sharing Weights for Deep Domain Adaptation》,2016
与以往的Domain adaptation在Deep Learing中的运用不同,这篇论文提出,在source domain和target domain之间使用不同的参数而非共享参数(当然不是所有的layers都不共享参数,有些层还是共享了)。他们提出在试验中这种网络的表现会好于那些使用共享参数的网络。
双流结构:
5.《Deep CORAL: Correlation Alignment for Deep Domain Adaptation》,2016
网络结构:
提出一个CORAL loss,通过对source domain和target domain进行线性变换来将他们各自的的二阶统计量的对齐(minimizing the difference between source/target correlations)。
6.《Deep Domain Adaptation by Geodesic Distance Minimization》,2017
模型结构:
改进CORAL Loss,加入log()。
综上:特征迁移目前都是小网络进行尝试,常用的特征分布的度量标准是MMD和CORAL等,但其在网络中的位置,以及损失核K的选取都很关键,并且发现多应用于FC层,哪些层应该或不应该共享其权重的最佳选择取决于实际的应用。
所以,实现起来比较复杂。
注:《In Defense of Fully Connected Layers in Visual Representation Transfer》,2017
作者发现,FC可在模型表示能力迁移过程中充当“防火墙”的作用。具体来讲,假设在ImageNet上预训练得到的模型为M ,则ImageNet可视为源域(迁移学习中的source domain)。微调(fine tuning)是深度学习领域最常用的迁移学习技术。针对微调,若目标域(target domain)中的图像与源域中图像差异巨大(如相比ImageNet,目标域图像不是物体为中心的图像,而是风景照),不含FC的网络微调后的结果要差于含FC的网络。因此FC可视作模型表示能力的“防火墙”,特别是在源域与目标域差异较大的情况下,FC可保持较大的模型capacity从而保证模型表示能力的迁移。(冗余的参数并不一无是处。)
多领域适应:
《Deep Cocktail Network: Multi-source Unsupervised Domain Adaptation with Category Shift》,2018
模型结构:
多领域的图像迁移学习:
《StarGAN: Unified Generative Adversarial Networks for Multi-Domain Image-to-Image Translation》
参考:
https://zhuanlan.zhihu.com/p/27657910
https://www.jianshu.com/p/fc2252ef63e0
http://www.cnblogs.com/wt869054461/p/7156397.html
https://ssarcandy.tw/2017/10/31/deep-coral/
https://blog.csdn.net/u011070171/article/details/53106474
https://blog.csdn.net/wei_guo_xd/article/details/74059110