作者 | 王晋东不在家
《小王爱迁移》之一:迁移成分分析(TCA)方法简介
之前整理总结迁移学习资料的时候有网友评论,大意就是现在的类似资料大全的东西已经太多了,想更深入地了解特定的细节。从这篇文章开始我将以《小王爱迁移》为名写一系列的介绍分析性的文章,与大家共享迁移学习中的代表性方法、理论与自己的感想。由于我的水平有限,请各位多多提意见,我们一起进步。今天第一篇必须以我最喜爱的杨强老师的代表性方法TCA为主题!(我的第一篇文章也是基于TCA做的)
问题背景
机器学习中有一类非常有效的方法叫做降维(dimensionality reduction),用简单的话来说就是,把原来很高维度的数据(比如数据有1000多列)用很少的一些代表性维度来表示(比如1000多维用100维来表示)而不丢失关键的数据信息。这些降维方法多种多样,比如:主成分分析(PCA,principal component analysis)、局部线性嵌入(LLE,locally linear embedding)、拉普拉斯特征映射(Laplacian eigen-map)等。这些方法的过程大体都是一个大的矩阵作为输入,然后输出一个小矩阵。那么在迁移学习中,有没有这样的方法,通过降维来达到数据维度减少,而且能达到迁移学习目的呢?答案是显然的,就是我们要说的迁移成分分析(TCA,transfer component analysis)。看,名字就跟PCA很像。
TCA最早是由中国香港科技大学杨强教授团队提出,首次出现在AAAI-09上,后来整理丰富成了一篇期刊文章,发表在11年的IEEE Trans. Neural Network(现在这个期刊名字后面多了and Learning System)上。这个方法是迁移学习领域经典性的文章,从2011年到现在接近6年过去,在Google scholar上引用量为569次,并且在持续增长。
简介
TCA属于基于特征的迁移学习方法。那么,它做了一件什么事呢?用通俗的语言来说,跟PCA很像:PCA是一个大矩阵进去,一个小矩阵出来,TCA呢,是两个大矩阵进去,两个小矩阵出来。从学术角度讲,TCA针对domain adaptation问题中,源域和目标域处于不同数据分布时,将两个领域的数据一起映射到一个高维的再生核希尔伯特空间。在此空间中,最小化源和目标的数据距离,同时最大程度地保留它们各自的内部属性。直观地理解就是,在现在这个维度上不好最小化它们的距离,那么我就找个映射,在映射后的空间上让它们最接近,那么我不就可以进行分类了吗?
我一直强调,任何问题都要看它的本质,TCA本质是什么呢?完成迁移学习的要求。迁移学习的要求是什么呢?让源域和目标域距离尽可能小呗。
方法
有许多种方法都在试图减小源域和目标域的距离,那么,TCA的贡献在哪里?以我的理解,TCA将这个计算距离的方法变得通用而简单,这就是它最大的贡献。下面我以自己的理解介绍TCA方法的基本流程。
假设
任何方法都基于一定的假设。胡适说过,大胆假设,小心求证。但是他那个时候没有计算机,我们搞计算机的人则是,大胆假设,更大胆求证。为啥?我们就算失败了也没有什么嘛,最多把电脑搞崩溃了我再重装系统么。所以,搞学术一定不要怕假设。假设是学术成功的基石呢!
TCA的假设是什么呢?很简单:源域和目标域的边缘分布是不一样的,也就是说,
,所以不能直接用传统的机器学习方法。但是呢,TCA假设存在一个特征映射$phi$,使得映射后数据的分布
,更进一步,条件分布
。这不就行了么。好了,我们现在的目标是,找到这个合适的$phi$,一作映射,这事就解决了。
具体
但是世界上有无穷个这样的
,也许终我们一生也无法找到这样的
。庄子说过,吾生也有涯,而知也无涯,以有涯随无涯,殆已!我们肯定不能通过穷举的方法来找
的。那么怎么办呢?
回到迁移学习的本质上来:最小化源域和目标域的距离。好了,我们能不能先假设这个
是已知的,然后去求距离,看看能推出什么呢?
更进一步,这个距离怎么算?世界上有好多距离,从欧氏距离到马氏距离,从曼哈顿距离到余弦相似度,我们需要什么距离呢?TCA利用了一个经典的也算是比较“高端”的距离叫做最大均值差异(MMD,maximum mean discrepancy)。这个距离的公式如下:
看着很高端(实际上也很高端)。MMD是做了一件什么事呢?简单,就是求映射后源域和目标域的均值之差嘛。
事情到这里似乎也没什么进展:我们想求的
仍然没法求。
TCA是怎么做的呢,这里就要感谢矩阵了!我们发现,上面这个MMD距离平方展开后,有二次项乘积的部分!那么,联系在SVM中学过的核函数,把一个难求的映射以核函数的形式来求,不就可以了?于是,TCA引入了一个核矩阵
:
以及
:
这样的好处是,直接把那个难求的距离,变换成了下面的形式:
trace是矩阵的迹,用人话来说就是一个矩阵对角线元素的和。这样是不是感觉离目标又进了一步呢?
其实这个问题到这里就已经是可解的了,也就是说,属于计算机的部分已经做完了。只不过它是一个数学中的半定规划(SDP,semi-definite programming)的问题,解决起来非常耗费时间。由于TCA的第一作者Sinno Jialin Pan以前是中山大学的数学硕士,他想用更简单的方法来解决。他是怎么做的呢?
他想出了用降维的方法去构造结果。
这里的W矩阵是比K更低维度的矩阵。最后的W就是问题的解答了!
求解
好了,问题到这里,整理一下,TCA最后的优化目标是:
这里的$H$是一个中心矩阵,
这个式子下面的条件是什么意思呢?那个min的目标我们大概理解,就是要最小化源域和目标域的距离,加上W的约束让它不能太复杂。那么下面的条件是什么呢?下面的条件就是要实现第二个目标:维持各自的数据特征。TCA要维持的是什么特征呢?文章中说是variance,但是实际是scatter matrix,就是数据的散度。就是说,一个矩阵散度怎么计算?对于一个矩阵
,它的scatter matrix就是
。这个
就是上面的中心矩阵啦。
解决上面的优化问题时,作者又求了它的拉格朗日对偶。最后得出结论,W的解就是的前m个特征值!简单不?数学美不美?然而,我是想不出的呀!
小结
好了,我们现在总结一下TCA方法的步骤。输入是两个特征矩阵,我们首先计算L和H矩阵,然后选择一些常用的核函数进行映射(比如线性核、高斯核)计算K,接着求
的前m个特征值。仅此而已哦。然后,得到的就是源域和目标域的降维后的数据,我们就可以在上面用传统机器学习方法了。
总结
怎么样,到此为止我们把TCA方法介绍完了。我们回顾一下,它的最核心工作是什么呢?我认为有两点:一是把问题转化成数学问题转化得很彻底;二是最优化求解方法很厉害。我们能从中学习什么呢?求解问题的方法感觉是学不来了,我们又不是数学出身。我们只能照猫画虎,学习人家对问题的转化方式,怎么就能很好地把一个问题转化成数学表示?这也是机器学习和人工智能相关方向研究生最重要的能力!关于TCA的Python和Matlab代码可以参考我的Github-https://github.com/jindongwang/transferlearning。
最后说一个TCA的优缺点。优点是实现简单,方法本身没有太多的限制,就跟PCA一样很好用。缺点就是,尽管它绕开了SDP问题求解,然而对于大矩阵还是需要很多计算时间。主要消耗时间的操作是,最后那个伪逆的求解以及特征值分解。在我的电脑上(i7-4790CPU 24GB内存)跑2000*2000的核矩阵时间大概是20秒。
References
[1] TCA原版文章:S. J. Pan, I. W. Tsang, J. T. Kwok and Q. Yang, "Domain Adaptation via Transfer Component Analysis," in IEEE Transactions on Neural Networks, vol. 22, no. 2, pp. 199-210, Feb. 2011.doi: 10.1109/TNN.2010.2091281 [2] Scatter matrix: Scatter matrix | Wikiwand https://www.wikiwand.com/en/Scatter_matrix
《小王爱迁移》之二:联合分布适配(JDA)方法简介
这是《小王爱迁移》系列的第二篇,为大家介绍一个非常不错的工作,叫做联合分布适配。和第一篇的TCA一脉相承,但是更简介更美丽,效果更好。
问题背景
联合分布适配方法(joint distribution adaptation,JDA)解决的也是迁移学习中一类很大的问题:domain adaptation。关于domain adaptation的介绍可以看我之前的介绍。简单概括就是,如何用有标注的源域数据
来标定完全无标注的目标域
?
简介
JDA方法首次发表于2013年的ICCV(计算机视觉领域顶会,与CVPR类似),它的作者是清华大学的博士生(现为清华大学助理教授)龙明盛。关于作者我们多说几句。龙明盛是迁移学习方面的专家,博士期间与中国香港科技大学的Qiang Yang、南加州大学的Philip S. Yu以及伯克利的Jordan联合发表过多篇顶级文章。他的个人网站是:Mingsheng Long - Tsinghua University。博士论文里所有一作文章都是顶会和顶刊,非常厉害。
JDA这个方法,看名字就知道,是一个概率分布适配的方法,而且适配的是联合概率。先来简单普及一下知识:边缘概率、条件概率和联合概率。对于一个随机变量
,
是它的元素,对于每一个元素,都对应一个类别
。那么,它的边缘概率为
,条件概率为
,联合概率为
。JDA方法就是要适配源域和目标域的联合概率。
方法
- 假设
假设是最基本的出发点。那么JDA这个方法的假设是什么呢?就是假设两点:1)源域和目标域边缘分布不同,2)源域和目标域条件分布不同。那么目标来了,同时适配两个分布不就可以了吗?于是作者很自然地提出了联合分布适配方法:适配联合概率。
不过这里我感觉有一些争议:边缘分布和条件分布不同,与联合分布不同并不等价。所以这里的“联合”二字实在是会引起歧义。我的理解是,同时适配两个分布,也可以叫联合,而不是概率上的“联合”。尽管作者在文章里第一个公式就写的是适配联合概率,但是这里感觉是有一些问题的。我们抛开它这个有歧义的,把“联合”理解成同时适配两个分布。
那么,JDA方法的目标就是,寻找一个变换
,使得经过变换后的
和
的距离能够尽可能地接近,同时,
和
的距离也要小。很自然地,这个方法也就分成了两个步骤。
- 边缘分布适配
首先来适配边缘分布,也就是
和
的距离能够尽可能地接近。其实这个操作就是迁移成分分析(TCA)。我们仍然使用MMD距离来最小化源域和目标域的最大均值差异。MMD距离是
这个式子实在不好求解。我们引入核方法,化简这个式子,它就变成了
其中
就是变换矩阵,我们把它加黑加粗,
是源域和目标域合并起来的数据。
是一个MMD矩阵:
n,m分别是源域和目标域样本的个数。
好了,到此为了没有什么创新点,因为这就是一个TCA,杨强老师已经做完了。
- 条件分布适配
这是我们要做的第二个目标,适配源域和目标域的条件概率分布。也就是说,还是要找一个变换
,使得
和
的距离也要小。那么简单了,我们再用一遍MMD啊。可是问题来了:我们的目标域里,没有
,没法求目标域的条件分布!
这条路看来是走不通了。哪条路呢?就是去建模
不行嘛。那么,能不能有别的办法可以逼近这个条件概率?一想,有啊,类条件概率
啊。根据贝叶斯公式
,我们如果忽略
,那么岂不是就可以用
来近似
?
而这样的近似也不是空穴来风。在统计学上,有一个东西叫做充分统计量,它是什么意思呢?大概意思就是说,如果样本里有太多的东西未知,样本足够好,我们就能够从中选择一些统计量,近似地代替我们要估计的分布。好了,我们为近似找到了理论依据。
实际怎么做呢?我们依然没有
。采用的方法是,用
来训练一个简单的分类器(比如knn、逻辑斯特回归),到
上直接进行预测。总能够得到一些伪标签
的吧。我们根据伪标签来计算,这个问题就可解了。
类与类之间的MMD距离表示为
其中,
分别标识源域和目标域中来自第c类的样本个数。同样地我们用核方法,得到了下面的式子
其中
为
- 学习策略
现在我们把两个距离结合起来,得到了一个总的优化目标:
看到没,通过
就把两个距离统一起来了!其中的
是正则项,使得模型良好定义。
我们还缺一个限制条件,不然这个问题无法解。限制条件是什么呢?和TCA一样,变换前后数据的方差要维持不变。怎么求数据的方差呢,还和TCA一样:
,其中的
也是中心矩阵,
是单位矩阵。也就是说,我们又添加了一个优化目标是要
(这一个步骤等价于PCA了)。和原来的优化目标合并,我们就是要好了,统一写一下优化目标
这个式子实在不好求解。怎么弄啊,这么一大串。也不用惆怅,有个东西叫做rayleigh quotient,上面两个一样的这种形式。因为
是可以进行拉伸而不改改变最终结果的,而如果下面为0的话,整个式子就求不出来值了。所以,我们直接就可以让下面不变,只求上面。所以我们最终的优化问题形式搞成了
怎么解?太简单了,用拉格朗日法嘛。不说了。最后变成了
这个东西,在matlab里是可以直接解的。这样我们就得到了变换
,问题解决了。
可是伪标签终究是伪标签啊,肯定精度不高,怎么办?那好办。有个东西叫做迭代,一次不行,我们再做一次。后一次做的时候,我们还用原来的数据,但是用变换后的
来训练分类器和预测。这样的目的是得到越来越好的伪标签,而数据参与迁移的数据是不会变的。这样往返多次,结果就自然而然好了。
总结
JDA方法比较巧妙,同时适配两个分布,然后非常精巧地规到了一个优化目标里。用弱分类器迭代,最后达到了很好的效果,值得我们去学习。和TCA的主要区别有两点:1)TCA是无监督的(边缘分布适配不需要label),JDA需要源域有label;2)TCA不需要迭代,JDA需要迭代。源代码 - http://ise.thss.tsinghua.edu.cn/~mlong/doc/joint-distribution-adaptation-iccv13.zip
特别感谢澳大利亚University of Wollongong的美丽聪明的Jing Zhang对本文提出的修改意见。
References
[1] JDA方法原文:Long M, Wang J, Ding G, et al. Transfer feature learning with joint distribution adaptation[C]//Proceedings of the IEEE International Conference on Computer Vision. 2013: 2200-2207. [2] TCA方法原文:Pan S J, Tsang I W, Kwok J T, et al. Domain adaptation via transfer component analysis[J]. IEEE Transactions on Neural Networks, 2011, 22(2): 199-210. [3] Rayleigh quotient: Rayleigh quotient | Wikiwand - https://www.wikiwand.com/en/Rayleigh_quotient
《小王爱迁移》之三:深度神经网络的可迁移性
从本文开始我会着重介绍一些深度迁移学习方面的文章。今天这篇是其中的经典文章,最初发表于NIPS 2014的《How transferable are features in deep neural networks?》。其实说是经典,也才2014年,很近了。但是神经网络发展太快,14年的就已经算经典了!本篇论文的作者是Jason Yosinski博士(当时是康奈尔大学的博士生),Uber AI联合创始人。值得注意的是论文的第三作者是深度学习大牛Yoshua Bengio,所以论文的质量和档次是可以信赖的。(能和这种级别的大牛合作,我想也算是一个博士生的最好经历了吧!)
多说一句,为什么说这个论文经典:
1)本文在当年NIPS上是oral presentation(1.2%哦);
2)本文目前引用数600多次,要知道现在火得一塌糊涂的Goodfellow的GAN文章也才800多!
3)要很好地研究深度迁移学习,首先要高清楚一些基本的结论。所以这篇论文很重要!
背景和动机
随着AlexNet在2012年的ImageNet大赛上获得冠军,深度网络开始在机器学习的研究和应用领域大放异彩。尽管取得了很好的结果,但是神经网络本身就像一个黑箱子,看得见,摸不着,解释不好。
由于神经网络具有良好的层次结构,很自然地就有人开始关注,能否通过这些层次结构来很好地解释网络?于是,有了我们熟知的例子:假设一个网络要识别一只猫,那么一开始它只能检测到一些边边角角的东西,和猫根本没有关系;然后可能会检测到一些线条和圆形;慢慢地,可以检测到有猫的区域;接着是猫腿、猫脸等等。
这表达了一个什么事实呢?概括来说就是:前面几层都学习到的是通用的特征(general feature),随着网络的加深,后面的网络更偏重于学习特定的特征(specific feature)。这非常好理解,我们也都很好接受。那么问题来了:我们怎么知道哪些层是general/specific?更进一步:如果应用于迁移学习,如何决定该迁移哪些层固定哪些层?
这个问题对于理解神经网络以及深度迁移学习都有着非常重要的意义。这也正是此论文的研究点。
简介
该论文是一篇实验性质的文章(通篇没有一个公式)。其目的就是要探究上面我们提到的几个关键性问题。因此,文章的全部贡献都来自于实验及其结果。(别说为啥做实验也能发文章:都是高考,我只上了个普通一本,我高中同学就上了清华)
在ImageNet的1000类上,作者把1000类分成两份(A和B),每份500个类别。然后,分别对A和B基于Caffe训练了一个AlexNet网络。一个AlexNet网络一共有8层,除去第8层是类别相关的网络无法迁移以外,作者在1~7这7层上逐层实验了AnB和BnB。
简单说一下什么叫AnB:(所有实验都是针对数据B来说的)将A网络的前n层拿来并将它frozen,剩下的8-n层随机初始化,然后对B进行分类。
相应地,有BnB:把训练好的B网络的前n层拿来并将它frozen,剩下的8-n层随机初始化,然后对B进行分类。
围绕着神经网络的可迁移性,作者设计了两大方面的实验:
- 迁移A网络的某n层到B(AnB) vs 固定B网络的某n层(BnB)
- 权重初始化与迁移表现
实验结果
实验结果如下图所示:
这个图说明了什么呢?我们先看蓝色的BnB和BnB (就是BnB加上fine-tune)。对BnB而言,原训练好的B模型的前3层直接拿来就可以用而不会对模型精度有什么损失。到了4~5层,精度略有下降,不过还是可以接受。然而到了6~7层,精度居然奇迹般地回升了!这是为什么?原因如下:对于一开始精度下降的4~5层来说,确实是到了这一步,feature变得越来越specific,所以下降了。那对于6~7层为什么精度又不变了?那是因为,整个网络就8层,我们固定了6~7层,这个网络还能学啥呢?所以很自然地,精度和原来的B网络几乎一致!
对BnB 来说,结果基本上都保持不变。说明fine-tune对模型结果有着很好的促进作用!
我们重点关注AnB和AnB 。对AnB来说,直接将A网络的前3层迁移到B,貌似不会有什么影响,再一次说明,网络的前3层学到的几乎都是general feature!往后,到了4~5层的时候,精度开始下降,我们直接说:一定是feature不general了!然而,到了第6~7层,精度出现了小小的提升后又下降,这又是为什么?作者在这里提出两点:co-adaptation和feature representation。就是说,4~5层精度下降的时候,主要是由于A和B两个数据集的差异比较大,所以会下降;到了6~7层,由于网络几乎不迭代了,学习能力太差,此时feature学不到,所以精度下降得更厉害。
再看AnB 。加入了fine-tune以后,AnB 的表现对于所有的n几乎都非常好,甚至比baseB(最初的B)还要好一些!这说明:fine-tune对于深度迁移有着非常好的促进作用!
把上面的结果合并就得到了下面一张图:
至此,AnB和BnB基本完成。作者又想,是不是我分A和B数据的时候,里面存在一些比较相似的类使结果好了?比如说A里有猫,B里有狮子,所以结果会好?为了排除这些影响,作者又分了一下数据集,这次使得A和B里几乎没有相似的类别。在这个条件下再做AnB,与原来精度比较(0%为基准)得到了下图:
这个图说明了什么呢?简单:随着可迁移层数的增加,模型性能下降。但是,前3层仍然还是可以迁移的!同时,与随机初始化所有权重比较,迁移学习的精度是很高的!
结论
虽然该论文并没有提出一个创新方法,但是通过实验得到了以下几个结论,对以后的深度学习和深度迁移学习都有着非常高的指导意义(杨强教授非常赞赏该论文的工作):
- 神经网络的前3层基本都是general feature,进行迁移的效果会比较好;
- 深度迁移网络中加入fine-tune,效果会提升比较大,可能会比原网络效果还好;
- Fine-tune可以比较好地克服数据之间的差异性;
- 深度迁移网络要比随机初始化权重效果好;
- 网络层数的迁移可以加速网络的学习和优化。
References
论文的网站及代码:Jason Yosinski http://yosinski.com/transfer 作者在NIPS上的oral视频(需要FQ): https://www.youtube.com/watch?v=IuyJRPxtJHU 值得一提的是,作者和他的团队开发了深度网络可视化工具箱Deep Visualization Toolbox,通过可视化来理解深度网络!这个工具箱的地址: https://github.com/yosinski/deep-visualization-toolbox
《小王爱迁移》之四:深度适配网络(DAN)
这周五下午约见了机器学习和迁移学习大牛、清华大学的龙明盛老师。老师为人非常nice,思维敏捷,非常健谈!一不留神就谈了1个多小时,意犹未尽,学到了很多东西!龙明盛老师在博士期间(去年博士毕业)发表的文章几乎全部是A类顶会,他在学期间与世界知名学者杨强、Philip S. Yu及Michael I. Jordan多次合作,让我非常膜拜!这次介绍他在ICML-15上提出的深度适配网络。
深度适配网络(Deep Adaptation Netowrk,DAN)是清华大学龙明盛提出来的深度迁移学习方法,最初发表于2015年的机器学习领域顶级会议ICML上。DAN解决的也是迁移学习和机器学习中经典的domain adaptation问题,只不过是以深度网络为载体来进行适配迁移。DAN是深度迁移学习领域的代表性工作,被UC Berkeley、HKUST等世界知名大学不断引用。杨强老师对DAN的评价很高,在Google Scholar上也有着很高的引用量,可以被看作是深度迁移学习领域的经典文章。值得注意的是DAN文章的最后一位作者是Michael I. Jordan,机器学习领域的泰山北斗。所以这篇文章的含金量非常的大。
背景
继Jason Yosinski在2014年的NIPS上的《How transferable are features in deep neural networks?》探讨了深度神经网络的可迁移性以后,有一大批工作就开始实际地进行深度迁移学习。我们简要回顾一下Jason工作的重要结论:对于一个深度网络,随着网络层数的加深,网络越来越依赖于特定任务;而浅层相对来说只是学习一个大概的特征。不同任务的网络中,浅层的特征基本是通用的。这就启发我们,如果要适配一个网络,重点是要适配高层——那些task-specific的层。
适配高层网络的代表性工作是Eric Tzeng等人在2014年发在arXiv上的《Deep domain confusion: maximizing for domain invariance》(至今没找到到底发在哪了)。这篇文章针对于预训练的AlexNet(8层)网络,在第7层(也就是feature层,softmax的上一层)加入了MMD距离来减小source和target之间的差异。这个方法简称为DDC。这篇文章概括一点说,就是适配了最高层网络,只有一层。那么,是否只适配这一层就够了呢?
介绍
DAN是在DDC的基础上发展起来的,它很好地解决了DDC的两个问题:
一是DDC只适配了一层网络,可能还是不够,因为Jason的工作中已经明确指出不同层都是可以迁移的。所以DAN就多适配几层;
二是DDC是用了单一核的MMD,单一固定的核可能不是最优的核。DAN用了多核的MMD(MK-MMD),效果比DDC更好。
方法
上面已经说过,DAN的创新点是多层适配和多核MMD。那么我们针对两个方面分别介绍。
- 多核MMD(Multi-kernel MMD,MK-MMD)
这个MK-MMD是基于原来的MMD发展而来的,它并不是这个文章提出来的,是由Gretton这位核方法大牛在2012年提出来的。原来的MMD呢,是说我们要把source和target用一个相同的映射映射在一个再生核希尔伯特空间(RKHS)中,然后求映射后两部分数据的均值差异,就当作是两部分数据的差异。最重要的一个概念是核
,在MMD中这个
是固定的,我们在实现的时候可以选择是高斯核还是线性核。这样的缺点是明显的:我怎么知道哪个核一定好?
MK-MMD就是为了解决这个问题。它提出用多个核去构造这个总的核,这样效果肯定会比一个核好呀!对于两个概率分布
,它们的MK-MMD距离就是
这个多个核一起定义的kernel就是
这个式子很好理解。原来我们的
就是一个固定的函数嘛,现在我们把它用
个不同kernel进行加权,权重就是
。这样的表征能力一定不会比一个kernel差的!
- 多层适配
这个就很好理解了。原来的DDC方法只是适配了一层,现在DAN也基于AlexNet网络,适配最后三层(6~8层)。为什么是这三层?因为在Jason的文章中已经说了,网络的迁移能力在这三层开始就会特别地task-specific,所以要着重适配这三层。至于别的网络(比如GoogLeNet、VGG)等是不是这三层那就不知道了,那得一层一层地计算相似度。DAN只关注使用AlexNet。
- 总的方法
好了,我们已经把DAN的两个要点讲完了。现在总的来看一下DAN方法。它基于AlexNet网络,探索source和target之间的适配关系。任何一个方法都有优化的目标。DAN也不例外。它的优化目标由两部分组成:损失函数和分布距离。损失函数这个好理解,基本上所有的机器学习方法都会定义一个损失函数,它来度量预测值和真实值的差异。分布距离就是我们上面提到的MK-MMD距离。于是,DAN的优化目标就是
这个式子中,
表示网络的所有权重和bias参数,是用来学习的目标。其中
分别是6和8,表示网络适配是从第6层到第8层,前面的不进行适配。
表示source和target中所有有label的数据的集合。
是惩罚系数。
就定义了一个损失函数,在深度网络中一般都是cross-entropy。DAN的网络结构如下图所示。
- 学习策略
现在已经把问题定义的非常明确了,可以开始训练和学习了。学习一共分为两大类参数:学习网络参数
和MMD的
。
- 学习
对
的学习依赖于MK-MMD距离的计算。通过kernel trick(类比于以前的MMD距离)我们总是可以把MK-MMD展开成一堆内积的形式。然而,数据之间两两计算内积是非常复杂的,时间复杂度为
,这个在深度学习中的开销非常之大。怎么办?作者在这里采用了Gretton在文章提出的对MK-MMD的无偏估计:
,
其中的
是一个四元组:
将kernel作用到
上以后,变成
上面这些变换看着好恐怖。它是个什么意思呢?简单来说,它就是只计算了连续的一对数据的距离,再乘以2.这样就可以把时间复杂度降低到
!至于具体的理论,可以去参考Gretton的论文,这里就不说了。反正这个计算方法是Gretton提出来的。
在具体进行SGD的时候,我们需要对所有的参数求导:对
求导。在实际用multiple-kernel的时候,作者用的是多个高斯核。
- 学习
学习$beta$主要是为了确定多个kernel的权重。学习的时候,目标是:确保每个kernel生成的MMD距离的方差最小。也就是
这里的
是估计方差。实际求解的时候问题可以被规约成一个二次规划问题求解,具体可以参照文章。
结论
DAN作为深度迁移学习的代表性方法,充分利用了深度网络的可迁移特性,然后又把统计学习中的MK-MMD距离引入,取得了很好的效果。作者在2017年又进一步对其进行了延伸,做出了Joint Adaptation Network (JAN),也发在了ICML 2017上。在JAN中,作者进一步把feature和label的联合概率分布考虑了进来,可以视作之前JDA(joint distribution adaptation)的深度版。下次我们介绍这个工作。总的来说,深度迁移学习在DAN和JAN的开创性工作面前,留给模型创新的空间已经不多了。这才是我们要思考的问题。如何推陈出新?
数学很重要!我们可以看到最重要的MK-MMD是搞数据的提出来的!好好学数学!
References
1. DAN文章:Long M, Cao Y, Wang J, et al. Learning transferable features with deep adaptation networks[C]//International Conference on Machine Learning. 2015: 97-105. 2. MK-MMD文章:Gretton A, Borgwardt K M, Rasch M J, et al. A kernel two-sample test[J]. Journal of Machine Learning Research, 2012, 13(Mar): 723-773.
【下期预告】Long et al. Deep Transfer Learning with Joint Adaptation Networks. ICML 2017.
以及大家很感兴趣的Geodesic Flow Kernel!
作者简介:王晋东(不在家),中国科学院计算技术研究所博士生,目前研究方向为机器学习、迁移学习、人工智能等。作者联系方式:微博@秦汉日记 ,个人网站Jindong Wang is Here - http://jd92.wang/ 原文地址 - https://zhuanlan.zhihu.com/wjdml