背景:现现在数据爆炸:git
因此收集标签数据和从头开始构建一个模型都是代价高昂的,须要对模型和带有标签的数据进行重用github
传统机器学习:假设数据服从相同分布,但咱们但愿针对不一样分布的数据,快速构建模型,实现数据标记算法
迁移学习(transfer learning)通俗来说,就是运用已有的知识来学习新的知识,核心是找到已有知识和新知识之间的类似性。在迁移学习中,咱们已有的知识叫作源域(source domain),要学习的新知识叫目标域(target domain),源域和目标域不一样但有必定关联,咱们须要减少源域和目标域的分布差别,进行知识迁移,从而实现数据标定。网络
为何要进行迁移学习:架构
数据的标签很难获取 从头创建模型是复杂和耗时的
space coding(稀疏编码):给定一组输入数据向量 { x1,x2,...,xN },去学习一组基字典(dictionary of bases),将每一个样本表示为一组基的线性组合,其中这组基较为完备,多于输出,而系数向量则大部分都为 0,因此称为「稀疏」。app
稀疏编码过程: 一、训练(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的基,也就是字典。 二、编码(Coding):给定一个新的图片x,由上面获得的字典,经过解一个LASSO问题获得稀疏向量a。这个稀疏向量就是这个输入向量x的一个稀疏表达了。
基于样本的迁移:经过对源域中有标记样本加权利用完成知识迁移,例如类似的样本就给高的权重框架
假设:源域中的一些数据和目标域会共享不少共同的特征 方法:对源域进行样本从新加权,筛选出与目标域数据类似度高的数据,而后进行训练学习 表明工做: • TrAdaBoost [Dai, ICML-07] • Kernel Mean Matching (KMM) [Smola, ICML-08] • Density ratio estimation [Sugiyama, NIPS-07] 优势: • 方法较简单,实现容易 缺点: • 权重选择与类似度度量依赖经验 • 源域和目标域的数据分布每每不一样
基于特征的迁移:经过将源域和目标域特征变换到相同的空间(或者将其中之一映射到另外一个的空间中)并最小化源域和目标域的距离来完成知识迁移;目前使用最多也最易于上手完成dom
假设:源域和目标域仅仅有一些交叉特征 方法:经过特征变换,将两个域的数据变换到同一特征空间,而后进行传统的机器学习 表明工做: • 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] 优势: • 大多数方法采用 • 特征选择与变换能够取得好效果 缺点: • 每每是一个优化问题,难求解 • 容易发生过适配
基于模型的迁移:将源域和目标域的模型与样本结合起来调整模型的参数;通常来讲使用于神经网络,使用较多机器学习
假设:源域和目标域能够共享一些模型参数 方法:由源域学习到的模型运用到目标域上,再根据目标域学习新的模型 表明工做: • TransEMDT [Zhao, IJCAI-11] • TRCNN [Oquab, CVPR-14] • TaskTrAdaBoost [Yao, CVPR-10] 优势: • 模型间存在类似性,能够被利用 缺点: • 模型参数不易收敛
基于关系的迁移:经过在源域中学习概念之间的关系,而后将其类比到目标域中,完成知识的迁移。ide
假设:若是两个域是类似的,那么它们会共享某种类似关系 方法:利用源域学习逻辑关系网络,再应用于目标域上 表明工做: • Predicate mapping and revising [Mihalkova, AAAI-07], • Second-order Markov Logic [Davis, ICML-09]
有标签的源域和无标签的目标域共享相同的特征和类别,可是特征分布不一样,如何利用源域标定目标域计算机视觉的一个重要问题
解决思路:
数据分布角度:最小化几率分布距离————几率分布适配(distribution adaptation)
边缘分布适配:目标域数据每类分布图形和源域的看起不同 条件分布适配:目标域数据每类分布图形和源域的看起大体同样,但类内分布不同 联合分布适配:目标域数据每类分布图形和源域的看起不同,但类内分布也不同 方法: 基础:大多数方法基于MMD距离进行优化求解 效果:平衡(BDA)>联合(JDA)> 边缘(TCA)> 条件 使用:数据总体差别大(类似度低),边缘分布更重要 数据总体差别小(协方差漂移),条件分布更重要 最新成果:深度学习+分布适配每每有更好的效果(DDC、DAN、JAN)
迁移方法:
一、基于特征的迁移方法:
(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]
首先经过聚类获得初始的目标域决策树模型,而后迭代更新决策树的参数直到收敛为止
二、基于实例的迁移方法:
Kernel mean matching [Huang, NIPS-06]
在再生希尔伯特空间中计算源域和目标域的协方差分布差别,而后用二次规划求解样本权重
Covariate Shift Adaptation [Sugiyama, JMLR-07]
采用天然估计法估计源域和目标域的密度比例,而后进行实例权重的分配,最后迁移
三、基于模型的迁移方法:
(ASVM)Adaptive SVM [Yang et al, ACM Multimedia-07]
使用SVM模型,在适配和原始模型之间学习“数据函数”,达到模型迁移效果
Multiple Convex Combination (MCC) [Schweikert, NIPS-09]
对一些域适配的方法作集成学习
TrAdaBoost [Dai, ICML-07]
利用Boost的技术过滤掉多个源域中与目标域不类似的样本,而后进行实例迁移学习
MsTL-MvAdaboost [Xu, ICONIP-12]
不只考虑源域和目标域的样本类似度状况,同时,以多视图学习的目标来进行统一的迁移
Consensus regularization [Luo, CIKM-08]
同时在源域和伪标注的目标域上训练分类器,利用一致性约束进行知识的迁移
AlexNet:基于神经网络学习(CNN)的框架,解决了图像分类的问题
VGG:在AlexNet网络的基础上发展而来的神经网络模型,能够应用在人脸识别、图像分类等方面
ResNet(Residual Neural Network):基于神经网络学习(CNN)的框架,经过使用ResNet Unit成功训练出了152层的神经网络,参数量比VGGNet低,效果突出。ResNet的结构能够极快的加速神经网络的训练,模型的准确率也有比较大的提高。
PyTorch:一个以Python 优先的深度学习框架,不只可以实现强大的GPU 加速,同时还支持动态神经网络,这是如今不少主流框架好比Tensorflow 等都不支持的。
TensorFlow :是世界上最受欢迎的开源机器学习框架,它具备快速、灵活并适合产品级大规模应用等特色