迁移学习作为机器学习的一个分支,一直比较好奇,接着这篇文章对迁移学习做一个简单的了解(本篇只涉及外围,没有太多细节)。文章围绕以下主题产生:
1.迁移学习概要
2.迁移学习的分类
3.迁移学习的应用场景?
一、迁移学习概要
迁移学习(Transfer Learning)的基本思想是利用已解决问题的策略去解决待解决的问题(hhh有点绕~),也就是把现有的经验迁移过去。目前是作为机器学习下的一个分支,大多使用神经网络的方法,以训练模型为主了,通常就是那一套模型的参数去做另一套的初始值减少模型训练的复杂度。
但迁移学习提出的初衷不是为了模型训练,而是节省人工标注样本的时间,让模型可以通过已有的标记数据(source domain data)向未标记数据(target domain data)迁移,这样可以减低机器学习对 数据集样本量的需求
有两个概念,已有的知识叫做源域(source domain),要学习的知识叫做目标域(target domain),迁移学习就是建立源域到目标域的映射关系、
二、迁移学习的分类
按照学习方式可以分为四类:
基于样本:对不同的样本给予不同的权重,样本越相似,权重越高。高权重样本优先级更高,完成迁移。
基于特征:将目标域和源域映射到同一空间,最小化二者对应点的距离,完成迁移
基于模型:把模型和样本结合起来,通过调整模型参数完成迁移
基于关系:发掘相似场景的关系,两组中如果有一组源域和目标域的关系可确定,可以迁移到另一组上
这四类更多的是思想上的分类,不是很具体,具体的使用方法有两种:
1.微调(Finetune):将别人训练好的网络模型修改后用于自己的。用预训练的网络权值代替随机初始化权值
2.混合特征提取(Fixed Feature Extractor):将预训练网络作为新任务特征提取,也就是新模型的前几层用预训练网络做替换
参考:迁移学习简介与分类 - 知乎 (zhihu.com)
三、迁移学习的应用场景?
迁移学习没有具体的行业场景,满足条件就可以使用。这里的条件就是源域和目标域要达到一定的相似度,并且如果有两个任务A和B的话,希望用A迁移到B,那么A需要有海量的数据资源来训练好,才能给B提供保障。
目前为止,迁移学习应用到了其他领域,比如迁移学习+联邦学习=联邦迁移学习,迁移学习+强化学习=强化迁移学习,但具体的细节暂时还没有了解啦。
经典文献:A Survey on Transfer Learning
迁移学习学习资料:https://github.com/jindongwang/transferlearning
因作者水平有限,如有错误之处,请在下方评论区指正,谢谢!