迁移学习

迁移学习的艺术

Posted by john on July 12, 2018

机器学习和深度学习的比较

  • 数据依赖性: 随着数据规模的增大的,深度学习的效果会逐渐好于传统机器学习。
  • 硬件依赖性: 深度学习算法本质上是做大量的矩阵乘法操作。
  • 特征工程: 传统机器学习需要专家或者手工设计特征。
  • 解决问题的方法: 深度学习可以设计成端到端的网络结构,例如目标检测的yolo。
  • 执行时间: 深度学习需要很少的时间去训练。
  • 可解释性: 传统机器学习的可解释性更强。

目前深度学习的应用场景:

  • 计算机视觉
  • 信息检索
  • 市场营销
  • 医疗诊断
  • 自然语言处理
  • 在线广告

什么是迁移学习

迁移学习就是把已经训练好的模型参数迁移到新的模型来帮助新模型训练。考虑到大部分数据或任务是存在相关性的,所以通过迁移学习可以将已经学到的模型参数通过某种方式分享给新模型,从而加快并优化模型的学习效率,而不需要从零开始学习。

微调模型的方式

  1. 特征提取(Feature extraction)-我们可以把一个预训练的模型当做一个特征提取机器。我们要做的就是移除最后一层,然后使用全部的网络作为新数据集固定的特征提取器。
  2. 使用预训练模型的框架-使用模型的框架,重新随机初始化权重,并根据数据集重新训练模型。
  3. 训练一些层冻结其他的-另外一种使用预训练模型的方式就是部分训练。保持模型初始层的权重不变,然后对高层重新训练。

下图的框图展示了在你的任务如何去使用预训练模型。

transfer-learning