文章目录
- 第十一章 迁移学习
-
- 11.1 迁移学习基础知识
-
- 11.1.1 迁移学习是什么?
- 11.1.2 为什么需要迁移学习?
- 11.1.3 迁移学习的基本问题是什么?
- 11.1.4 迁移学习的常见概念是什么?
- 11.1.5 迁移学习和传统机器学习有什么区别?
- 11.1.6 迁移学习的核心和测量标准?
- 11.1.7 迁移学习和其他概念的区别?
- 11.1.8 负迁移是什么?负迁移的原因是什么?
- 11.1.9 迁移学习的基本思路?
- 11.2 迁移学习的基本思路是什么?
-
- 11.2.1 基于样本迁移
- 11.2.2 基于特征迁移
- 11.2.3 基于模型迁移
- 11.2.4 基于关系迁移
- 11.3 常用的迁移学习方法
-
- 11.3.1 自适应数据分布
- 11.3.2 自适应边缘分布
- 11.3.3 自适应条件分布
- 11.3.4 概率分布自适应性比较
- 11.3.5 统计特征对齐法
- 11.3.6 流形学习方法
- 11.3.7 什么是finetune?
- 11.3.8 finetune为什么有效?
- 11.3.9 深度网络自适应是什么?
- 11.3.10 GAN应用于迁移学习
- 参考文献
第十一章 迁移学习
本章主要简要介绍了迁移学习的基本概念、迁移学习的必要性、研究领域和基本方法。重点介绍了数据分布自适应、特征选择、子空间学习和最流行的深度迁移学习方法。此外,我们还结合最近的一些研究成果,展望未来的迁移学习。并在迁移学习领域提供一些常用的学习资源,方便感兴趣的读者快速开始学习。
11.1 迁移学习基础知识
11.1.1 迁移学习是什么?
找出目标问题的相似性,迁移学习任务就是从相似性出发,把旧领域(domain)学过的模型应用于新领域。
11.1.2 为什么需要迁移学习?
- :虽然有大量的数据,但通常没有标记,不能训练机器学习模型。手动识别数据太耗时了。
- :普通人无法拥有庞大的数据量与计算资源。因此需要借助于模型的迁移。
- :即使在同一任务中,模型也往往难以满足每个人的个性化需求,如特定的隐私设置。这需要适应不同人之间的模型。
- 。
11.1.3 迁移学习的基本问题是什么?
主要有三个基本问题:
- : 如何学习迁移?(设计迁移方法)
- : 给定目标领域,如何找到相应的源领域,然后迁移?(源领域选择)
- : 什么时候可以迁移,什么时候不能迁移?(避免负迁移)
11.1.4 迁移学习的常见概念是什么?
- 基本定义
- :数据特征和特征分布是学习的主体
- :已有知识的域
- :学习域
- :学习结果由目标函数和学习结果组成
- :数据特征和特征分布是学习的主体
- 按特征空间分类
- : 与目标域相同的特征空间, D s = D t D_s=D_t Ds=Dt
- :源域和目标域的特征空间不同, D s ≠ D t D_s\ne D_t Ds=Dt
- 按迁移情景分类
- 按迁移方法分类
- :通过权重重用源域和目标域的样例进行迁移
- :将源域和目标域的特征变换到相同空间
- :利用源域和目标域的参数共享模型
- :利用源域中的逻辑网络关系进行迁移
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZtOZ4btd-1623575828542)(img/ch11/1542972502781.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-d6uvnlOp-1623575828544)(img/ch11/1542974131814.png)]
11.1.5 迁移学习与传统机器学习有什么区别?
迁移学习 | 传统机器学习 | |
---|---|---|
数据分布 | 训练和测试数据不需要同分布 | 训练和测试数据同分布 |
数据标签 | 不需要足够的数据标注 | 足够的数据标注 |
建模 | 可以重用之前的模型 | 每个任务分别建模 |
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GWyUdQND-1623575828546)(img/ch11/1542973960796.png)]
11.1.6 迁移学习的核心及度量准则?
:开发算法来最大限度地利用有标注的领域的知识,来辅助目标领域的知识获取和学习。
:找到源领域和目标领域之间的相似性,并加以合理利用。这种相似性非常普遍。比如,不同人的身体构造是相似的;自行车和摩托车的骑行方式是相似的;国际象棋和中国象棋是相似的;羽毛球和网球的打球方式是相似的。这种相似性也可以理解为不变量。以不变应万变,才能立于不败之地。
**有了这种相似性后,下一步工作就是, 如何度量和利用这种相似性。**度量工作的目标有两点:一是很好地度量两个领域的相似性,不仅定性地告诉我们它们是否相似,更定量地给出相似程度。二是以度量为准则,通过我们所要采用的学习手段,增大两个领域之间的相似性,从而完成迁移学习。
11.1.7 迁移学习与其他概念的区别?
- 迁移学习与多任务学习关系:
- :多个相关任务一起协同学习;
- :强调信息复用,从一个领域(domain)迁移到另一个领域。
- 迁移学习与领域自适应::使两个特征分布不一致的domain一致。
- 迁移学习与协方差漂移::数据的条件概率分布发生变化。
Reference:
- 王晋东,迁移学习简明手册
- Ben-David, S., Blitzer, J., Crammer, K., Kulesza, A., Pereira, F., & Vaughan, J. W. (2010). A theory of learning from different domains. Machine learning, 79(1-2), 151-175.
- Tan, B., Song, Y., Zhong, E. and Yang, Q., 2015, August. Transitive transfer learning. In Proceedings of the 21th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining (pp. 1155-1164). ACM.
11.1.8 什么是负迁移?产生负迁移的原因有哪些?
负迁移(Negative Transfer)指的是,在源域上学习到的知识,对于目标域上的学习产生负面作用。
产生负迁移的原因主要有:
- 数据问题:源域和目标域压根不相似,谈何迁移?
- 方法问题:源域和目标域是相似的,但是,迁移学习方法不够好,没找到可迁移的成分。
负迁移给迁移学习的研究和应用带来了负面影响。在实际应用中,找到合理的相似性,并且选择或开发合理的迁移学习方法,能够避免负迁移现象。
11.1.9 迁移学习的基本思路?
迁移学习的总体思路可以概括为:开发算法来最大限度地利用有标注的领域的知识,来辅助目标领域的知识获取和学习。
- 找到目标问题的相似性,迁移学习任务就是从相似性出发,将旧领域(domain)学习过的模型应用在新领域上。
- 迁移学习,是指利用数据、任务、或模型之间的相似性,将在旧领域学习过的模型,应用于新领域的一种学习过程。
- 迁移学习是,如果你尝试优化任务B的性能,通常这个任务数据相对较少。 例如,在放射科中你知道很难收集很多射线扫描图来搭建一个性能良好的放射科诊断系统,所以在这种情况下,你可能会找一个相关但不同的任务,如图像识别,其中你可能用 1 百万张图片训练过了,并从中学到很多低层次特征,所以那也许能帮助网络在任务在放射科任务上做得更好,尽管任务没有这么多数据。
- 迁移学习什么时候是有意义的?它确实可以你的,但我有时候也见过有些场合使用迁移学习时,任务实际上数据量比任务要少, 这种情况下增益可能不多。
什么情况下可以使用迁移学习?
假如两个领域之间的区别特别的大,,因为在这种情况下效果不是很好。在这种情况下,推荐使用[3]的工作,在两个相似度很低的domain之间一步步迁移过去(踩着石头过河)。
- 迁移学习主要解决方案有哪些?
- 除直接看infer的结果的Accurancy以外,如何衡量迁移学习学习效果?
- 对抗网络是如何进行迁移的?
Reference:
- 王晋东,迁移学习简明手册
- Ben-David, S., Blitzer, J., Crammer, K., Kulesza, A., Pereira, F., & Vaughan, J. W. (2010). A theory of learning from different domains. Machine learning, 79(1-2), 151-175.
- Tan, B., Song, Y., Zhong, E. and Yang, Q., 2015, August. Transitive transfer learning. In Proceedings of the 21th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining (pp. 1155-1164). ACM.
11.2 迁移学习的基本思路有哪些?
迁移学习的基本方法可以分为四种。这四种基本的方法分别是:基于样本的迁移, 基于模型 的迁移, 基于特征的迁移,及基于关系的迁移。
11.2.1 基于样本迁移
基于样本的迁移学习方法 (Instance based Transfer Learning) 根据一定的权重生成规则,对数据样本进行重用,来进行迁移学习。图14形象地表示了基于样本迁移方法的思想源域中存在不同种类的动物,如狗、鸟、猫等,目标域只有狗这一种类别。在迁移时,为了最大限度地和目标域相似,我们可以人为地提高源域中属于狗这个类别的样本权重。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JLlxgCdg-1623575828547)(media/631e5aab4e0680c374793804817bfbb6.jpg)]
在迁移学习中,对于源域Ds和目标域Dt,通常假定产生它们的概率分布是不同且未知的(P(Xs) =P(Xt))。另外,由于实例的维度和数量通常都非常大,因此,直接对 P(Xs) 和P(Xt) 进行估计是不可行的。因而,大量的研究工作 [Khan and Heisterkamp,2016, Zadrozny, 2004, Cortes et al.,2008, Dai et al., 2007, Tan et al.,2015, Tan et al., 2017] 着眼于对源域和目标域的分布比值进行估计(P(t)/P(s))。所估计得到的比值即为样本的权重。这些方法通常都假设P(s) <并且源域和目标域的条件概率分布相同(P(y|xs)=P(y|xt))。特别地,上海交通大学Dai等人[Dai et al.,2007]提出了 TrAdaboost方法,将AdaBoost的思想应用于迁移学习中,提高有利于目标分类任务的实例权重、降低不利于目标分类任务的实例权重,并基于PAC理论推导了模型的泛化误差上界。TrAdaBoost方法是此方面的经典研究之一。文献 [Huang et al., 2007]提出核均值匹配方法 (Kernel Mean atching, KMM)对于概率分布进行估计,目标是使得加权后的源域和目标域的概率分布尽可能相近。在最新的研究成果中,香港科技大学的Tan等人扩展了实例迁移学习方法的应用场景,提出 了传递迁移学习方法(Transitive Transfer Learning, TTL) [Tan etal., 2015] 和远域迁移学习 (Distant Domain Transfer Learning,DDTL) [Tan et al., 2017],利用联合矩阵分解和深度神经网络,将迁移学习应用于多个不相似的领域之间的知识共享,取得了良好的效果。
虽然实例权重法具有较好的理论支撑、容易推导泛化误差上界,但这类方法通常只在领域间分布差异较小时有效,因此对自然语言处理、计算机视觉等任务效果并不理想。而基于特征表示的迁移学习方法效果更好,是我们研究的重点。
11.2.2 基于特征迁移
基于特征的迁移方法 (Feature based Transfer Learning) 是指将通过特征变换的方式互相迁移 [Liu et al., 2011, Zheng et al.,2008, Hu and Yang, 2011],来减少源域和目标域之间的差距;或者将源域和目标域的数据特征变换到统一特征空间中 [Pan et al.,2011, Long et al., 2014b, Duan et al.,2012],然后利用传统的机器学习方法进行分类识别。根据特征的同构和异构性,又可以分为同构和异构迁移学习。图15很形象地表示了两种基于特 征的迁移学习方法。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dyaiTJ77-1623575828549)(media/fa08900e89bfd53cc28345d21bc6aca0.jpg)]
基于特征的迁移学习方法是迁移学习领域中最热门的研究方法,这类方法通常假设源域和目标域间有一些交叉的特征。香港科技大学的 Pan 等人 [Pan et al.,2011] 提出的迁移 成分分析方法 (Transfer Component Analysis, TCA)是其中较为典型的一个方法。该方法的 核心内容是以最大均值差异 (Maximum MeanDiscrepancy, MMD) [Borgwardt et al., 2006]作为度量准则,将不同数据领域中的分布差异最小化。加州大学伯克利分校的 Blitzer 等人 [Blitzer et al., 2006] 提出了一种基于结构对应的学习方法(Structural Corresponding Learning,SCL),该算法可以通过映射将一个空间中独有的一些特征变换到其他所有空间中的轴特征上,然后在该特征上使用机器学习的算法进行分类预测。清华大学龙明盛等人[Long et al.,2014b]提出在最小化分布距离的同时,加入实例选择的迁移联合匹配(Tran-fer Joint Matching, TJM) 方法,将实例和特征迁移学习方法进行了有机的结合。澳大利亚卧龙岗大学的 Jing Zhang 等人 [Zhang et al., 2017a]提出对于源域和目标域各自训练不同 的变换矩阵,从而达到迁移学习的目标。
11.2.3 基于模型迁移
基于模型的迁移方法 (Parameter/Model based Transfer Learning) 是指从源域和目标域中找到他们之间共享的参数信息,以实现迁移的方法。这种迁移方式要求的假设条件是: 源域中的数据与目标域中的数据可以共享一些模型的参数。其中的代表性工作主要有[Zhao et al., 2010, Zhao et al., 2011, Panet al., 2008b, Pan et al., 2008a]。图16形象地 表示了基于模型的迁移学习方法的基本思想。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oy2MPPzG-1623575828551)(media/602723a1d3ce0f3abe7c591a8e4bb6ec.jpg)]
其中,中科院计算所的Zhao等人[Zhao et al., 2011]提出了TransEMDT方法。该方法首先针对已有标记的数据,利用决策树构建鲁棒性的行为识别模型,然后针对无标定数据,利用K-Means聚类方法寻找最优化的标定参数。西安邮电大学的Deng等人[Deng et al.,2014] 也用超限学习机做了类似的工作。香港科技大学的Pan等人[Pan etal., 2008a]利用HMM,针对Wifi室内定位在不同设备、不同时间和不同空间下动态变化的特点,进行不同分布下的室内定位研究。另一部分研究人员对支持向量机 SVM 进行了改进研究 [Nater et al.,2011, Li et al., 2012]。这些方法假定 SVM中的权重向量 可以分成两个部分: = +, 其中 0代表源域和目标域的共享部分, 代表了对于不同领域的特定处理。在最新的研究成果中,香港科技大学的 Wei 等人 [Wei et al., 2016b]将社交信息加入迁移学习方法的 正则项中,对方法进行了改进。清华大学龙明盛等人[Long et al., 2015a, Long et al., 2016, Long etal., 2017]改进了深度网络结构,通过在网络中加入概率分布适配层,进一步提高了深度迁移学习网络对于大数据的泛化能力。
11.2.4 基于关系迁移
基于关系的迁移学习方法 (Relation Based Transfer Learning) 与上述三种方法具有截然不同的思路。这种方法比较关注源域和目标域的样本之间的关系。图17形象地表示了不 同领域之间相似的关系。
就目前来说,基于关系的迁移学习方法的相关研究工作非常少,仅有几篇连贯式的文章讨论: [Mihalkova et al., 2007, Mihalkova and Mooney,2008, Davis and Domingos, 2009]。这些文章都借助于马尔科夫逻辑网络(Markov Logic Net)来挖掘不同领域之间的关系相似性。
我们将重点讨论基于特征和基于模型的迁移学习方法,这也是目前绝大多数研究工作的热点。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mzQ3aLeH-1623575828552)(media/aa10d36f758430dd4ff72d2bf6a76a6c.jpg)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-a08OgWmE-1623575828553)(media/1542812440636.png)]
11.3 迁移学习的常用方法
11.3.1 数据分布自适应
数据分布自适应 (Distribution Adaptation) 是一类最常用的迁移学习方法。这种方法的基本思想是,由于源域和目标域的数据概率分布不同,那么最直接的方式就是通过一些变换,将不同的数据分布的距离拉近。
图 19形象地表示了几种数据分布的情况。简单来说,数据的边缘分布不同,就是数据整体不相似。数据的条件分布不同,就是数据整体相似,但是具体到每个类里,都不太相似。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lNwszKJl-1623575828553)(media/1542812748062.png)]
根据数据分布的性质,这类方法又可以分为边缘分布自适应、条件分布自适应、以及联合分布自适应。下面我们分别介绍每类方法的基本原理和代表性研究工作。介绍每类研究工作时,我们首先给出基本思路,然后介绍该类方法的核心,最后结合最近的相关工作介绍该类方法的扩展。
11.3.2 边缘分布自适应
边缘分布自适应方法 (Marginal Distribution Adaptation) 的目标是减小源域和目标域的边缘概率分布的距离,从而完成迁移学习。从形式上来说,边缘分布自适应方法是用P(Xs)和 P(Xt)之间的距离来近似两个领域之间的差异。即:
D I S T A N C E ( D s , D t ) ≈ ∥ P ( X s ) − P ( X t ) ∥ DISTANCE(D~s~,D~t~)\approx\lVert P(X_s)-P(X_t)\Vert DISTANCE(D s ,D t )≈∥P(Xs)−P(Xt)∥ (6.1)
边缘分布自适应对应于图19中由图19(a)迁移到图19(b)的情形。
11.3.3 条件分布自适应
条件分布自适应方法 (Conditional Distribution Adaptation) 的目标是减小源域和目标域的条件概率分布的距离,从而完成迁移学习。从形式上来说,条件分布自适应方法是用 P(ys|Xs) 和 P (yt|Xt) 之间的距离来近似两个领域之间的差异。即:
D I S T A N C E ( D s , D t ) ≈ ∥ P ( y s ∣ X s ) − P ( y t ∣ X t ) ∥ DISTANCE(D~s~,D~t~)\approx\lVert P(y_s|X_s)-P(y_t|X_t)\Vert DISTANCE(D s ,D t )≈∥P(ys∣Xs)−P(yt∣Xt)∥(6.8)
条件分布自适应对应于图19中由图19(a)迁移到图19©的情形。
目前单独利用条件分布自适应的工作较少,这些工作主要可以在 [Saito et al.,2017] 中找到。最近,中科院计算所的 Wang 等人提出了 STL 方法(Stratified Transfer Learning) [Wang tal.,2018]。作者提出了类内迁移 (Intra-class Transfer)的思想。指出现有的 绝大多数方法都只是学习一个全局的特征变换(Global DomainShift),而忽略了类内的相 似性。类内迁移可以利用类内特征,实现更好的迁移效果。
STL 方法的基本思路如图所示。首先利用大多数投票的思想,对无标定的位置行为生成伪标;然后在再生核希尔伯特空间中,利用类内相关性进行自适应地空间降维,使得不同情境中的行为数据之间的相关性增大;最后,通过二次标定,实现对未知标定数据的精准标定。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PUbgA0wR-1623575828554)(media/1542817481582.png)]
联合分布自适应方法 (Joint Distribution Adaptation) 的目标是减小源域和目标域的联合概率分布的距离,从而完成迁移学习。从形式上来说,联合分布自适应方法是用P(s) 和P(t)之间的距离、以及P(ys|s)和P(yt|t)之间的距离来近似两个领域之间的差异。即:
D I S T A N C E ( D s , D t ) ≈ ∥ P ( X s ) − P ( X t ) ∥ − ∥ P ( y s ∣ X s ) − P ( y t ∣ X t ) ∥ DISTANCE(D~s~,D~t~)\approx\lVert P(X_s)-P(X_t)\Vert-\lVert P(y_s|X_s)-P(y_t|X_t)\Vert DISTANCE(D s ,D t )≈∥P(Xs)−P(Xt)∥−∥P(ys∣Xs)−P(yt∣Xt)∥(6.10)
联合分布自适应对应于图19中由图19(a)迁移到图19(b)的情形、以及图19(a)迁移到 图19©的情形。
11.3.4 概率分布自适应方法优劣性比较
综合上述三种概率分布自适应方法,我们可以得出如下的结论:
- 精度比较: BDA >JDA >TCA >条件分布自适应。
- 将不同的概率分布自适应方法用于神经网络,是一个发展趋势。图23展示的结果表明将概率分布适配加入深度网络中,往往会取得比非深度方法更好的结果。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AVdaUYgg-1623575828555)(media/1542823019007.png)]
特征选择法的基本假设是:源域和目标域中均含有一部分公共的特征,在这部分公共的特征,源领域和目标领域的数据分布是一致的。因此,此类方法的目标就是,通过机器学习方法,选择出这部分共享的特征,即可依据这些特征构建模型。
图 24形象地表示了特征选择法的主要思路。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-m6EDQweG-1623575828557)(media/1542823210556.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aMGRxLgx-1623575828558)(media/a3db84158d9b6454adff88dbe4fa5d28.jpg)]
这这个领域比较经典的一个方法是发表在 2006 年的 ECML-PKDD 会议上,作者提出了一个叫做 SCL 的方法 (Structural Correspondence Learning) [Blitzer et al.,2006]。这个方法的目标就是我们说的,找到两个领域公共的那些特征。作者将这些公共的特征叫做Pivot feature。找出来这些Pivot feature,就完成了迁移学习的任务。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IKS7v6Yx-1623575828560)(media/4abacd82901988c3e0a98bdb07b2abc6.jpg)]
图 25形象地展示了 Pivot feature 的含义。 Pivot feature指的是在文本分类中,在不同领域中出现频次较高的那些词。总结起来:
- 特征选择法从源域和目标域中选择提取共享的特征,建立统一模型
- 通常与分布自适应方法进行结合
- 通常采用稀疏表示 ||||2,1 实现特征选择
11.3.5 统计特征对齐方法
统计特征对齐方法主要将数据的统计特征进行变换对齐。对齐后的数据,可以利用传统机器学习方法构建分类器进行学习。SA方法(Subspace Alignment,子空间对齐)[Fernando et al.,2013]是其中的代表性成果。SA方法直接寻求一个线性变换,将不同的数据实现变换对齐。SA方法的优化目标如下:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kRtfUrN2-1623575828560)(media/1542823438846.png)]
则变换 的值为:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DeuuiFsi-1623575828561)(media/1542823455820.png)]
可以直接获得上述优化问题的闭式解:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ERWwZJoT-1623575828562)(media/1542823474720.png)]
SA 方法实现简单,计算过程高效,是子空间学习的代表性方法。
11.3.6 流形学习方法
流形学习自从 2000 年在 Science 上被提出来以后,就成为了机器学习和数据挖掘领域的热门问题。它的基本假设是,现有的数据是从一个高维空间中采样出来的,所以,它具有高维空间中的低维流形结构。流形就是是一种几何对象(就是我们能想像能观测到的)。通俗点说就是,我们无法从原始的数据表达形式明显看出数据所具有的结构特征,那我把它想像成是处在一个高维空间,在这个高维空间里它是有个形状的。一个很好的例子就是星座。满天星星怎么描述?我们想像它们在一个更高维的宇宙空间里是有形状的,这就有了各自星座,比如织女座、猎户座。流形学习的经典方法有Isomap、locally linear embedding、 laplacian eigenmap 等。
流形空间中的距离度量:两点之间什么最短?在二维上是直线(线段),可在三维呢?地球上的两个点的最短距离可不是直线,它是把地球展开成二维平面后画的那条直线。那条线在三维的地球上就是一条曲线。这条曲线就表示了两个点之间的最短距离,我们叫它测地线。更通俗一点, 两点之间,测地线最短。在流形学习中,我们遇到测量距离的时候更多的时候用的就是这个测地线。在我们要介绍的 GFK 方法中,也是利用了这个测地线距离。比如在下面的图中,从 A 到 C 最短的距离在就是展开后的线段,但是在三维球体上看它却是一条曲线。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2mC5NyLz-1623575828563)(media/fcbe02803e45f6455a4602b645b472c5.jpg)]
由于在流形空间中的特征通常都有着很好的几何性质,可以避免特征扭曲,因此我们首先将原始空间下的特征变换到流形空间中。在众多已知的流形中, Grassmann 流形G(d) 可以通过将原始的 d 维子空间 (特征向量)看作它基础的元素,从而可以帮助学习分类 器。在 Grassmann流形中,特征变换和分布适配通常都有着有效的数值形式,因此在迁移学习问题中可以被很高效地表示和求解 [Hamm and Lee,2008]。因此,利用 Grassmann流形空间中来进行迁移学习是可行的。现存有很多方法可以将原始特征变换到流形空间 中[Gopalan et al., 2011, Baktashmotlagh et al.,2014]。
在众多的基于流形变换的迁移学习方法中,GFK(Geodesic Flow Kernel)方法[Gong et al., 2012]是最为代表性的一个。GFK是在2011年发表在ICCV上的SGF方法[Gopalan et al., 2011]发展起来的。我们首先介绍SGF方法。
SGF 方法从增量学习中得到启发:人类从一个点想到达另一个点,需要从这个点一步一步走到那一个点。那么,如果我们把源域和目标域都分别看成是高维空间中的两个点,由源域变换到目标域的过程不就完成了迁移学习吗?也就是说, 路是一步一步走出来的。
于是 SGF 就做了这个事情。它是怎么做的呢?把源域和目标域分别看成高维空间 (即Grassmann流形)中的两个点,在这两个点的测地线距离上取d个中间点,然后依次连接起来。这样,源域和目标域就构成了一条测地线的路径。我们只需要找到合适的每一步的变换,就能从源域变换到目标域了。图 29是 SGF 方法的示意图。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qNJLJ6qF-1623575828564)(media/103de3658cbb97ad4c24bafe28f9d957.jpg)]
SGF 方法的主要贡献在于:提出了这种变换的计算及实现了相应的算法。但是它有很明显的缺点:到底需要找几个中间点? SGF也没能给出答案,就是说这个参数d是没法估计的,没有一个好的方法。这个问题在 GFK 中被回答了。
GFK方法首先解决SGF的问题:如何确定中间点的个数d。它通过提出一种核学习的方法,利用路径上的无穷个点的积分,把这个问题解决了。这是第一个贡献。然后,它又解决了第二个问题:当有多个源域的时候,我们如何决定使用哪个源域跟目标域进行迁移? GFK通过提出Rank of Domain度量,度量出跟目标域最近的源域,来解决这个问题。图 30是 GFK 方法的示意图。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-F1FPdV1t-1623575828564)(media/e654d14df0b44ee4e8a0e505c654044b.jpg)]
用Ss和St分别表示源域和目标域经过主成分分析(PCA)之后的子空间,则G可以视为所有的d维子空间的集合。每一个d维的原始子空间都可以被看作G上的一个点。因此,在两点之间的测地线{$(t) :0 < t <1}可以在两个子空间之间构成一条路径。如果我 们令Ss = $(0),St =$(1),则寻找一条从$(0)到$(1)的测地线就等同于将原始的特征变换到一个无穷维度的空间中,最终减小域之间的漂移现象。这种方法可以被看作是一种从$(0)到$(1)的増量式“行走”方法。
特别地,流形空间中的特征可以被表示为 =$(t)T。变换后的特征i和j的内积定义了一个半正定 (positive semidefinite) 的测地线流式核
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NxzbBSbR-1623575828565)(media/1542823895008.png)]
GFK 方法详细的计算过程可以参考原始的文章,我们在这里不再赘述。
11.3.7 什么是finetune?
深度网络的finetune也许是最简单的深度网络迁移方法。,也叫微调、fine-tuning, 是深度学习中的一个重要概念。简而言之,finetune就是利用别人己经训练好的网络,针对自己的任务再进行调整。从这个意思上看,我们不难理解finetune是迁移学习的一部分。
在实际的应用中,我们通常不会针对一个新任务,就去从头开始训练一个神经网络。这样的操作显然是非常耗时的。尤其是,我们的训练数据不可能像ImageNet那么大,可以训练出泛化能力足够强的深度神经网络。即使有如此之多的训练数据,我们从头开始训练,其代价也是不可承受的。
那么怎么办呢?迁移学习告诉我们,利用之前己经训练好的模型,将它很好地迁移到自己的任务上即可。
因为别人训练好的模型,可能并不是完全适用于我们自己的任务。可能别人的训练数据和我们的数据之间不服从同一个分布;可能别人的网络能做比我们的任务更多的事情;可能别人的网络比较复杂,我们的任务比较简单。
举一个例子来说,假如我们想训练一个猫狗图像二分类的神经网络,那么很有参考价值的就是在 CIFAR-100 上训练好的神经网络。但是 CIFAR-100 有 100 个类别,我们只需要 2个类别。此时,就需要针对我们自己的任务,固定原始网络的相关层,修改网络的输出层以使结果更符合我们的需要。
图36展示了一个简单的finetune过程。从图中我们可以看到,我们采用的预训练好的网络非常复杂,如果直接拿来从头开始训练,则时间成本会非常高昂。我们可以将此网络进行改造,固定前面若干层的参数,只针对我们的任务,微调后面若干层。这样,网络训练速度会极大地加快,而且对提高我们任务的表现也具有很大的促进作用。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5DRpYUaw-1623575828566)(media/b1630ca5d004d4b430672c8b8ce7fb90.jpg)]
Finetune 的优势是显然的,包括:
- 不需要针对新任务从头开始训练网络,节省了时间成本;
- 预训练好的模型通常都是在大数据集上进行的,无形中扩充了我们的训练数据,使得模型更鲁棒、泛化能力更好;
- Finetune 实现简单,使得我们只关注自己的任务即可。
在实际应用中,通常几乎没有人会针对自己的新任务从头开始训练一个神经网络。Fine-tune 是一个理想的选择。
Finetune 并不只是针对深度神经网络有促进作用,对传统的非深度学习也有很好的效果。例如, finetune对传统的人工提取特征方法就进行了很好的替代。我们可以使用深度网络对原始数据进行训练,依赖网络提取出更丰富更有表现力的特征。然后,将这些特征作为传统机器学习方法的输入。这样的好处是显然的: 既避免了繁复的手工特征提取,又能自动地提取出更有表现力的特征。
比如,图像领域的研究,一直是以 SIFT、SURF 等传统特征为依据的,直到 2014 年,伯克利的研究人员提出了 DeCAF特征提取方法[Donahue et al.,2014],直接使用深度卷积神经网络进行特征提取。实验结果表明,该特征提取方法对比传统的图像特征,在精度上有着无可匹敌的优势。另外,也有研究人员用卷积神经网络提取的特征作为SVM分类器的输 入[Razavian et al.,014],显著提升了图像分类的精度。
11.3.8 finetune为什么有效?
随着 AlexNet [Krizhevsky et al., 2012] 在 2012 年的 ImageNet大赛上获得冠军,深度学习开始在机器学习的研究和应用领域大放异彩。尽管取得了很好的结果,但是神经网络本身就像一个黑箱子,看得见,摸不着,解释性不好。由于神经网络具有良好的层次结构很自然地就有人开始关注,能否通过这些层次结构来很好地解释网络?于是,有了我们熟知的例子:假设一个网络要识别一只猫,那么一开始它只能检测到一些边边角角的东西,和猫根本没有关系;然后可能会检测到一些线条和圆形;慢慢地,可以检测到有猫的区域;接着是猫腿、猫脸等等。图 32是一个简单的示例。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GONG85u2-1623575828567)(media/1542824195602.png)]
这表达了一个什么事实呢?概括来说就是:前面几层都学习到的是通用的特征(general feature);随着网络层次的加深,后面的网络更偏重于学习任务特定的特征(specific feature)。 这非常好理解,我们也都很好接受。那么问题来了:如何得知哪些层能够学习到 general feature,哪些层能够学习到specific feature。更进一步:如果应用于迁移学习,如何决定该迁移哪些层、固定哪些层?
这个问题对于理解神经网络以及深度迁移学习都有着非常重要的意义。
来自康奈尔大学的 Jason Yosinski 等人 [Yosinski et al., 2014]率先进行了深度神经网络可迁移性的研究,将成果发表在2014年机器学习领域顶级会议NIPS上并做了口头汇报。该论文是一篇实验性质的文章(通篇没有一个公式)。其目的就是要探究上面我们提到的几个关键性问题。因此,文章的全部贡献都来自于实验及其结果。(别说为啥做实验也能发文章:都是高考,我只上了个普通一本,我高中同学就上了清华)
在ImageNet的1000类上,作者把1000类分成两份(A和B),每份500个类别。然后,分别对A和B基于Caffe训练了一个AlexNet网络。一个AlexNet网络一共有8层, 除去第8层是类别相关的网络无法迁移以外,作者在 1 到 7这 7层上逐层进行 finetune 实验,探索网络的可迁移性。
为了更好地说明 finetune 的结果,作者提出了有趣的概念: AnB 和 BnB。
迁移A网络的前n层到B (AnB) vs固定B网络的前n层(BnB)
简单说一下什么叫AnB:(所有实验都是针对数据B来说的)将A网络的前n层拿来并将它frozen,剩下的8 - n层随机初始化,然后对B进行分类。
相应地,有BnB:把训练好的B网络的前n层拿来并将它frozen,剩下的8 - n层随机初始化,然后对 B 进行分类。
实验结果如下图(图33) 所示:
这个图说明了什么呢?我们先看蓝色的BnB和BnB+(就是BnB加上finetune)。对 BnB而言,原训练好的 B 模型的前 3 层直接拿来就可以用而不会对模型精度有什么损失到了第4 和第5 层,精度略有下降,不过还是可以接受。然而到了第6 第第7层,精度居然奇迹般地回升了!这是为什么?原因如下:对于一开始精度下降的第4 第 5 层来说,确
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IpxJW69y-1623575828568)(media/1542824318155.png)]
实是到了这一步,feature变得越来越specific,所以下降了。那对于第6第7层为什么精度又不变了?那是因为,整个网络就8层,我们固定了第6第7层,这个网络还能学什么呢?所以很自然地,精度和原来的 B 网络几乎一致!
对 BnB+ 来说,结果基本上都保持不变。说明 finetune 对模型结果有着很好的促进作用!
我们重点关注AnB和AnB+。对AnB来说,直接将A网络的前3层迁移到B,貌似不会有什么影响,再一次说明,网络的前3层学到的几乎都是general feature!往后,到了第4第5层的时候,精度开始下降,我们直接说:一定是feature不general 了!然而,到了第6第7层,精度出现了小小的提升后又下降,这又