迁移学习:给定一个有标记的源域和一个无标记的目标域。这两个领域的数据分布不同。迁移学习的目的就是要借助源域的知识,来学习目标域的知识(标签)。或是指基于源域数据和目标域数据、源任务和目标任务之间的相似性,利用在源领域中学习到的知识,去解决目标领域任务的一种机器学习方法。
Transfer learning的优势在于节省人工标注样本的时间,让模型可以通过已有的标记数据(source domain data)向未标记数据(target domain data)迁移。从而训练出适用于target domain的模型,适合于样本不足的情况。在样本不足的情况下,使用迁移学习,可以将这些通用特征学习从其他已经训练好的网络中迁移过来,从而节省训练时间,并且得到较好的识别结果。
一.基本概念
1.领域:进行学习的主题。由数据和生成这些数据的概率分布组成。
领域是由两个基本领域组成:源领域和目标领域。
源领域:有知识、有大量数据标注的领域,是我们要迁移的对象
目标领域:是最终要赋予知识、赋予标注的对象
迁移就是从源领域向目标领域进行知识映射
2.任务:学习目标。由标签和标签对应的函数组成。
二.分类
迁移学习按学习方法分类,可以分为四个大类:基于样本的迁移学习方法、基于特征的迁移学习方法、基于模型的迁移学习方法、基于关系的迁移学习方法。
基于样本的迁移学习方法:基于实例的迁移学习方法适用于源域和目标域相似度较高的情况。主要思想是:通过改变样本的存在形式来减少源域和目标域的差异。
基于特征的迁移学习:基于特征的迁移学习算法可应用在域间相似度不太高的甚至不相似的情况。主要思想是:通过特征变换将源于和目标域在某个特征空间下表现出相似的性质。
基于参数的迁移学习:基于参数的迁移学习方法从模型的角度出发,共享源域模型与目标域模型之间的某些参数达到迁移学习的效果。
这个主要就是在神经网络里面用的特别多,因为神经网络的结构可以直接进行迁移。比如说神经网络最经典的finetune就是模型参数迁移的很好的体现。
Finetune,也叫微调、finetuning,是深度学习中的一个重要概念。简而言之,finetune就是利用别人已经训练好的网络,针对自己的任务再进行调整。
Finetune的优势:不需要针对新任务从头开始训练网络,节省了时间成本;预训练好的模型通常都是在大数据集上进行的,无形中扩充了我们的训练数据,使得模型更鲁棒、泛化能力更好;Finetune实现简单,使得我们只关注自己的任务即可。在实际应用中,通常几乎没有人会针对自己的新任务从头开始训练一个神经网络。Finetune是一个理想的选择。
基于关系的迁移学习:基于关系的迁移学习是通过将两个域之间的相关性知识建立一个映射来达到迁移学习的效果。
推荐资源:https://github.com/jindongwang/transferlearning