定义:
将一个场景中学习到的知识迁移到另一个场景中应用。
迁移学习顾名思义就是把已经训练好的模型的参数迁移到新的模型来帮助新模型的训练。考虑到大部分的数据或任务是存在相关性的,所以通过迁移学习我们可以将已经学习到的模型参数,通过某种方式来分享给新的模型,从而加快优化模型的学习效率不用像大多数模型那样从零开始。
例子:
为什么需要迁移学习?
- 使用深度学习技术解决问题的过程中,最常见的障碍在于,因为模型有大量的参数需要训练,因此需要海量训练数据作支撑。
- 在面对某一领域的具体问题时,通常可能无法得到构建模型所需规模的数据。
- 借助迁移学习,在一个模型训练任务中针对某种类型数据获得的关系也可以轻松地应用于同一领域的不同问题。
迁移学习总览:
1、Model Fine-tuning(模型微调)
防止fine-tune过拟合的方式
- 保守训练:如果fine-tune参数变化很大,可能过拟合。
- 层迁移
拷贝的层参数不变。学习率设为0
2、Multitask(多任务学习)
希望训练完成后,在原来任务和目标任务上的分类效果都很好,fine-tune只要求在目标任务上效果好就可以。
- 两种方法:
一是图左:不同任务之间共享相同的参数(common parameter),二是图右:挖掘不同任务之间隐藏的共有数据特征(latent feature)。
3、域对抗学习
适用于原任务为有标签学习,目标任务为无监督学习。
例如:
迁移学习分类困难
4、零样本学习
只有猫狗数据集,从来没有过羊驼的数据集怎么识别。
利用属性作为分类类别。最后根据足够多的属性来查表(比如百度百科)判断是羊驼
- 1)属性分类
但是考虑到最后的属性向量是稀疏向量,我们考虑用神经网络将稀疏向量映射为稠密向量。
- 相近词向量映射