Hi,大家好,我是半亩花海。迁移学习是一种利用源任务知识提升目标任务性能的机器学习方法。主要分类方式包括:1)按目标域标签分为监督、半监督和无监督迁移学习;2)按学习方法分为基于实例、特征、模型和关系的迁移;3)按特征属性分为同构和异构迁移;4)按学习形式分为离线和在线迁移。迁移学习在数据不足、跨领域等问题上具有广泛应用,是当前研究热点。Transfer learning的主要学习来源于中科院计算所博士王晋东所著《迁移学习简明手册》一书,相关资料详见附录。
目录
(一)基于实例的迁移学习 (Instance-based Transfer Learning)
(二)基于特征的迁移学习 (Feature-based Transfer Learning)
(三)基于模型的迁移学习 (Model-based Transfer Learning)
(四)基于关系的迁移学习 (Relation-based Transfer Learning)
迁移学习 (Transfer Learning) 是一种机器学习方法,旨在利用从源任务 (Source Task) 学到的知识来提升目标任务 (Target Task) 的性能。从任务和领域的关系的角度来看,迁移学习可以包含终身学习 (Life-long learning)、多任务学习 (Multi-task learning) 以及域适配 (Domain adaptation),其中域适配是迁移学习的一个子类 。
依据目前较流行的机器学习分类方法,机器学习主要可以分为有监督、半监督和无监督机器学习三大类。同理,迁移学习也可以进行这样的分类。需要注意的是,依据的分类准则不同,分类结果也不同。针对目前较流行的方法,对迁移学习的常用分类方法进行一个大致的总结。大体上讲,迁移学习的分类可以按照四个准则进行:按目标域有无标签分、按学习方法分、按特征分、按离线与在线形式分类 [1]。不同的分类方式对应着不同的专业名词。当然,即使是一个分类下的研究领域,也可能同时处于另一个分类下。下面我们对这些分类方法及相应的领域作简单描述。
图1:迁移学习的研究领域与研究方法分类
一、按目标域标签分类
这种分类方式最为直观。类比机器学习,按照目标领域有无标签,迁移学习可以分为以下三个大类:
- 监督迁移学习 (Supervised Transfer Learning)
- 半监督迁移学习 (Semi-Supervised Transfer Learning)
- 无监督迁移学习 (Unsupervised Transfer Learning)
显然,少标签或无标签的问题(半监督和无监督迁移学习),是研究的热点和难点。这也是迁移学习重点关注的领域。
二、按学习方法分类
按学习方法的分类形式,最早在迁移学习领域的权威综述文章 [2] 给出定义。它将迁移学习方法分为以下四个大类:基于实例的迁移、基于特征的迁移、基于模型的迁移和基于关系的迁移。
(一)基于实例的迁移学习 (Instance-based Transfer Learning)
源域和目标域的数据分布不同,但通过对源域中的不同的实例赋予不同权重,使源域数据在目标域任务中仍然有效。
典型方法:
- 实例重加权 (Instance Re-weighting):为源域样本赋予不同权重,使其更接近目标域分布。
- TrAdaBoost:结合Boosting方法,动态调整样本权重,减少负迁移 (Negative Transfer) 的影响。
实例:假设你想建立一个模型来预测某家新咖啡馆(目标域)的销售额,但这家咖啡馆刚开业,历史数据很少。你可以利用其他成熟咖啡馆(源域)的历史销售数据。但不是所有咖啡馆的数据都同样有用,比如地理位置、规模、装修风格相似的咖啡馆的数据应该被赋予更高的权重,而差异很大的则权重较低。通过加权组合这些“有用”的样本,来训练目标咖啡馆的预测模型。
(二)基于特征的迁移学习 (Feature-based Transfer Learning)
通过特征变换/学习一个共享的特征表示,使得源域和目标域在特征空间上分布相似(减少特征差距或对齐特征空间),从而减少分布差异。
典型方法:
- 最大均值差异 (MMD):最小化源域和目标域在再生核希尔伯特空间 (RKHS) 中的均值差异1。
- 对抗训练 (Adversarial Training):如DANN (Domain Adversarial Neural Network),通过对抗学习使特征提取器生成域不变的特征。
- 自编码器 (Autoencoder):通过无监督学习提取通用特征,再微调用于目标任务。
实例:设想一个任务,用摄像头在白天(源域)拍摄的大量图片训练了一个识别汽车的模型。现在需要在夜间(目标域)使用这个模型,但夜间图片的像素值分布(如亮度、对比度)与白天截然不同。基于特征的迁移方法会尝试学习一个特征提取器,将白天和夜间的图片都映射到一个“光照不变”的特征空间。在这个空间里,同一辆汽车无论白天还是黑夜,其特征表示都很接近,从而可以用白天的数据训练的分类器来识别夜间的汽车。
(三)基于模型的迁移学习 (Model-based Transfer Learning)
直接利用源任务上训练好的模型参数或结构,通过微调等方式将其知识迁移到目标任务上,即源任务和目标任务可以共享模型的参数或结构(如神经网络)。一般是使用大型预训练模型,冻结模型的前几层以保留通用特征提取能力(如边缘、纹理),只对最后几层进行微调以适应目标任务。
典型方法:
- 预训练-微调 (Pre-training + Fine-tuning):如使用ImageNet预训练的ResNet,在医学影像任务上微调。
- 参数共享 (Parameter Sharing):如Multi-task Learning,多个任务共享部分网络层。
- 适配器 (Adapter):如MAD-X框架,通过插入轻量级适配器模块(如LPKA)实现跨语言、跨任务的迁移。
实例:首先你可以下载一个在ImageNet(包含数百万张通用图片)上预训练好的ResNet50模型。如果你想创建一个专门识别不同品种狗的模型,但你的狗品种图片数据集相对较小,你可以加载这个预训练的ResNet50模型,保留其卷积层(这些层学习到了通用的边缘、纹理、形状等特征),然后替换最后的全连接层,并用你的狗品种数据集对其进行微调。这样,模型就能快速有效地学习区分狗的品种,而无需从零开始训练。
(四)基于关系的迁移学习 (Relation-based Transfer Learning)
源域和目标域的数据结构相似/可能不同(如社交网络、知识图谱),但它们的关联模式相似,所以迁移的是关系逻辑(实体之间的依赖关系或排序关系)。
典型方法:
- 图嵌入迁移 (Graph Embedding Transfer):如动态图神经网络 (Dynamic GNN),用于跨域节点分类或链接预测。
- 贝叶斯迁移学习 (Bayesian Transfer Learning):利用概率图模型迁移关系结构。
实例:假设在源领域(如电影评论),你有一个模型可以判断两句话的情感倾向是相似还是相反(关系)。现在,在目标领域(如餐厅评论),你也想判断评论的情感关系,但缺乏标注数据。基于关系的迁移学习可以尝试将源领域中学到的关于“情感对立”或“情感相似”的关系模式(例如,某些转折词或对比结构的使用)迁移到餐厅评论的分析中,帮助建立新的关系判断模型。再比如,老师上课、学生听课就可以类比为公司开会的场景,这个也是一种关系的迁移。
三、按特征分类
按照特征的属性进行分类,也是一种常用的分类方法。这在2016年的《Journal of Big data》期刊中迁移学习综述 [3] 中给出。按照特征属性,迁移学习可以分为两个大类:
- 同构迁移学习 (Homogeneous Transfer Learning)
- 异构迁移学习 (Heterogeneous Transfer Learning)
这也是一种很直观的方式:如果特征语义和维度都相同,那么就是同构;反之,如果特征完全不相同,那么就是异构。举个例子来说,不同图片的迁移,就可以认为是同构;而图片到文本的迁移,则是异构的。
四、按离线与在线形式分类
按照离线学习与在线学习的方式,迁移学习还可以被分为:
- 离线迁移学习 (Offline Transfer Learning)
- 在线迁移学习 (Online Transfer Learning)
目前,绝大多数的迁移学习方法,都采用了离线方式,即源域和目标域均是给定的,迁移一次即可。这种方式的缺点是显而易见的:算法无法对新加入的数据进行学习,模型也无法得到更新。与之相对的是在线的方式,即随着数据的动态加入,迁移学习算法也可以不断地更新。
附录
- 王晋东个人网站 Jindong Wang
- 王晋东迁移学习Github资源网址 https://github.com/jindongwang/transferlearning
- 王晋东《迁移学习简明手册》(PDF版) https://www.labxing.com/files/lab_publications/615-1533737180-LiEa0mQe.pdf#page=82&zoom=100,120,392
- 《迁移学习简明手册》发布啦! https://zhuanlan.zhihu.com/p/35352154
- 简明手册重磅更新:《迁移学习导论》成书上市啦! https://zhuanlan.zhihu.com/p/374927278
参考文献
[1] Jindong Wang et al. Transfer Learning Tutorial. 2018.
[2] Pan S J, Yang Q. A survey on transfer learning[J]. IEEE Transactions on knowledge and data engineering, 2009, 22(10): 1345-1359.
[3] Weiss K, Khoshgoftaar T M, Wang D D. A survey of transfer learning[J]. Journal of Big data, 2016, 3(1): 9.