迁移学习之概述

前言

迁移学习是一种利用已有知识去辅助解决未知领域的问题的学习方法,主要是想要做到我们人类轻易就能做到的“举一反三”。万事万物皆存在联系,如果我们学会骑自行车,自然骑摩托车是容易学会的。很多时候,我们有两个相关的任务,两个相关数据集,其中一个数据集是有大量标注数据的,而另一个数据集却只有少量标注数据,如果对这个数据集进行标注需要耗费大量的人力,这时候一个自然而然的想法就是我们能不能利用相关的有标注的数据来辅助目标的少量的标注数据,完成对目标任务的学习,迁移学习就是研究这一类问题的学习方法。

问题定义

迁移学习主要有这些定义:
(1) 源域$D_s$,表示辅助数据集,一般会有大量的标注数据,也可以是没有标注数据。
(2) 源任务$T_s$,表示辅助数据集的学习任务,如果是监督学习任务,源域的数据集是有标签的,如果是无监督学习任务,源域的数据集就是没有标签的。
(3) 源域的分布$P_s(X_s)$,$X_s$表示源域的特征空间中的随机变量,$P_s(X_s)$表示这个随机变量的分布情况。举个例子,源域是猫的特征,猫的特征有毛色,体型等等,假设有5个特征,则特征空间就是有5个维度的空间,在这个空间中各个点的概率就是源域的分布。
(4) 源任务的条件分布$P_s(Y_s|X_s)$,$Y_s$表示源任务的标签空间,$P_s(Y_s|X_s)$表示源任务要学习得到的条件分布,对于输入$X_s$,输出其对应各个标签的条件概率$P_s(Y_s|X_s)$。
(5) 目标域$D_t$,表示目标数据集,一般是只有少量的标注数据或没有标注数据。
(6) 目标任务$T_t$,表示目标任务,定义同源任务$T_s$。
(7) 目标域的分布$P_t(X_t)$,定义同$P_s(X_s)$。
(8) 目标任务的条件分布$P_t(Y_t|X_t)$,定义通$P_t(Y_t|X_t)$。

基于上述几个定义,迁移学习可以分为以下几种情况:
(1) 源域$D_s$和目标域$D_t$特征空间不同,源任务$T_s$和目标任务$T_t$标签空间不同。
(2) 源域$D_s$和目标域$D_t$特征空间不同,源任务$T_s$和目标任务$T_t$标签空间相同但条件分布$P_s(Y|X)$和$P_t(Y|X)$不同。
(3) 源域$D_s$和目标域$D_t$特征空间不同,源任务$T_s$和目标任务$T_t$标签相同相同且条件分布$P_s(Y|X)$和$P_t(Y|X)$相同。
(4) 源域$D_s$和目标域$D_t$特征空间相同但分布$P_s(X)$和$P_t(X)$不同,源任务$T_s$和目标任务$T_t$标签空间不同。
(5) 源域$D_s$和目标域$D_t$特征空间相同但分布$P_s(X)$和$P_t(X)$不同,源任务$T_s$和目标任务$T_t$标签空间相同但条件分布$P_s(Y|X)$和$P_t(Y|X)$不同。
(6) 源域$D_s$和目标域$D_t$特征空间相同但分布$P_s(X)$和$P_t(X)$不同,源任务$T_s$和目标任务$T_t$标签相同相同且条件分布$P_s(Y|X)$和$P_t(Y|X)$相同。
(7) 源域$D_s$和目标域$D_t$特征空间相同且分布$P_s(X)$和$P_t(X)$相同,源任务$T_s$和目标任务$T_t$标签空间不同。
(8) 源域$D_s$和目标域$D_t$特征空间相同且分布$P_s(X)$和$P_t(X)$相同,源任务$T_s$和目标任务$T_t$标签空间相同但条件分布$P_s(Y|X)$和$P_t(Y|X)$不同。

迁移学习可以分为同构迁移学习和异构迁移学习,一般源域和目标域的特征空间不同就称为异构迁移学习,源域和目标域特征空间相同但分布不同就称为同构迁移学习。

迁移学习三种场景

迁移学习主要可以分为三种学习场景,包括:
(1) 归纳式迁移学习,这种学习场景,要求目标任务是有标签的。
(2) 直推式迁移学习,这种学习场景,要求目标任务是无标签的,且要求源任务是有标签的。
(3) 无监督迁移学习,这种学习场景,要求目标任务和源任务都是无标签的。

迁移学习四种方法

基于实例

基于实例的迁移学习方法通常要求源域$D_s$与目标域$D_t$的特征空间相同,且要求源任务$T_s$和目标任务$T_t$的标签空间也相同。通过调整源域中样本的权重,使得源域的特征空间分布$P_s(X)$与目标域的特征空间分布$P_t(X)$相似,利用同一个模型求得$P_s(Y|X)$和$P_t(Y|X)$。

基于特征

基于特征的迁移学习方法通常不要求源域$D_s$与目标域$D_t$有相同的特征空间,但一般要求源任务$T_s$和目标任务$T_t$有相同的标签空间,通过将不同域的特征空间映射到同一个特征空间使得源域和目标域既有相同的特征空间也有相同的分布,之后使用同一个模型求得$P_s(Y|Z)$和$P_t(Y|Z)$,其中$Z$是映射后得到的同一空间的样本。如何设置特征空间转换到同一特征空间的参数,需要根据目标函数作为指标调整。

基于模型

基于模型的迁移学习方法通常不要求源域$D_s$与目标域$D_t$有相同的特征空间,也不要求源任务$T_s$和目标任务$T_t$有相同的标签空间。通过共用模型的部分参数,首先将不同域映射到同一个域具有相同分布,然后争对不同的任务添加不同的模型结构,使得可以分别求得$P_s(Y_s|Z)$和$P_t(Y_t|Z)$,其中$Z$是映射后得到的同一空间的样本。一般的模型fine-tuning就可以看作是基于模型的迁移学习。

基于关系

基于关系的迁移学习方法通过学习到每个域内部的联系和行为,发现每个域的内部联系和行为的相似之处,利用这些相似之处来完成知识迁移。比如电脑病毒和生物病毒都存在着自我复制/繁殖增加数量,都可以破坏宿主,那么就可以利用电脑病毒和生物病毒这些相似性来完成知识迁移。这种方法一般要求能够学到一种映射,把不同域的不同维度特征建立一种映射关系,比如将生物病毒的繁殖和电脑病毒的赋值映射到一起等等。

研究热点

域适配问题

源域和目标域的特征空间相同但分布不同,源任务和目标任务的标签空间相同,源域有大量标注数据而目标域没有标注数据,如何利用源域的数据实现对目标域数据的标注,这就是域适配问题。

对抗生成网络

将目标域看作是生成的数据,对抗生成网络的生成器的工作不再是生成数据,而是从目标域和源域中提取特征,判别器则对生成器提取的特征分类。对抗生成网络的生成器的任务变成了特征抽取,也可以看作是一个特征抽取器,特征抽取器的目标是发现源域和目标域的共同特征从而瞒过判别器。