前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >迁移学习新视角

迁移学习新视角

作者头像
McGL
发布2020-10-30 09:50:51
3800
发布2020-10-30 09:50:51
举报
文章被收录于专栏:PyVisionPyVision

结构化思考迁移学习的不同方法。

作者:Sebastian Schaal 编译:McGL

在“结构化机器学习概念”专栏中,我试图从机器学习领域中提取概念,并将它们转换成新的、可能不同寻常的框架,以提供新颖的观点。这些内容是为数据科学界人士,以及对机器学习领域感兴趣的爱好者而设计的。

引言

写这篇文章的原因是迁移学习(Transfer Learning)现在的流行,并且向多个方向发展。它有各种性质和特点,但方法论缺乏更高层次的框架。让我们详细说明一下。

框架: 迁移学习的八条路径

迁移学习可能已经成为深度学习领域最重要的发展之一,使其适用于现实世界的应用。很多人可能还记得“ ImageNet 时刻” ,当时 AlexNet 碾压式的赢得 ImageNet 竞赛冠军,使神经网络成为计算机视觉挑战的标准。然而,有一个问题——你需要大量的数据来完成这项工作,而你往往没有这么多数据。

解决这个问题的方法是引入迁移学习。我们可以用一个预先在 ImageNet 上训练过的卷积神经网络,冻结前面的层,只在一个较小的数据集上重新训练它的头部,这使得 CNN 开始被行业大规模采用。

2018年,自然语言处理(NLP)终于迎来了“ ImageNet 时刻”。我们第一次从重复使用静态词嵌入转向共享完整的语言模型,这些模型在捕获一系列语言信息方面表现出了显著的能力。在这一发展过程中,Sebastian Ruder 发表了他的论文《 Neural Transfer Learning for NLP 》 ,该论文画了迁移学习四个不同概念的树状分解图。

映射维度

这让我思考: 观察一个或两个数据集来学习一个或多个任务的不同方法是什么。这些是我能想到的维度:

  • 任务(Task): 我们是试图在预训练和微调阶段教会我们的网络相同的任务,还是我们利用第一个任务的知识来完成第二个任务?(例如,预训练一个“动物分类器”和微调模型作为“狗的品种分类器” vs. 使用“动物分类”网络的骨干来训练一个“毛茸茸的耳朵目标检测器”)
  • 领域(Domain): 我们的数据集来自同一领域吗?(例如,两个数据集都是“在野外”拍摄的彩色图像 vs. 其中一个是灰度的 X 光图像)
  • 顺序(Order):我们是同时学习还是一个接一个的学习?(例如,我们联合计算所有任务的损失,并用它来进行训练,vs. 完成第一次训练,移植网络的权重,然后开始第二次训练)

我还考虑过添加“ 重要性” ,以便能够包括辅助任务,但是想想还是不要让事情变得太复杂。因此,我最终得到了类似于 Ruder 用于 NLP 的维度。让我们把由三个二值维度产生的所有八种组合都绘制出来。

轻量级定义

注意:这些术语是我自己想出来的,并没有广泛的文献支持。

  • 任务微调(Task Fine-Tuning): 我们预训练一个模型,然后用相同的任务将它微调到同一领域的另一个数据集(例如,使用预先训练的 ImageNet 分类模型,然后将它微调到一个犬种分类器)。
  • 领域适应(Domain Adaptation): 任务相同,但是将我们的模型转移到一个新的领域,这个领域是由另一个数据集提供的(例如,使用一个预训练的 ImageNet 分类模型,并根据 X 光数据微调它来对健康的人和病人进行分类)。
  • 任务适应(Task Adaptation): 利用预训练的模型的知识(例如,它的中间输出作为embeddings)来训练它完成不同的任务(例如,使用 ImageNet 分类模型的骨干作为特征提取器,并添加第二个网络来执行目标检测)。
  • 模态迁移(Modality Transfer): 即使领域和任务不同,使用在自然图像上预训练过的网络也是有意义的。至少,该网络已经能够辨认这种模式(例如,使用 ImageNet 分类模型骨干来在乳腺癌 X 光上运行目标检测)
  • 数据集合并(Dataset Merging): 如果你想在同一个任务上同时训练来自同一个域的两个数据集,可以随意合并它们(例如,将从 Instagram 上爬下来的图片添加到 ImageNet 数据集中来训练一个更好的分类器)。
  • 权重共享(Weight Sharing): 即使你同时训练两个问题,共享一些中间权重也是有意义的(例如,使用 OCR 生成的文本和 PDF 文档的原始图像输入得到一个联合的中间表示,对页面的内容以及它是否是一个新文档的开始进行分类)。
  • 多任务学习(Multi-Task Learning): 其中一个最流行的例子是特斯拉的大型视觉网络,其中一个共享的骨干同时接受多个任务的联合训练(例如,使用特斯拉相机的相同镜头画面并行运行目标检测和道路语义分割)。
  • 并行训练(Parallel Training): 最后,如果你有两个不同的问题(域和任务) ,并且你想同时训练它们,只需要并行地进行(例如,为同一个客户执行内容审核和电子邮件分类)。

扩展的2x2x2矩阵

使用维度 任务(Task) 领域(Domain) 顺序(Order),我们最终得到了这个2x2x2矩阵,映射出前面介绍的概念。为了2D 可视化,我在 x 轴上放置了两个维度,并将二值条目加倍,最终得到8个不同的单元格(例如,左上角的单元格将是相同的领域相同的任务序列顺序)。

总结

在这篇文章中,我们使用了任务、 领域和顺序 三个维度来结构化我们可以执行迁移学习的方式。我喜欢沉浸思考过去的咨询工作,把它们扩展到一个更大的矩阵中,让我可以在填补空白领域的同时思考全新的情景。这包括了一些相当明显的案例(例如“数据集合并”和“ 并行训练”) ,以及一些还没有常用名称的已知过程(例如“任务微调”)。

来源:https://towardsdatascience.com/new-perspectives-on-transfer-learning-285035f01589

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-10-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 PyVision 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 作者:Sebastian Schaal 编译:McGL
  • 引言
  • 框架: 迁移学习的八条路径
  • 映射维度
  • 轻量级定义
  • 扩展的2x2x2矩阵
  • 总结
相关产品与服务
图像识别
腾讯云图像识别基于深度学习等人工智能技术,提供车辆,物体及场景等检测和识别服务, 已上线产品子功能包含车辆识别,商品识别,宠物识别,文件封识别等,更多功能接口敬请期待。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档