最近在看迁移学习相关内容,转载一篇入门学习,主要是一些概念性质的东西。原文地址:迁移学习——入门简介
目录
一、简介
二、迁移学习常用概念
三、迁移学习的分类
按照学习方式分四类
按迁移情境分三类
按特征空间分两类
四、迁移学习热门研究领域
域适配问题 (domain adaptation)
迁移方法
背景:现如今数据爆炸:
对机器学习模型来说要求快速构建,强泛化
对于数据来说,大部分数据没有标签
所以收集标签数据和从头开始构建一个模型都是代价高昂的,需要对模型和带有标签的数据进行重用
传统机器学习:假设数据服从相同分布,但我们希望针对不同分布的数据,快速构建模型,实现数据标记
迁移学习(transfer learning)通俗来讲,就是运用已有的知识来学习新的知识,核心是找到已有知识和新知识之间的相似性。在迁移学习中,我们已有的知识叫做源域(source domain),要学习的新知识叫目标域(target domain),源域和目标域不同但有一定关联,我们需要减小源域和目标域的分布差异,进行知识迁移,从而实现数据标定。
为什么要进行迁移学习:
数据的标签很难获取
从头建立模型是复杂和耗时的
space coding(稀疏编码):给定一组输入数据向量 { x1,x2,...,xN },去学习一组基字典(dictionary of bases),将每个样本表示为一组基的线性组合,其中这组基较为完备,多于输出,而系数向量则大部分都为 0,所以称为「稀疏」。
稀疏编码过程:
1、训练(training):给定一系列的样本图片[x1, x 2, …],我们需要学习得到一组基[Φ1, Φ2, …],也就是字典,这需要不断迭代,目标函数表示为Min |I – O| + u*(|a1| + |a2| + … + |an |)I为输入,O为输出,其后为正则化。
每次迭代分两步:
a)固定字典Φ[k],然后调整a[k],使得上式,即目标函数最小(即解LASSO问题)。
b)然后固定住a [k],调整Φ [k],使得上式,即目标函数最小(即解凸QP问题)。
不断迭代,直至收敛。这样就可以得到一组可以良好表示这一系列x的基,也就是字典。
2、编码(Coding):给定一个新的图片x,由上面得到的字典,通过解一个LASSO问题得到稀疏向量a。这个稀疏向量就是这个输入向量x的一个稀疏表达了。
1、基于样本的迁移:通过对源域中有标记样本加权利用完成知识迁移,例如相似的样本就给高的权重
假设:源域中的一些数据和目标域会共享很多共同的特征
方法:对源域进行样本重新加权,筛选出与目标域数据相似度高的数据,然后进行训练学习
代表工作:
• TrAdaBoost [Dai, ICML-07]
• Kernel Mean Matching (KMM) [Smola, ICML-08]
• Density ratio estimation [Sugiyama, NIPS-07]
优点:
• 方法较简单,实现容易
缺点:
• 权重选择与相似度度量依赖经验
• 源域和目标域的数据分布往往不同
2、基于特征的迁移:通过将源域和目标域特征变换到相同的空间(或者将其中之一映射到另一个的空间中)并最小化源域和目标域的距离来完成知识迁移;目前使用最多也最易于上手完成
假设:源域和目标域仅仅有一些交叉特征
方法:通过特征变换,将两个域的数据变换到同一特征空间,然后进行传统的机器学习
代表工作:
• Transfer component analysis (TCA) [Pan, TKDE-11]
• Spectral Feature Alignment (SFA) [Pan, WWW-10]
• Geodesic flow kernel (GFK) [Duan, CVPR-12]
• Transfer kernel learning (TKL) [Long, TKDE-15]
优点:
• 大多数方法采用
• 特征选择与变换可以取得好效果
缺点:
• 往往是一个优化问题,难求解
• 容易发生过适配
3、基于模型的迁移:将源域和目标域的模型与样本结合起来调整模型的参数;一般来说使用于神经网络,使用较多
假设:源域和目标域可以共享一些模型参数
方法:由源域学习到的模型运用到目标域上,再根据目标域学习新的模型
代表工作:
• TransEMDT [Zhao, IJCAI-11]
• TRCNN [Oquab, CVPR-14]
• TaskTrAdaBoost [Yao, CVPR-10]
优点:
• 模型间存在相似性,可以被利用
缺点:
• 模型参数不易收敛
4、基于关系的迁移:通过在源域中学习概念之间的关系,然后将其类比到目标域中,完成知识的迁移。
假设:如果两个域是相似的,那么它们会共享某种相似关系
方法:利用源域学习逻辑关系网络,再应用于目标域上
代表工作:
• Predicate mapping and revising [Mihalkova, AAAI-07],
• Second-order Markov Logic [Davis, ICML-09]
有标签的源域和无标签的目标域共享相同的特征和类别,但是特征分布不同,如何利用源域标定目标域计算机视觉的一个重要问题
解决思路:
数据分布角度:最小化概率分布距离————概率分布适配(distribution adaptation)
边缘分布适配:目标域数据每类分布图形和源域的看起不一样
条件分布适配:目标域数据每类分布图形和源域的看起大致一样,但类内分布不一样
联合分布适配:目标域数据每类分布图形和源域的看起不一样,但类内分布也不一样
方法:
基础:大多数方法基于MMD距离进行优化求解
效果:平衡(BDA)>联合(JDA)> 边缘(TCA)> 条件
使用:数据整体差异大(相似度低),边缘分布更重要
数据整体差异小(协方差漂移),条件分布更重要
最新成果:深度学习+分布适配往往有更好的效果(DDC、DAN、JAN)
1、基于特征的迁移方法
(TCA)Transfer component analysis [Pan, TKDE-11]
迁移成分分析:将源域和目标域变换到相同空间,最小化它们的距离
其中优化目标表示最小化源域目标域在高维空间的低维嵌入的距离,其后是正则化
分布距离由MMD求出,当源域数据和目标域数据映射在一个高维完备的希尔伯克空间中,其分布可以用其平均值表示,
TCA的扩展:
ACA:最小化MMD,同时维持迁移过程中目标域的结构
DTMKL:多核MMD,原来有一个k现在有多个k求解
DDC:MMD加入神经网络(一层)
DAN:MMD加入神经网络(三层)
DME:先进行矩阵变换再映射
CMD:不只一阶的MMD,k阶
joint distribution adaptation(JDA)
直接继承于TCA,但是加入了条件分布适配
联合分布的结果普遍优于单独适配边缘或条件分布
JDA扩展:
ARTL:分类器学习+联合分布适配
VDA:加入类间距的类内距比值
JGSA:加入类间距,类内距,标签适配(非深度学习效果最好)
JAN:提出JMMD度量,在深度网络中进行联合分布适配
SCL(structural corresponding learning):
寻找主特征并把源域和目标域对齐
Geodesic flow kernel[Duan, CVPR-12]
利用流形学习,将数据映射到高维空间中,然后测量其距离,使得源域和目标域差异最大
Transfer kernel learning [Long, TKDE-15]
在再生核希尔伯特空间中学习一个领域不变核矩阵,从而实现源域和目标域的适配
TransEMDT [Zhao, IJCAI-11]
首先通过聚类得到初始的目标域决策树模型,然后迭代更新决策树的参数直到收敛为止
2、基于实例的迁移方法:
Kernel mean matching [Huang, NIPS-06]
在再生希尔伯特空间中计算源域和目标域的协方差分布差异,然后用二次规划求解样本权重
Covariate Shift Adaptation [Sugiyama, JMLR-07]
采用自然估计法估计源域和目标域的密度比例,然后进行实例权重的分配,最后迁移
3、基于模型的迁移方法:
(ASVM)Adaptive SVM [Yang et al, ACM Multimedia-07]
使用SVM模型,在适配和原始模型之间学习“数据函数”,达到模型迁移效果
Multiple Convex Combination (MCC) [Schweikert, NIPS-09]
对一些域适配的方法做集成学习