专栏首页ATYUN订阅号迁移学习:如何在自然语言处理和计算机视觉中应用?

迁移学习:如何在自然语言处理和计算机视觉中应用?

在这篇文章中,我将讨论两个关于迁移学习的应用:NLP(自然语言处理)和CV(计算机视觉)。并且我会分别在这两个领域提供一个范例。

NLP 现在很多NLP管道都在使用词嵌入(word embedding)。与独热编码相比,这些单词的嵌入是一种更丰富的表示单词的方式。它们被广泛使用,并且存在着不同的变体。通常,这些变体在其起源的语料库中有所不同,例如维基百科、新闻文章等,以及嵌入的模型也有所不同。了解这些模型和语料库的背景知识是很重要的,从而可以了解是否使用词嵌入学习是明智的。人们通常不会使用“嵌入式”迁移学习,但我不同意,因为这与计算机视觉上的转移学习有相似之处。从本质上说,使用词嵌入意味着你在使用一个特征或者嵌入网络来将文字转换成信息载体。

在NLP中,有不同的方法来表示单词(在左边是一个词嵌入的表示,在右边是一个弓形的表示)。使用词嵌入机器学习模型可以利用存在于不同词汇之间的关系。

尽管word2vec已经4岁了,但它仍然是一个非常有影响力的词嵌入方法。最近的另一种方法,如FastText,已经使许多语言中可以使用词嵌入了。与词袋(bag-of-words:是个在自然语言处理和信息检索(IR)下被简化的表达模型。此模型下,像是句子或是文件这样的文字可以用一个袋子装着这些词的方式表现,这种表现方式不考虑文法以及词的顺序。)方法相比,从word2vec或FastText中获得的嵌入是一个重要的进步。然而,它们的有效性通常由问题的领域来决定。

想象一下,你正在为销售人员建立一个新闻推荐服务。销售人员想要接收那些可能对他们正在销售的产品感兴趣的公司的新闻。在新闻文章中使用的词汇一般是相当通用的,这意味着使用了大多数词嵌入所支持的词汇表(取决于它们所接受的语料库)。此外,如果你有销售人员收集的他们阅读了几周的新闻文章,那么你马上就会有一个很大的标记语料库。通过重用词嵌入,推荐引擎可能比简单的弓形模型表现要好得多。

另一方面,假设你必须在法律合同上执行主题分类。不只是任何形式的法律合同,而是在竞争法环境下的一种法国的法律合同。这些类型的数据集通常不被标记,或者只有一组有限的标记文档可用。下一节将描述为什么开箱即用(out of the box)的迁移学习会让你在这种情况下获得如此大的帮助:

  • 词汇表外的(OOV)单词是在训练中没有出现的单词。虽然word2vec和FastText都是在维基百科或其他语料库上经过训练的,但能使用的词汇量是有限的。在训练中,没有经常过出现的单词总是会被遗漏。这意味着,不支持在竞争法里的法律合同中特定领域的单词。当使用预先训练过的词嵌入时,通常会检查OOV单词并将它们替换为“未知单词令牌”(UNK token),并且所有这些单词都被赋予相同的向量。如果语料库是特定领域的,那么前面所说的内容就会变得无效的,因为领域特定的词通常具有很多意义。如果大部分的(带有含义的)单词被未知单词令牌所取代,那么这个模型将无法学到很多东西。
  • 一种替代标准的预先训练的词嵌入的方法是对一组无监督的文档的嵌入进行调整。注意,如果有大量的文档可用,那么这只是一个选项。这意味着如果你有一个关于竞争法的大型语料库,你就可以为特定领域的词汇训练词嵌入,从预先训练的词嵌入到另一个更普通的词。通常,开始接受预先训练的词嵌入将加速整个过程,并使训练你自己的词嵌入变得更容易。要注意的是,使用开箱即用的词嵌入的方法仍然更加困难,并且需要一些关于如何准备语料库的知识。

本文中提到的问题和解决方案是在处理有限数量的数据时创建鲁棒性的NLP系统和词嵌入的关键。

Gensim、Spacy和FastText是三个很棒的框架,可以让你快速地在机器学习应用中使用词嵌入。此外,它们还支持对自定义词嵌入的训练。

  • Gensim教程:https://radimrehurek.com/gensim/tut1.html
  • Spacy教程:https://spacy.io/usage/vectors-similarity#section-custom
  • FastText教程:https://github.com/facebookresearch/fastText#obtaining-word-vectors-for-out-of-vocabulary-words

在CV中的迁移学习 深度学习方法在计算机视觉方面取得了巨大的成功。你不需要手动定义问题特定的特征,例如,方向梯度直方图(HoG)特征、颜色特征等等,深度学习可以让从业者训练那些将原始图像作为输入的模型。

根据问题的类型,需要定义不同类型的HoG特征。这是一种可以用于计算机视觉的视觉特征。请注意与下面提到的卷积网络所提取的特征的相似性。

特征定义的最初复杂性现在已经转向定义网络的复杂性。虽然体系结构经常被重用,但是在构成网络体系结构中没有单一的策略。通常,深度学习技术已经被发明并应用于大型数据集(如ImageNet或MS Coco)的研究设置。为了提高这些大型数据集的性能,研究人员发现了网络架构的深度和复杂性。这些架构导致了数百万个参数(通常)不能扩展到小的图像数据集的模型。在不超过5000张图片的数据集上训练诸如ResNet或VGG net这样的架构,只会导致明显的过度拟合。最近的深度学习趋势已经取得了显著的进步,但似乎只有使用少量数据集的数据科学家被冷落了。

  • ImageNet数据集:http://www.image-net.org/
  • MS Coco数据集:http://cocodataset.org/#home

事实证明,深度学习网络可以学习分层的特征表示(请参阅下面链接中的文章)。这意味着较低层次的层可以学习较低层次的特征,例如边缘(edges),而较高层次的层则学习更高的层次,但是无法解释概念,例如形状(shapes)。当网络在不同的数据集上进行训练时,也会出现分层特征表示的思想,这表明它们可以在不同的问题领域中重用。

  • 文章:https://distill.pub/2017/feature-visualization/

能够区分图像中的边缘线条和形状(左)可以更容易地判断出什么是“汽车”。迁移学习允许你利用其他计算机视觉模型中的学习模式。

在计算机视觉问题上使用迁移学习时,使用两种方法。

  • 首先,如果有相当数量的图片(每个类有大于1000张图像)可用,你可以初始化一个新的模型,该模型的权重是在一个不同的数据集上训练的。在训练期间,你将保持许多固定层(通常是第一个卷积层),并优化高级层的参数。目标是减少需要优化的参数的数量,同时重用较低层次的层。无论问题的领域是什么,较低层次的层都很可能是相似的,并且针对问题模型必须自由地将更高层次的层组合在一起。
  • 其次,如果只有少量的图片可用(小于1000张),那么对现有模型进行再训练很可能在大多数情况下仍然会导致过度使用。需要优化的参数数量对于图像的数量来说太大了。无论如何,只要数据与大型数据集中的图像相似,就可以使用一个大型的预先训练过的网络(在大型数据集上进行训练)。更具体地说,你删除了大型网络的最后N个层(通常是N=1或N=2),并使用大型预先训练网络的输出作为图像的特征表示。这是基于预先训练的网络中的第一个层学习问题独立特征的假设。这些特征可以用于支持SVM(支持向量机)或逻辑回归,类似于传统的计算机视觉方法。然而,并不是必须手动定义这些特征,而是将预先训练的网络作为一个特征。

Keras的API允许你加载预先训练的网络,并在训练期间保持几个层的固定。在下一节中,我将再次讨论两个用例,分别是迁移学习是有用的,而另一个则是没有用的。

  • Keras的API:https://keras.io/visualization/

想象一下你在野生动物保护场所工作,你想要对出现在摄像机中的不同动物进行分类。特别是那些濒临灭绝的物种,你可能无法收集到大量的标记数据。考虑到预先训练的网络通常都是在广泛的概念领域进行训练(从食物,到动物和物体),使用预先训练的网络作为一个特征者,或者作为初始化者绝对是一种选择。

另一方面,想象一下你需要分析肿瘤专家的放射图像。这些图像不是典型的猫或狗这样的图像,因为它们是对病人进行扫描的输出。这些图像虽然被转换为RGB图像,但通常是在灰度图中显示扫描结果。尽管预先训练过的网络能够探测到RGB图像的形状和边缘,但它们很可能难以在X光图像上发现这些图像,因为这些图像不在预先训练的训练数据中。此外,在医学场景中,标记数据的数量通常很低。有几种技术可以利用(潜在的)未标记的数据,但是它们通常需要更多的工作。通常,这些技术试图通过迭代训练每一层来重构图像(使用卷积和解卷层)来预先训练分类网络的权重。这些技术和预先训练的网络的组合常常被用来提高收敛性。

上面提到的计算机视觉的两种方法都依赖于一个重要的假设:原始数据集中提取的模式在新数据集中是有用的。这种有效性很难量化,但它是一个重要的假设。地震、高光谱、甚至医学图像都与ImageNet中的图像相似。然而,理解计算机视觉问题领域是成功应用计算机视觉的关键。通过了解在迁移学习中使用的模型(数据集、技术等)的背景,你可以避免在实验期间浪费时间,并集中调整那些可能造成差异的模型。

本文分享自微信公众号 - ATYUN订阅号(atyun_com),作者:Yining

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-01-24

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 迁移学习在自然语言处理领域的应用

           迁移学习近年来在图形领域中得到了快速的发展,主要在于某些特定的领域不具备足够的数据,不能让深度模型学习的很好,需要从其它领域训练好的模型迁移过来,...

    CodeInHand
  • 迁移学习在自然语言处理领域的应用

    迁移学习近年来在图形领域中得到了快速的发展,主要在于某些特定的领域不具备足够的数据,不能让深度模型学习的很好,需要从其它领域训练好的模型迁移过来,...

    CodeInHand
  • 采用通用语言模型的最新文本分类介绍

    这篇文章向零基础同学介绍我们最新的论文,和以前的方法相比,该论文展示了如何采用更高的精度和更少的数据自动地进行文档分类。我们将使用简单的方式解释几种方法:自然语...

    AI研习社
  • 什么是迁移学习?它都用在深度学习的哪些场景上?这篇文章替你讲清楚了

    翻译 | 刘畅 迁移学习是机器学习方法之一,它可以把为一个任务开发的模型重新用在另一个不同的任务中,并作为另一个任务模型的起点。 这在深度学习中是一种常见的方法...

    小莹莹
  • 什么是迁移学习?它都用在深度学习的哪些场景上?这篇文章替你讲清楚了

    翻译 | 刘畅 迁移学习是机器学习方法之一,它可以把为一个任务开发的模型重新用在另一个不同的任务中,并作为另一个任务模型的起点。 这在深度学习中是一种常见的方法...

    AI科技大本营
  • 学界 | CMU、NYU与FAIR共同提出GLoMo:迁移学习新范式

    深度学习的最新进展很大程度上依赖于诸如卷积网络(CNN)[ 18 ] 和循环网络(RNN)[ 14 ] 之类的架构及注意力机制 [ 1 ]。这些架构虽然具有较高...

    机器之心
  • 迁移学习在深度学习中的应用

    ▌简介 ---- 迁移学习是一种机器学习方法,其中为一个任务开发的模型可以在另一个任务中重用。 迁移学习是深度学习中的一种流行方法,其中预训练(pre-trai...

    WZEARW
  • 【收藏】AI高频词汇 TOP15 -入门版

    极视角科技
  • 一文读懂在深度学习中使用迁移学习的好处

    迁移学习是一种使用为任务开发的模型做第二个任务模型起点的机器学习方法。使用预训练模型作计算机视觉和自然语言处理任务的起点是深度学习中一种流行的方法。因为在这些问...

    AiTechYun
  • 学界 | ImageNet 带来的预训练模型之风,马上要吹进 NLP 领域了

    AI 科技评论按:对于计算机视觉领域的研究人员、产品开发人员来说,在 ImageNet 上预训练模型然后再用自己的任务专用数据训练模型已经成了惯例。但是自然语言...

    AI科技评论
  • 收藏!我整理了深度学习,自然语言处理和计算机视觉的30个顶级Python库

    话不多说直接上图,下图按类型表示了每个库,并按星级和贡献者对其进行了绘制,其符号大小反映了该库对Github的提交数量以对数标度表示。

    计算机与AI
  • 腾讯AI Lab多篇论文入选CVPR、ACL及ICML等顶级会议(附论文下载)

    腾讯AI Lab微信公众号今日发布了其第一条消息,宣布腾讯AI Lab多篇论文入选即将开幕的CVPR、ACL及ICML等顶级会议。 在AI科技大本营公众号会...

    AI科技大本营
  • NLP领域的ImageNet时代到来:词嵌入「已死」,语言模型当立

    长期以来,词向量一直是自然语言处理的核心表征技术。然而,其统治地位正在被一系列令人振奋的新挑战所动摇,如:ELMo、ULMFiT 及 OpenAI transf...

    机器之心
  • 腾讯 AI Lab 2018年度回顾

    ? 2018年是颇具意义的一年,以“Make AI Everywhere”为愿景,我们在医疗、农业和公益等AI应用领域取得不错进展,也正在通过游戏和机器人等实...

    腾讯技术工程官方号
  • CCAI专访 | 杨强教授谈深度学习泡沫、迁移学习机遇与人工智能入门

    文 | 胡永波 7 月 22 - 23 日,由中国人工智能学会、阿里巴巴集团 & 蚂蚁金服主办,CSDN、中国科学院自动化研究所承办的第三届中国人工智能大会(C...

    AI科技大本营
  • 专访 | 杨强教授谈CCAI、深度学习泡沫与人工智能入门

    用户1737318
  • 入门 | 简述迁移学习在深度学习中的应用

    机器之心
  • 不忘初心,砥砺前行|VALSE之行收获

    随着VALSE2019的精彩落幕,SIGAI迎来了建号一周年庆。回顾这365天的时间,我们用130篇优质原创技术文章,与人工智能领域数万的专业人士、学生以及爱好...

    SIGAI学习与实践平台
  • 大数据时代下的迁移学习

    作者 | Lars Hulstaert 翻译 | 林椿眄 编辑 | 谷磊 在这篇博文中,你将了解到什么是迁移学习,它的一些应用以及它为什么能够成为数据科学家应具...

    AI科技大本营

扫码关注云+社区

领取腾讯云代金券