作者:李新春
————————
计算机软件新技术国家重点实验室伪文艺程序员
既可提刀立码,行遍天下
又可调参炼丹,卧于隆中
注明:本文首发在NAIE《网络人工智能园地》公众号,如有转载,请注明出处。
深度迁移方法主要是指基于深度网络端到端进行训练优化的迁移算法,主要包括基于统计、基于对抗和基于重构等方法的对齐。具体包括以下算法:
DDC (CoRR2014)
DAN (ICML2015)
DaNN (ICML2015)
DeepCoral (ECCV2016)
DRCN (ECCV2016)
CoGAN (NeurIPS2016)
RTN (NeurIPS2016)
JAN (ICML2017)
ADDA (CVPR2017)
CDAN (NeurlPS2018)
MCD (CVPR2018)
GTA (CVPR2018)
李新春:Understanding Transfer Learning (A)zhuanlan.zhihu.com
深度迁移算法DDC、DAN、DaNN传送门:
李新春:Understanding Transfer Learning (B)zhuanlan.zhihu.com
接下来的部分就针对以上列举的深度算法进行介绍。
01DeepCoral (ECCV2016)
这篇文章基于浅层迁移算法CORAL进行应用到深度网络,CORAL主要是对齐数据的二阶协方差矩阵。因此,DeepCoral的主要思想是引入了下面的Coral损失:
其中 是源域和目标域在要对齐层的特征的协方差矩阵:
02DRCN (ECCV2016)
DRCN是基于重构的迁移方法,类似于多任务学习的方法,源域做的是分类任务,目标域由于没有标签,选择做重构任务(基于AutoEncoder框架),两个任务共享特征提取器,得到的优化过程如下:
03CoGAN (NeurIPS2016)
CoGAN采用生成式模型进行迁移,理解这篇文章的做法具体包括两个步骤。第一步是弄清楚Coupled GAN的操作方法,示意图如下:
其中,CoGAN包括两个并行的GAN,即源域和目标域上分别有一个GAN网络来生成数据,包括Generator和Discriminator,为了共享源域和目标域的信息,两个GAN网络共享了Generator和Discriminator部分层的权重(Weight Sharing)。
第二步是弄懂这个网络如何进行迁移呢?在应用到迁移任务的时候,源域的GAN需要加入额外的分类损失,在Source Discriminator后面接一层分类器Classifier,一起训练,在预测Target样本的时候,通过Target Discriminator和Classifier进行分类。由于Target Discriminator前几层是和源域解耦开来的,可以提取域相关的特征,后几层是和源域共享的,是高层语义的提取和分类工作,因此可以工作地很好。
这个工作的核心在于两个GAN的共享层和私有层,因此文章对共享什么层,共享多少层进行了评测:
04