一,迁移学习是什么?
别处学得的知识,迁移到新场景的能力,就是“迁移学习”。具体在实践中体现为:将 A任务上 预训练好的模型 放在B任务上,加上少量B任务训练数据,进行微调 。
二,与传统学习的比较
传统学习中,我们会给不同任务均提供足够的数据,以分别训练出不同的模型:
但是如果 新任务 和旧任务类似,同时 新任务 缺乏足够数据 去从头训练一个新模型,那该怎么办呢?
迁移学习所做的事,就是将旧任务上训练好的模型拿过来放在新任务上,再加上点少量数据稍微调一调,效果往往并不输海量数据下的从头训练:
这是因为A任务和B任务很多共同特征:
迁移学习试图把处理A任务获取的知识,应用于B任务中。此时因为B任务中的大部分特征已经被A任务中预训练好的模型学得了,相当于提前完成了B任务中大部分的活儿,那么B任务自然只需再提供少量数据,即可炼得新模型。
三,迁移学习的必要性和价值体现在:
-
1. 复用现有知识域数据,已有的大量工作不至于完全丢弃;
-
2. 不需要再去花费巨大代价去重新采集和标定庞大的新数据集,也有可能数据根本无法获取;
-
3. 对于快速出现的新领域,能够快速迁移和应用,体现时效性优势;
四,影响
2016年的 NIPS 会议上,吴恩达 给出了一个未来 AI方向的技术发展图,还是很客观的。
迁移学习被视为未来的几个重要研究领域之一, 毋庸置疑,监督学习是目前成熟度最高的,可以说已经成功商用,而下一个商用的技术 将会是 迁移学习(Transfer Learning),这也是 Andrew 预测未来五年最有可能走向商用的 AI技术。:
目前,大部分的模型训练都是 迁移学习 ,已经很少有人从头开始新训练一个模型了。比如基于深度网络的Detection算法,都是在用ImageNet训好的basemodel上,再用COCO或者自己的数据集fine-tune个20epoch足以。
五,迁移学习四种实现方法
5.1. 样本迁移 Instance-based Transfer Learning
一般是对样本进行加权,给比较重要的样本较大的权重。 样本迁移即在数据集(源领域)中找到与目标领域相似的数据,把这个数据放大多倍,与目标领域的数据进行匹配。其特点是:需要对不同例子加权;需要用数据进行训练。
5.2. 特征迁移 Feature-based Transfer Learning
在特征空间进行迁移,一般需要把源领域和目标领域的特征投影到同一个特征空间里进行。特征迁移是通过观察源领域图像与目标域图像之间的共同特征,然后利用观察所得的共同特征在不同层级的特征间进行自动迁移。
5.3. 模型迁移 Model-based Transfer Learning
整个模型应用到目标领域去,比如目前常用的对预训练好的深度网络做微调,也可以叫做参数迁移。模型迁移利用上千万的图象训练一个图象识别的系统,当我们遇到一个新的图象领域,就不用再去找几千万个图象来训练了,可以原来的图像识别系统迁移到新的领域,所以在新的领域只用几万张图片同样能够获取相同的效果。模型迁移的一个好处是可以和深度学习结合起来,我们可以区分不同层次可迁移的度,相似度比较高的那些层次他们被迁移的可能性就大一些。
5.4. 关系迁移 Relational Transfer Learning
社会网络,社交网络之间的迁移。
六,参考文章:
- https://blog.youkuaiyun.com/jiandanjinxin/article/details/54133521
- https://blog.youkuaiyun.com/JNingWei/article/details/79247546