深度迁移学习即采用深度学习的方法进行迁移学习,这是当前深度学习的一个比较热门的研究方向。

深度学习方法对非深度方法两个优势:

一、自动化地提取更具表现力的特征;

二、满⾜了实际应用中的端到端 (End-to-End) 需求。

最简单的深度网络迁移形式: finetune

(特别地,在计算机视觉中,迁移学习⽅法被称为 Domain Adaptation。 )
 

但是 finetune 有它的先天不足:它无法处理训练数据和测试数据分布不同的情况。(⽽这⼀现象在实际应⽤中⽐⽐皆是。 )

因此进一步有提升深度迁移学习的方法。

深度网络自适应

基本思路:在特征提取层和分类层之间加入自适应层,使得源域和⽬标域的数据分布更加接近

在特征层后加了一项适配层,⽤来计算源域和⽬标域的距离,并将其加入网络的损失中进行训练。

深度学习之迁移学习 深度迁移的几种方法_深度学习之迁移学习

1. 第一个方法: DDCDeep Domain Confusion

加州大学伯克利分校的 Tzeng 等人[Tzeng et al., 2014] 首次先提出了⼀个 DDC 方法。

 

DDC 固定了 AlexNet 的前 7 层,在第 8 层 (分类器前⼀
层) 上加⼊了⾃适应的度量。⾃适应度量⽅法采⽤了被⼴泛使⽤的 MMD (最大均值差异 )准则。 DDC ⽅法的损失函数表⽰为:

深度学习之迁移学习 深度迁移的几种方法_Domain_02

最大均值差异是迁移学习中使用频率最高的度量。

深度学习之迁移学习 深度迁移的几种方法_深度学习之迁移学习_03

2. DAN

清华⼤学的龙明盛等⼈在 2015 年发表在机器学习顶级会议 ICML 上的 DAN ⽅法
(Deep Adaptation Networks) [Long et al., 2015a] 对 DDC ⽅法进⾏了⼏个⽅⾯的扩展。

一、同时加⼊了三个⾃适应层

二、采⽤了表征能⼒更好的多核 MMD 度量 (MK-MMD),不增加⽹络的额外训练时间

DAN 方法在多个任务上都取得了比 DDC更好的分类效果。

 

 

深度学习之迁移学习 深度迁移的几种方法_迁移学习_04

3. 领域和任务同时迁移
Joint CNN architecture for domain and task transfer 。

深度学习之迁移学习 深度迁移的几种方法_Domain_05

现有的深度迁移学习⽅法通常都只是考虑 domain transfer, ⽽没有考虑到类别之间的信息。提出了还要再加⼀个 soft label loss。

4. 生成对抗网络迁移

GAN 受到⾃博弈论中的⼆⼈零和博弈 (two-player game) 思想的启发⽽提出。它⼀共包括两个部分:

⼀部分为⽣成⽹络 (Generative Network),此部分负责⽣成尽可能地以假乱真的样本,这部分被成为⽣成器 (Generator);

另⼀部分为判别⽹络 (Discriminative Network),此部分负责判断样本是真实的,还是由⽣成器⽣成的,这部分被成为判别器 (Discriminator)。⽣成器和判别器的互相博弈,就完成了对抗训练。

 

GAN 的⽬标很明确:⽣成训练样本。

特征提取器:

在迁移学习中,天然地存在⼀个源领域,⼀个⽬标领域,因此,我们可以免去⽣成样本的过程,⽽直接将其中⽬标域当作是⽣成的样本。此时,⽣成器的职能发⽣变化,不再⽣成新样本,⽽是扮演了特征提取的功能:不断学习领域数据的特征,使得判别器⽆法对两个领域进⾏分辨。这样,原来的⽣成器也可以称为特征提取器(Feature Extractor)。

4. 生成对抗网络迁移

 

代表性的方法:

(1)DANN
Yaroslav Ganin 等⼈ [Ganin et al., 2016] ⾸先在神经⽹络的训练中加⼊了对抗机制,作者将他们的⽹络称之为 DANN(Domain-Adversarial Neural Network)。

 

⽹络的学习⽬标是: ⽣成的特征尽可能帮助区分两个领域的特征,同时使得判别器⽆法对两个领
域的差异进⾏判别。

主要贡献:首次把深度迁移学习和对抗网络结合在一起。

 

(2) DSN
 Google Brain 的 Bousmalis 等⼈通过提出 DSN ⽹络 (Domain Separation Networks) [Bousmalis et al., 2016] 对 DANN 进⾏了扩展。 DSN 认为,源域和⽬标域都由两部分构成:公共部分和私有部分。公共部分可以学习公共的特征,私有部分⽤来保持各个领域独⽴的特性。
主要贡献:提出全新的概念,即公有和私有特征,并定义了新的损失函数:

4. 生成对抗网络迁移

 

代表性的方法:

(1)DANN
Yaroslav Ganin 等⼈ [Ganin et al., 2016] ⾸先在神经⽹络的训练中加⼊了对抗机制,作者将他们的⽹络称之为 DANN(Domain-Adversarial Neural Network)。

 

⽹络的学习⽬标是: ⽣成的特征尽可能帮助区分两个领域的特征,同时使得判别器⽆法对两个领
域的差异进⾏判别。

主要贡献:首次把深度迁移学习和对抗网络结合在一起。

 

(2) DSN

 Google Brain 的 Bousmalis 等⼈通过提出 DSN ⽹络 (Domain Separation Networks) [Bousmalis et al., 2016] 对 DANN 进⾏了扩展。 DSN 认为,源域和⽬标域都由两部分构成:公共部分和私有部分。公共部分可以学习公共的特征,私有部分⽤来保持各个领域独⽴的特性。

主要贡献:提出全新的概念,即公有和私有特征,并定义了新的损失函数:

深度学习之迁移学习 深度迁移的几种方法_深度学习之迁移学习_06

深度学习之迁移学习 深度迁移的几种方法_Domain_07

(3)Selective Adversarial Networks (SAN)
清华⼤学龙明盛团队 2018 年发表在计算机视觉顶级会议 CVPR 上的⽂章提出了⼀个
选择性迁移⽹络 (Partial Transfer Learning)。

问题背景:在迁移过程中,源域中类别往往很多,而目标域通常只和其中一小部分相关,直接迁移肯定会产生负迁移的影响。而目标域中数据是没有标签的,我们不知道它属于源域的哪个类别,怎么解决?

 

贡献:提出部分迁移学习,提出了⼀个概率权重的判别器,这种约束是样本级别的,就是可以控制尽可能让更相似的样本参与迁移。另外提出⼀个类别级别的约束,可以很好地避免不在⽬标域中的那些类别参与迁移。实现主要依靠损失函数。

 

 

深度学习之迁移学习 深度迁移的几种方法_Domain_08