大白话迁移学习
在机器学习领域中,一个机器模型将其他领域(源域)学习的知识迁移到当前任务(目标域)的学习方式成为迁移学习。类比于人类:应用先前的经验知识进行推理和学习,比如你学会了骑自行车,那么学习骑摩托车就比较容易。
迁移学习的定义
在上面我们提到了两个关键的词:源域和目标域;源域(Source Domain)是已有的知识领域;目标域(Target Domain)是要进行学习的领域。
D
s
,
D
t
D_s, D_t
Ds,Dt 分别表示源域和目标域,
X
s
,
X
t
X_s, X_t
Xs,Xt 分别是源域和目标域的样本,通常,目标域和源域样本具有不同的特征分布
X
s
≠
X
t
X_s \neq X_t
Xs=Xt,或者不同的不同的边际概率分布
P
s
(
X
)
≠
P
t
(
X
)
P_s (X) \neq P_t (X)
Ps(X)=Pt(X).
给定一个源域
D
s
=
X
s
,
Y
s
D_s={X_s,Y_s}
Ds=Xs,Ys 和一个目标域
D
t
=
X
t
,
Y
t
D_t={X_t,Y_t}
Dt=Xt,Yt ,对于不同任务
Y
t
Y_t
Yt 具有不同定义,比如,半监督学习任务时,
Y
t
Y_t
Yt 表示部分的标签,其数量少于样本数;对比无监督域自适应任务,
Y
t
Y_t
Yt 表示一个空集。
迁移学习目标是借助源域知识学习一个目标预测模型
F
:
X
t
→
Y
t
\mathcal {F}:X_t \to Y_t
F:Xt→Yt,其中
X
s
≠
X
t
X_s \neq X_t
Xs=Xt,
Y
s
≠
Y
t
Y_s \neq Y_t
Ys=Yt and/or
P
s
(
X
)
≠
P
t
(
X
)
P_s (X) \neq P_t (X)
Ps(X)=Pt(X)。
为什么要迁移学习?
绝大情况下获取标签是困难的,可获得有标签的目标样本是有限的,假设目标域上有标签样本远小于源域样本。迁移学习提供一种策略将源域的知识促进目标域上任务学习。
迁移学习的分类
从源域和目标域之间的差异上分类
- 源域和目标域具有不同的特征空间
- 具有相同的特征空间,但是特征的边际分布不同
- 标签空间不同(例如:源域上有class_a和Class_c,目标域上有Class_b,CLass_c, Class_d )
- 标签空间相同,但是标签的条件概率分布不同
其中,1和3相对没有 2、4容易实现,目前主要研究也是在2、4 上面。
从迁移方式上分类
- 基于特征的迁移 : TCA 2021
- 基于实例的迁移 : TrAdaBoot 2007
- 基于模型的迁移 : Collaborative Filtering (IJCAI 2009)
- 基于关系的迁移:Relation-based transfer learning (IJCAI 2011)
迁移学习的特例
域自适应(Domain Adaptation)
- 数据分布角度:源域和目标域概率分布相似;通常采用最小化概率分布距离方式
- 特征选择角度: 源域和目标域共享某些特征;通常采用选择共享特征方式(比如,对抗学习:判断公共特征来自于那个域)
- 特征变换角度:源域和目标域共享子空间;通常采用变换到相同子空间方式(比如利用GAN生成目标域图像的方式)
知识蒸馏(Knowledge Distillation)
- 相同数据异构网络:通过一个具有较多知识储备的大型网络来教一个小型网络,以至于使得小的神经网络被训练到达到大神经网络的性能。
- 异构数据相同网络
- 异构数据相同标签分布