0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

什么是迁移学习?NLP迁移学习的未来

zhKF_jqr_AI 来源:未知 作者:李倩 2018-08-17 09:18 次阅读

编者按:关于NLP领域的迁移学习我们已经介绍过了,fast.ai也有很多相应的讨论。今天给大家展示一个在亚马逊评论数据集上实现的任务,即将评论分为积极或消极两类。


什么是迁移学习?

得益于迁移学习,计算机视觉领域的发展非常迅速。有着几百万个参数的高度非线性模型通常需要大型数据集的训练,经过几天甚至几周的训练,也只能分辨猫狗。

有了ImageNet挑战赛后,每年各种队伍都会设计出不同的图像分类器。我们发现这类模型的隐藏层可以捕捉图像的通用特征(例如线条、形式、风格等)。于是,这样就不用每次都为新的任务重建模型了。

以VGG-16模型为例:

它的结构相对复杂,图层较多,同时参数也很多。论文作者称需要用四个GPU训练三周。

而迁移学习的理念是,由于中间的图层是学习图像一般特征的,所以我们可以将其用作一个大型“特征生成器”!我们可以先下载一个预训练模型(在ImageNet任务上训练了好几周),删去网络的最后一层(全连接层),根据我们的任务进行调整,最后只训练我们的分类器图层。由于使用的数据可能和之前训练的模型所用数据不同,我们也可以花点时间训练所有图层。

由于只在最后一层进行训练,迁移学习会用到更少的标记数据。对数据进行标注非常费时,所以创建不需要大量数据的高质量模型就非常受欢迎了。

NLP中的迁移学习

说实话,迁移学习在自然语言处理中的发展并不像在机器视觉里那样受重视。让机器学习线条、圆圈、方块,然后再用于分析还是比较容易设计的。但是用来处理文本数据似乎不那么容易。

最初用来处理NLP中的迁移学习问题的是词嵌入模型(常见的是word2vec和GloVe),这些词嵌入表示利用词语所在的语境来用向量表示它们,所以相似的词语有相似的词语表示。

然而,词嵌入只能表示大多数NLP模型的第一个图层,之后我们仍需要从零开始训练所有的RNN/CNN等图层。

对语言模型进行微调

今年年初,Jeremy Howard和Sebastian Ruder提出了ULMFiT模型,这也是对NLP领域迁移学习的深入尝试。具体可参考论智此前报道的:《用迁移学习创造的通用语言模型ULMFiT,达到了文本分类的最佳水平》。

他们所研究的问题基于语言模型。语言模型是能够基于已知单词预测下一个单词的模型(例如手机上的智能拼写)。就像图像分类器一样,如果NLP模型能准确预测下一个单词,那就可以认为该模型学了很多自然语言组合的规则了。这一模型可以作为初始化,能够针对不同任务进行训练。

ULMFiT提出要在大型语料上训练语言模型(例如维基百科),然后创建分类器。由于你的文本数据可能和维基百科的语言风格不同,你就需要对参数进行微调,把这些差异考虑进去。然后,我们会在语言模型的顶层添加一个分类图层,并且只训练这个图层!论文建议逐渐解锁各个图层进行训练。

ULMFiT论文中的收获

这篇论文最让人惊喜之处就是用非常少的标记数据训练分类器。虽然未经标记过的数据随处可见,但是标记过的数据获取的成本是很高的。下面是对IMDb进行情感分析之后的结果:

只用了100个案例,他们就达到了和用2万个案例训练出的模型同样的错误率水平。除此之外,他们还提供了对模型进行预训练的代码,因为维基百科有多种语言,这使得我们能快速地进行语言转换。除英语之外,其他语种并没有很多经过标记的公开数据集,所以你可以在语言模型上对自己的数据进行微调。

处理亚马逊评论

为了加深对这种方法的理解,我们在另一个公开数据集上试了试。在Kaggle上发现了这个“亚马逊评论情感分析数据集”(地址:www.kaggle.com/bittlingmayer/amazonreviews/home)。它含有400万条商品评论已经相关的情感标签(积极或消极)。我们用fast.ai提出的ULMFiT对亚马逊的评价进行分类。我们发现,仅用1000个案例,模型就达到了在全部数据上训练的FastText模型的表现成果。而用100个案例进行训练,模型也能表现出不错的性能。

如果你想复现这个实验,可以参考notebook:github.com/feedly/ml-demos/blob/master/source/TransferLearningNLP.ipynb,在微调和分类过程中有一个GPU还是很高效的。

NLP中非监督 vs 监督学习

在使用ULMFiT的过程中,我们用到了非监督和监督学习两种方法。训练一个非监督式语言模型很“便宜”,因为你可以从网上找到很多文本数据。但是,监督式模型的成本就很高了,因为需要标记数据。

虽然语言模型可以捕捉到很多有关自然语言组织的信息,但是仍不能确定模型能否捕捉到文本的含义,即它们能否了解说话者想传达的信息。

Emily Bender在推特上曾提出了一个有趣的“泰语实验”:“假设给你所有泰语书籍,没有译文。假如你一点都不懂泰语,你永远不会从中学会什么。”

所以,我们认为语言模型更多的是学习语法规则,而不是含义。而语言模型能做的不仅仅是预测在语法规则上相近的句子。例如“I ate this computer”和“I hate this computer”两句话结构相同,但是一个良好的模型应该会将后者看作是“更正确”的句子。所以我们可以将语言模型看作是学习自然语言句子的架构的工具,从而帮助我们了解句子含义。

想了解更多这方面的话题,可以观看ACL 2018上Yejin Choi的演讲:sites.google.com/site/repl4nlp2018/home?authuser=0

NLP迁移学习的未来

ULMFiT的出现推动了迁移学习在自然语言处理中的发展,同时也出现了其他的微调工具,例如FineTune Transformer LM。我们注意到随着更多更好地语言模型的出现,迁移的效率也在不断提高。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 计算机视觉
    +关注

    关注

    8

    文章

    1700

    浏览量

    46069
  • nlp
    nlp
    +关注

    关注

    1

    文章

    489

    浏览量

    22066
  • 迁移学习
    +关注

    关注

    0

    文章

    74

    浏览量

    5574

原文标题:仅训练了1000个样本,我完成了400万条评论分类

文章出处:【微信号:jqr_AI,微信公众号:论智】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    迁移学习的原理,基于Keras实现迁移学习

    我面对的大多数计算机视觉问题没有非常大的数据集(5000-40000图像)。即使使用极端的数据增强策略,也很难达到像样的精确度。而在少量数据集上训练数百万参数的网络通常会导致过拟合。所以迁移学习是我的救星。
    的头像 发表于 05-09 03:44 1.5w次阅读
    <b class='flag-5'>迁移</b><b class='flag-5'>学习</b>的原理,基于Keras实现<b class='flag-5'>迁移</b><b class='flag-5'>学习</b>

    什么是迁移学习迁移学习的实现方法与工具分析

    向于不要求海量数据也能达到应用的精准要求,因此“小数据学习”正在成为新的热点,以迁移学习,强化学习为代表的小数据学习技术,更能体现人工智能的
    发表于 05-11 09:12 1.2w次阅读

    迁移学习训练网络

    keras 之 迁移学习,改变VGG16输出层,用imagenet权重retrain
    发表于 09-09 11:02

    迁移学习

    经典机器学习算法介绍章节目标:机器学习是人工智能的重要技术之一,详细了解机器学习的原理、机制和方法,为学习深度学习
    发表于 04-21 15:15

    迁移学习与模型预训练:何去何从

    把我们当前要处理的NLP任务叫做T(T称为目标任务),迁移学习技术做的事是利用另一个任务S(S称为源任务)来提升任务T的效果,也即把S的信息迁移到T中。至于怎么
    的头像 发表于 07-18 11:29 7920次阅读
    <b class='flag-5'>迁移</b><b class='flag-5'>学习</b>与模型预训练:何去何从

    NLP迁移学习面临的问题和解决

    自然语言处理(NLP)最近取得了巨大的进步,每隔几天就会发布最新的结果。排行榜疯狂是指最常见的NLP基准,如GLUE和SUPERGLUE,它们的得分越来越接近人类的水平。这些结果大多是通过超大(数十亿个参数)模型从大规模数据集中迁移
    的头像 发表于 05-04 12:03 3182次阅读
    <b class='flag-5'>NLP</b><b class='flag-5'>迁移</b><b class='flag-5'>学习</b>面临的问题和解决

    机器学习方法迁移学习的发展和研究资料说明

    近年来,迁移学习已经引起了广泛的关注和研究。迁移学习是运用已存有的知识对不同但相关领域问题进行求解的一种新的机器学习方法。它放宽了传统机器
    发表于 07-17 08:00 0次下载
    机器<b class='flag-5'>学习</b>方法<b class='flag-5'>迁移</b><b class='flag-5'>学习</b>的发展和研究资料说明

    基于脉冲神经网络的迁移学习算法

    使用脉冲序列进行数据处理的脉冲神经网络具有优异的低功耗特性,但由于学习算法不成熟,多层网络练存在收敛困难的问题。利用反向传播网络具有学习算法成熟和训练速度快的特点,设计一种迁移学习算法
    发表于 05-24 16:03 15次下载

    基于迁移深度学习的雷达信号分选识别

    基于迁移深度学习的雷达信号分选识别   来源:《软件学报》 ,作者王功明等   摘要:  针对当前雷达信号分选识别算法普遍存在的低信噪比下识别能力差、特征参数提取困难、分类器模型参数复杂等问题,提出
    发表于 03-02 17:35 1559次阅读

    迁移学习Finetune的四种类型招式

    迁移学习广泛地应用于NLP、CV等各种领域,通过在源域数据上学习知识,再迁移到下游其他目标任务上,提升目标任务上的效果。其中,Pretrai
    的头像 发表于 04-02 17:35 3218次阅读

    NLP中的迁移学习:利用预训练模型进行文本分类

    迁移学习彻底改变了自然语言处理(NLP)领域,允许从业者利用预先训练的模型来完成自己的任务,从而大大减少了训练时间和计算资源。在本文中,我们将讨论迁移
    发表于 06-14 09:30 465次阅读

    一文详解迁移学习

    迁移学习需要将预训练好的模型适应新的下游任务。然而,作者观察到,当前的迁移学习方法通常无法关注与任务相关的特征。在这项工作中,作者探索了重新聚焦模型注意力以进行
    的头像 发表于 08-11 16:56 6410次阅读
    一文详解<b class='flag-5'>迁移</b><b class='flag-5'>学习</b>

    视觉深度学习迁移学习训练框架Torchvision介绍

    Torchvision是基于Pytorch的视觉深度学习迁移学习训练框架,当前支持的图像分类、对象检测、实例分割、语义分割、姿态评估模型的迁移学习
    的头像 发表于 09-22 09:49 936次阅读
    视觉深度<b class='flag-5'>学习</b><b class='flag-5'>迁移</b><b class='flag-5'>学习</b>训练框架Torchvision介绍

    迁移学习的基本概念和实现方法

    迁移学习(Transfer Learning)是机器学习领域中的一个重要概念,其核心思想是利用在一个任务或领域中学到的知识来加速或改进另一个相关任务或领域的学习过程。这种方法在数据稀缺
    的头像 发表于 07-04 17:30 1893次阅读

    预训练和迁移学习的区别和联系

    预训练和迁移学习是深度学习和机器学习领域中的两个重要概念,它们在提高模型性能、减少训练时间和降低对数据量的需求方面发挥着关键作用。本文将从定义、原理、应用、区别和联系等方面详细探讨预训
    的头像 发表于 07-11 10:12 1174次阅读