一、迁移学习的基本方法
根据一萣的权重生成规则对数据样本进行重用,进行迁移学习
在迁移学习中对于源域和目标域,通常假定产生它们的概率分布是不同且未知嘚由于实例的维度和数量通常非常大,因此直接对概率分布进行估计是不可行的所以,大量的研究工作都着眼于对源域和目标域的分咘比值进行估计所估计得到的比值即为样本的权重。通常假设目标域与源域的比值小与无穷源域和目标域的条件概率分布相同。
TrAdaBoost 方法昰此方面的经典研究之一将AdaBoost 的思想应用于迁移学习中,提高有利于目标分类任务的实例权重、降低不利于目标分类任务的实例权重并基于 PAC 理论推导了模型的泛化误差上界 核均值匹配方法对于概率分布进行估计,目标是使得加权后的源域和目标域的该路分布尽可能的相近
通过特征变换的方式互相迁移来减少源域和目标域之间的差距,或者说是把源域和目标域的数据特征变换到统一的特征空间然后利用傳统的机器学习方法进行分类识别。
这类方法通常假设源域和目标域有一些交叉的特征
**迁移成分分析方法(TCA)**是较为典型的一个方法,該方法内容是以最大均值差异(MMD)作为度量准则将不同数据领域中的分布差异最小化。
**一种基于结构对应的学习方法(SCL)**通过映射将一個空间中独有的一些特征变换到其他所有空间中的轴特征上然后再该特征上使用机器学习的算法进行分类预测。
TCM 再最小化分布距离的同時加入实例选择的迁移联合匹配,将实例和特征迁移学习方法进行了有机的结合
近年来,基于特征的迁移学习方法大多与神经网络进荇结合再神经网络的训练中进行学习特征和模型的迁移。
基于模型的迁移方法 (Parameter/Model based Transfer Learning) 是指从源域和目标域中找到他们之间共享的参数信息 以實现迁移的方法。这种迁移方式要求的假设条件是 :源域中的数据与目标域中的数据可以共享一些模型的参数
**TransEMDT方法:**该方法首先针对已囿标记的数据,利用决策树构建鲁棒性的行为识别模型然后针对无标定数据,利用K-Means聚类方法寻找最优化的标定参数
利用HMM 针对Wifi室内定位茬不同设备、不同时间和不同空间下动态变化的特点,进行不同分布下的室内定位研究
对SWM 进行了改进研究,假定SVM中的权重向量可以分成兩个部分
将社交信息加入迁移学习方法的正则项中 。
改进深度网络结构 通过在网络中加入分布适配层,进一步提高深度迁移学习网络對于大数据的泛化能力
通过对现有工作的调研可以发现,目前绝大多数基于模型的迁移学习方法都与深度神经网络进行结合这些方法對现有的一些神经网络结构进行修改,在网络中加入领域适配层然后联合进行训练。因此这些方法也可以看作是基于模型、特征的方法的结合。
这种方法比较关注源域与目标域的样本之间的关系
就目前而言、基于关系的迁移学习方法的相关研究工作比较少,仅有几篇連贯的文章这些文章都借助于马尔科夫逻辑网络 来挖掘不同领域之间的关系。
二、第一类方法:数据分布自适应
数据分布自适应是一类朂常用的迁移学习方法这种方法的基本思想是,由于源域和目标域的数据概率分布不同那么最直接的方式就是通过一些变换,将不同嘚数据分布的距离拉近
简单来说,数据的边缘分布不同就是数据整体不相似。数据的条件分布不同就是数据整体相似,但是具体到烸个类里都不太相似。
根据数据分布的性质这类方法又可以分为边缘分布自适应、条件分布自适应、以及联合分布自适应。
(1)迁移荿分分析(TCA) :TCA 假设存在一个特征映射 ?,使得映射后数据的分布P(?(xs)) ≈ P(?(xt))TCA 假设如果边缘分布接近,那么两个领域的条件分布也会接近即条件分布 P(ys|?(xs))) ≈ P(yt|?(xt)))。这就是 TCA 的全部思想在找映射 ?的方法是,假设
?是已知的,然后去求距离。在求距离时TCA使用了最大均值差异(MMD)来衡量距离。 TCA引入一个核矩阵K:
这是数学中一个**半定规划(SDP)**的问题解决起来非常耗时解决方法是用降维的方法取构造结果 ,用一个维度哽的矩阵W
在最小化源域核目标域的距离时还要维持各自的数据特征,就是数据的散度
**类内迁移(STL):**指出现有的绝大多数方法都只是學习一个全局的特征变换,而忽略了类内的相似性类内迁移可以利用类内的特征,实现更好的迁移效果STL 方法在大量行为识别数据中进荇了跨位置行为识别的实验。实验结果表明该方法可以很好地实现跨领域的行为识别任务 ,取得了当前最好的效果
3、联合分布自适应(JDA)
假设是最基本的出发点 ,假设两点:
源域和目标域的边缘分布不同
源域和目标域条件分布不同
边缘分布适配:仍然使用MMD距离来最小化源域和目标域的最大均值差异
条件分布适配:由于目标域里没有标签 不能求目标域的条件分布,利用类条件概率根据贝叶斯公式
来近似表示 理论依据充分统计量。没有目标域的标签用源域训练一个简单的分类器,到目标域上直接进行预测得到一些伪标签。
同样也要添加一个限制条件 使得变换前后数据的方差要维持不变。在求解方差过程中也可以使用”Rayleih quotient“一开始使用的是伪标签,精度不高我们鈳以多次迭代,用上一轮得到的标签来做伪标签
JDA的不足:边缘分布自适应和条件分布自适应并不是同等重要的。BAD通过采用一种平衡因子來动态的调整两个分布之间的距离
4.2 动态分布自适应
(1)BDA方法只是首次给出边缘分布和条件分布的定量估计。然而其并未解决平衡因子嘚精确计算问题。拓展BDA方法提出一个更具普适性的动态迁移框架DDA来解决平衡因子的精确估计问题。
(2)因为在无监督迁移学习问题定义Φ目标域没有标记,不能将平衡因子视为迁移学习中的参数通过交叉验证确定最优取值,有两种非直接方法对平衡因子的值进行估计:
然而尽管上述两种估计方案有一定的可行性,它们均需要大量的重复计算给普适计算设备带来了严峻的挑战。另外上述结果并不具有可解释性,其正确性也无法得到保证 (3)动态迁移方法是首次对 ? 值进行精确的定量估计方法。该方法利用领域的整体和局部性质來定量计算 ?(计算出的值用 ?? 来表示)。采用
A?distance 作为基本的度量方式这是首次给出边缘分布和条件分布的定量估计,对于迁移学习研究具有很大的意义 作者将机器学习问题规约成一个统计机器学习问题,可以用统计机器学习中的结构风险最小化的原则进行表示学习
仩式则为通用的一迁移学习架,可以适用于何问题为了对此架进行学习,作者分别提出了基于流形学习的动态迁移方法 MEDA , 2018b 和基于深学习的動态迁移方 DDAN来进行学习
. 将不同的概率分布自适应方法用于神经网络,是一个发展趋势将概率分布适配加入深度网络中,往往会取得比非深度方法更好的结果
三、第二类方法:特征选择
特征选择法的基本假设是:源域和目标域中均含有一部分公共的特征,在这部分公共嘚特征上源领域和目标领域的数据分布是一致的。因此此类方法的目标就是,通过机器学习方法选择出这部分共享的特征,即可依據这些特征构建模型
一个比较经典的方法是:SCL
四、第三类方法:子空间学习
子空间学习法通常假设源域和目标域数据在变换后的子空间Φ会有着相似的分布。我们按照特征变换的形式将子空间学习法分为两种:基于统计特征变换的统计特征对齐方法,以及基于流形变换嘚流形学习方法
统计特征对齐方法主要将数据的统计特征进行变换对齐。对齐后的数据可以利用传统机器学习方法构建分类器进行学習。
**SA(子空间对齐)方法:**是代表性成果SA方法直接寻求一个线性变换M,将不同的数据实现变换对齐
**SDA:**该方法在 SA 的基础上,加入了概率汾布自适应SDA方法提出,除了子空间变换矩阵之外再增加一个概率分布自适应变换。SDA对源域和目标域进行二阶特征变换SA对源域和目标域只进行一阶特征变换 。
CORAL损失被定义为源域和目标域的二阶统计特征距离
**基本假设:**现在的数据是从一个高维空间中采样出来的所以,咜具有高维空间中的低维流形结构流形就是一种几何对象。
由于在流形空间中的特征通常都有着很好的几何性质可以避免特征扭曲,洇此我们首先将原始空间下的特征变换到流形空间中在 Grassmann 流形中,特征变换和分布适配通常都有着有效的数值形式因此在迁移
学习问题Φ可以被很高效地表示和求解。
**2.1 SGF方法:**把源域和目标域分别看成高维空间 (即Grassmann 流形) 中的两个点在这两个点的测地线距离上取 d 个中间点,然後依次连接起来这样,源域和目标域就构成了一条测地线的路径我们只需要找到合适的每一步的变换,就能从源域变换到目标域了
**2.2GFK方法:**首先解决SGF的问题,确定中间点的个数d它通过提出一种核学习的方法,利用路径上的无穷个点的积分把这个问题解决了。它又解決了第二个问题:当有多个源域的时候我们如何决定使用哪个源域跟目标域进行迁移?GFK 通过提出 Rank of Domain 度量度量出跟目标域最近的源域,来解决这个问题
子空间学习方法和概率分布自适应方法可以有机的进行组合,克服各自的缺点
深度学习对比非深度学习的优势:自动化哋提取更具表现力的特征,以及满足了实际应用中的端到端 (End-to-End) 需求
基于对抗网络的迁移学习,也是一个热门的研究点
1、深度网络的可迁迻性
网络的前面几层都学习到的是通用的特征(generalfeature);随着网络层次的加深,后面的网络更偏重于学习任务特定的特征(specific feature)
如果应用于迁移學习如何决定该迁移哪些层、固定哪些层? 这些对理解神经网络以及深度迁移学习都有非常重要的意义。
1.1康奈尔大学的Jason Yosinski进行深度神经網络可迁移性的研究结论:
神经网络的前 3 层基本都是 general feature进行迁移的效果会比较好;
深度迁移网络中加入 fine tune-tune,效果会提升比较大可能会比原網络效果还好;
fine tune-tune 可以比较好地克服数据之间的差异性;
深度迁移网络要比随机初始化权重效果好;
网络层数的迁移可以加速网络的学习和優化;
2、最简单的深度迁移:fine tunetune
fine tunetune 就是利用别人已经训练好的网络,针对自己的任务再进行调整
不需要针对新任务从头开始训练网络,节省叻时间成本;
预训练好的模型通常都是在大数据集上进行的无形中扩充了我们的训练数据,使得模型更鲁棒、泛化能力更好;
fine tunetune 实现简单使得我们只关注自己的任务即可。
fine tunetune 并不只是针对深度神经网络有促进作用对传统的非深度学习也有很好的效果。例如fine tunetune 对传统的人工提取特征方法就进行了很好的替代。我们可以使用深度网络对原始数据进行训练依赖网络提取出更丰富更有表现力的特征。然后将这些特征作为传统机器学习方法的输入。这样的好处是显然的:既避免了繁复的手工特征提取又能自动地提取出更有表现力的特征。
fine tunetune 的缺點:无法处理训练数据和测试数据分布不同的情况因为 fine tunetune 的基本假设也是训练数据和测试数据服从相同的数据分布
许多深度学习方法都开發出了==自适应层 (Adaptation Layer) ==来完成源域和目标域数据的自适应。自适应能够使得源域和目标域的数据分布更加接近从而使得网络的效果更好。
从上述的分析我们可以得出深度网络的自适应主要完成两部分的工作:
一是哪些层可以自适应,这决定了网络的学习程度;
二是采用什么样嘚自适应方法 (度量准则)这决定了网络的泛化能力。
深度网络中最重要的是网络损失的定义 绝大多数深度迁移学习方法都采用了以下的損失定义方式:
上述的分析指导我们设计深度迁移网络的基本准则:决定自适应层,然后在这些层加入自适应度量最后对网络进行 fine tunetune。 3.2核惢方法 DaNN神经网络 :DaNN 的结构异常简单它仅由两层神经元组成:特征层和分类器层。作者的创新工作在于==在特征层后加入了一项MMD
适配层,==鼡来计算源域和目标域的距离并将其加入网络的损失中进行训练。
但是由于网络太浅,表征能力有限故无法很有效地解决 domain adaptation 问题。因此后续的研究者大多数都基于其思想进行扩充,如将浅层网络改为更深层的 AlexNet、ResNet、VGG 等;如将 MMD 换为多核的 MMD 等
(1)第一个方法:DDC(Deep Domain Confusion) DDC 遵循了峩们上述讨论过的基本思路,采用了在 ImageNet 数据集上训练好的 AlexNet 网络进行自适应学习DDC固定了AlexNet的前7层,再第八层(分类器前一层)上加入了自适應的度量自适应度量方法采用了被广泛使用的MMD准则。
(2)DAN(Deep Adaptation Networks) DAN对 DDC 方法进行了几个方面的扩展首先,有别于 DDC 方法只加入一个自适应层DAN 方法同时加入了三个自适应层 (分类器前三层)。其次DAN 方法采用了表征能力更好的多核 MMD 度量 (MK-MMD)代替了 DDC 方法中的单一核 MMD。然后DAN 方法将多核 MMD
的参數学习融入到深度网络的训练中,不增加网络的额外训练时间DAN 方法在多个任务上都取得了比 DDC更好的分类效果。
==为什么适配后三层:==网络嘚迁移能力在这三层开始就会特别地 task-specific所以要着重适配这三层。其他网络是不是这三层就要通过自己的实验来推测DAN 只关注使用 AlexNet。
DAN 的优化目标也由两部分组成:损失函数和自适应损失
通过 kernel trick(类比以前的 MMD 变 换) 我们总是可以把 MK-MMD 展开成一堆内积的形式。然而数据之间两两计算内積是非常复杂的,时间复杂度为 O(n2)这个在深度学习中的开销非常之大。作者在这里采用了 Gretton 在文章提出的对 MK-MMD 的无偏估计
在具体进行 SGD 的时候,我们需要对所有的参数求导:对 Θ 求导在实际用 multiplekernel 的时候,作者用的是多个高斯核
学习 β 主要是为了确定多个 kernel 的权重。学习的时候目标是:确保每个 kernel 生成的 MMD 距离的方差最小。
(3)同时迁移领域和任务 领域和任务同时迁移的方法作者提出网络要进行两部分的迁移:
和 target 進行适配的时候,也要根据 source 的类别分布情况来进行调整 target 的其实本意和 JDA 差不多。
进行训练的时候把source 的每一个样本处于每一个类的概率都記下来,然后对于所有样本,属于每一个类的概率就可以通过求和再平均得到如下图所示。这样的目的是:根据 source 中的类别分布关系來对 target 做相应的约束。比如source 中和 bike 最相似的 class,肯定是 motorbike而不是 truck。这样有一定的道理
(4)深度联合分布自适应 JAN(Joint Adaptation Network)方法 在深度网络中同时进荇联合分布的自适应和对抗学习。JAN 方法将只对数据进行自适应的方式推广到了对类别的自适应提了 JMMD 度量 (Joint MMD)。
(5)AdaBN 通过在归一化层加入统计特征的适配从而完成迁移。
AdaBN 对比其他方法实现相当简单。并且方法本身不带有任何额外的参数。在许多公开数据集上都取得了很好嘚效果
基于深度网络进行迁移学习,其核心在于找到网络需要进行自适应的层,并且对这些层加上自适应的损失度量
特别地,最近意大利的学者 Carlucci 等人在 2017 年计算机视觉领域顶级会议 ICCV 上提出了自动深度网络自适应层 (AutoDIAL, Automatic DomaIn Alignment Layers)该方法可以很简单地被加入现有的深度网络中,实现自動的自适应学习使得深度网络的迁移更便捷。
GAN 受到自博弈论中的二人零和博弈 (two-player game) 思想的启发而提出它一共包括两个部分:一部分为生成網络 (Generative Network),此部分负责生成尽可能地以假乱真的样本这部分被成为生成器 (Generator);另一部分为判别网络 (Discriminative Network),此部分负责判断样本是真实的还是由生荿器生成的,这部分被成为判别器
(Discriminator)生成器和判别器的互相博弈,就完成了对抗训练
在迁移学习中,存在源域和目标域直接将一个领域的数据(通常是目标域)当作是生成的样本。此时生成器的职能发生变化,不再生成新样本而是扮演了特征提取的功能:不断学习領域数据的特征,使得判别器无法对两个领域进行分辨这样原来的生成器也可以成为特征提取器。
在神经网络的训练中加入了对抗机制网络称之为:DANN
学习目标是:生成的特征尽可能帮助区分两个领域的特征,同时使得判别器无法对两个领域的差异进行判别
(2)DSN DSA网络对DANN進行了拓展,DSN 认为源域和目标域都由两部分构成:公共部分和私有部分。公共部分可以学习公共的特征私有部分用来保持各个领域独竝的特性。
重新定义了损失函数 ADDA ADDA 是一个通用的框架现有的很多方法都可被看作是 ADDA的特例。
(3)SAN 选择性迁移网络 那些只存于源域中 类别茬迁移时,会对迁移结果产生负迁移影响
因此,就要求相应的迁移学习方法能够对目标域选择相似的源域样本 (类别),同时也要避免负遷移但是目标域通常是没有标签的,不知道和源域中哪个类别更相似作者指出这个问题叫做 partial transfer learning。
因为不知道目标域的标签也就没办法知道到底是源域中哪些类是目标域的。提出
概率权重的判别器
有样本级别的约束还有类别级别的约束。 在使用类别级别的约束时由于仳较依赖于之前的每个样本的预测概率,为了消除影响作者又在目标域上加了一项熵最小化。
(4)DAAN 将动态分布适配的概念进一步扩展到叻对抗网络中证明了对抗网络中同样存在边缘分布和条件分布不匹配的问题。作者提出一个动态对抗适配网络 DAAN (Dynamic Adversarial Adaptation Networks) 来解决对抗网络中的动态汾布适配问题取得了当前的最好效果。