迁移学习(Transfer Learning)概述

迁移学习

迁移学习是一种机器学习的方法,指的是把为任务 A 开发的模型作为初始点,重新使用在为任务 B 开发模型的过程中。

背景

深度学习中在计算机视觉任务和自然语言处理任务中将预训练的模型作为新模型的起点是一种常用的方法,通常这些预训练的模型在开发神经网络的时候已经消耗了巨大的时间资源和计算资源,迁移学习可以将已习得的强大技能迁移到相关的的问题上。

迁移学习(Transfer Learning)概述_第1张图片

方法

开发模型的方法

  1. 选择源任务。你必须选择一个具有丰富数据的相关的预测建模问题,原任务和目标任务的输入数据、输出数据以及从输入数据和输出数据之间的映射中学到的概念之间有某种关系。
  2. 开发源模型。然后,你必须为第一个任务开发一个精巧的模型。这个模型一定要比普通的模型更好,以保证一些特征学习可以被执行。
  3. 重用模型。然后,适用于源任务的模型可以被作为目标任务的学习起点。这可能将会涉及到全部或者部分使用第一个模型,这依赖于所用的建模技术。
  4. 调整模型。模型可以在目标数据集中的输入-输出对上选择性地进行微调,以让它适应目标任务。

预训练模型方法

  1. 选择源模型。一个预训练的源模型是从可用模型中挑选出来的。很多研究机构都发布了基于超大数据集的模型,这些都可以作为源模型的备选者。

  2. 重用模型。选择的预训练模型可以作为用于第二个任务的模型的学习起点。这可能涉及到全部或者部分使用与训练模型,取决于所用的模型训练技术。

  3. 调整模型。模型可以在目标数据集中的输入-输出对上选择性地进行微调,以让它适应目标任务。

    第二种类型的迁移学习在深度学习领域比较常用。

迁移基本步骤

  1. 数据的准备
  2. 选择数据增广的方式
  3. 选择合适的模型
  4. 更换最后一层全连接
  5. 冻结层,开始训练
  6. 选择预测结果最好的模型保存

迁移学习的几种研究方法

基于实例的迁移

基于实例的迁移学习研究的是,如何从源领域中挑选出,对目标领域的训练有用的实例,比如对源领域的有标记数据实例进行有效的权重分配,让源域实例分布接近目标域的实例分布,从而在目标领域中建立一个分类精度较高的、可靠地学习模型。

基于特征的迁移

基于特征选择的迁移学习算法,关注的是如何找出源领域与目标领域之间共同的特征表示,然后利用这些特征进行知识迁移。

基于共享参数的迁移

基于共享参数的迁移研究的是如何找到源数据和目标数据的空间模型之间的共同参数或者先验分布,从而可以通过进一步处理,达到知识迁移的目的,假设前提是,学习任务中的的每个相关模型会共享一些相同的参数或者先验分布。

Pre-training+Fine-tuning

深度学习需要大量的高质量标注数据,Pre-training + fine-tuning 是现在深度学习中一个非常流行的trick,尤其是以图像领域为代表,很多时候会选择预训练的ImageNet对模型进行初始化。

DANN (Domain-Adversarial Neural Network)

Alt
图中所展示的即为DANN的结构图,框架由feature extractorlabel predictordomain classifier三个部分组成,并且在feature extractordomain classifier之间有一个gradient reversal layer;其中domain classifier只在训练过程中发挥作用

  • DANN将领域适配和特征学习整合到一个训练过程中,将领域适配嵌入在特征表示的学习过程中;所以模型最后的分类决策是基于既有区分力又对领域变换具有不变性的特征。
  • 优化特征映射参数的目的是为了最小化label classifier的损失函数,最大化domain classifier的损失函数,前者是为了提取出具有区分能力的特征,后者是为了提取出具有领域不变性的特征,最终优化得到的特征兼具两种性质

优势

迁移学习相对于其他机器学习方法,有以下一些优势:

  1. 迁移学习源模型的初始性能更高
  2. 迁移学习源模型提升的速率要更高
  3. 迁移学习模型的收敛性要更好
  4. 即使从不是特别相似的任务中进行迁移也比使用随机filters要好
    迁移学习(Transfer Learning)概述_第2张图片

参考文献

  • How transferable are features in deep neural networks(NIPS2014 Bengio et al.)
  • Learning and Transferring Mid-Level Image Representations using Convolutional Neural Networks(CVPR2014 Oquab.et al.)
  • Domain Adaptation for Large-Scale Sentiment Classification: A Deep Learning Approach(ICML2011 Glorot. Bengio.et al.)
  • Marginalized denoising autoencoders for domain adaptation (ICML2012 Chen et al.)
  • Domain-Adversarial Training of Neural Networks(JMLR2016 Ganin.et al.)

你可能感兴趣的:(机器学习,迁移学习,机器学习,人工智能)