NLP领域中更有效的迁移学习方法


       在深度学习领域,迁移学习(transfer learning)是应用比较广的方法之一。该方法允许我们构建模型时候不光能够借鉴一些其它科研人员的设计的模型,还可以借用类似结构的模型参数,有些类似于站在巨人的肩膀上进行深入开发。本文将讲述如何在NLP领域中更高效地应用迁移学习。
       今年春天,我 在ODSC East会议上发表了题为  “NLP中的有效迁移学习”的演讲。该演讲展示了预训练的单词和文档嵌入层在训练数据集较小时取得的优异结果,并为将这些技术应用于工程任务中提出了一系列实用建议。此外,感谢[Alec Radford和OpenAI团队的一些出色研究](),使得之前提出的一些建议发生了一些变化。
       为了解释发生变化的原因,首先回顾一下之前在Indico会议中使用的评估方法,以评估一种新颖的机器学习方法是否适用于工业用途中。

评估新的机器学习方法

对于广泛的实际应用,机器学习模型必须对照以下大多数要求检验自身:

  • 快速训练
  • 快速预测
  • 需要极少或不需要超参数调整
  • 在训练数据可用性较低时运行良好(100个示例)
  • 适用于广泛的任务及对应的领域
  • 在标记的训练数据上能够很好地扩展

       让我们看看预先训练好的单词+文档嵌入层如何满足这些要求:

  • 快速训练
    在预训练嵌入层之上训练轻量级模型所花费的时间在几秒钟内是可能的,尽管计算预训练嵌入层依赖于基础模型复杂度。
  • 快速预测
    预测同样快速,预测与基础模型花费一样的代价。
  • 需要极少或不需要超参数调整
    正则化参数和嵌入类型的交叉验证对其是有所帮助的,并且这种操作足够便宜而且不会引入问题。
  • 在训练数据可用性较低时起作用(100个示例)
    在预训练的单词嵌入层之上应用逻辑回归块仅需要学习100s~1000s的参数而不是数百万的参数,并且模型的简单性意味着它需要非常少的数据就能获得良好的结果。
  • 适用于广泛的任务及对应的领域
    预训练的单词和文档嵌入层通常的表现是“足够好”,但具体任务需要与领域和目标模型相关。
  • 在标记的训练数据上能够很好地扩展
    这种方法非常快速,并且不会从额外的训练数据中获益。学习线性模型有助于用更少的数据产生更好的结果,但这也意味着模型学习到的输入和输出之间复杂关系的能力也要低得多。

       简而言之,使用预训练的嵌入层在计算上花费少,并且在训练数据可用性较低的情况下表现良好,但是使用静态表示对从额外的训练数据获得的增益会受到限制。从预先训练的嵌入层中获得良好的性能需要为给定的任务搜索正确的预训练嵌入层,但是很难预测一个预先训练嵌入层是否能够很好地推广到一个新的目标任务,这就需要通过一次次实验来验证了。

计算机视觉中的迁移学习解决方案

       值得庆幸的是,在计算机视觉领域中的相关研究提供了一种可行的替代方案。在计算机视觉领域中,使用预先训练的特征表示已经在很大程度上被“微调”预训练模型而不仅仅是学习最终分类层的方法所取代。修改源模型的所有权重,而不是简单地重新初始化和学习最终分类层的权重。随着训练数据可用性的增加,这种额外的模型灵活性开始带来回报。
       这种方法的来源基础已有几年历史了——从Yosinski、Clune、Bengio等人在2014年探讨了卷积神经网络(CNN)参数的可迁移性开始,直到最近这个过程才成为普遍的做法。现在,在CNN网络中应用微调方法是很常见的,斯坦福大学计算机视觉课程(CS231N)中将这一过程作为课程的一部分,以及Mahajan等人的2018年论文(“探索弱监督预训练的极限”)表明,当模型性能作为至关重要时,应该始终使用微调来代替预训练的特征。

自然语言处理的模型验证

       那么为什么自然语言处理领域如此落后呢?在Sebastian Ruder的一篇文章中写道 “NLP的ImageNet时刻已经到来”,他认为造成这个现象的原因是该领域中缺乏用于学习可推广基础模型的既定数据集和源任务。直到最近,自然语言处理领域仍然缺乏ImageNet类似的数据集。
       然而,在最近的论文中,如 Howard 和Ruder的  “通用语言模型微调文本分类”  和Radford的论文 “通过生成性预训练提高语言理解”  已经证明模型微调最终在自然语言领域中显示出前景。尽管在这些论文中采用的源数据集各不相同,但NLP领域似乎正在将“语言建模”目标标准化,作为训练可迁移基础模型的首选。
       简单地说,语言建模是预测序列中下一个单词的任务。鉴于部分句子“我以为我会按时到达,但最终____5分钟”,对于读者来说,下一个单词将是“迟到”的同义词是相当明显的。有效地解决这一任务不仅需要理解语言结构(名词遵循形容词,动词有主语和对象等),还需要根据广泛的语境线索做出决策的能力(“迟到”是填写在示例中的空白处,因为前面的文本提供了说话者正在谈论时间的线索。)此外,语言建模具有不需要标记的训练数据这一理想特性,且原始文本对于每一个可想象的领域都是丰富的。这两个特性使得语言建模成为学习可泛化的基本模型的理想选择。


       然而,语言建模目标并不是使NLP模型微调的唯一必要条件。使用  “迁移”模型  代替典型的复现模型(LSTM)也发挥了重要作用。在“通过生成性预训练提高语言理解力”中看到,微调迁移模型的性能与微调复现(LSTM)模型之间存在显着差异。LSTM不再是序列建模的标准——非循环模型已经在各类任务中表现出强有力的竞争性。
       John Miller的博客文章中写道,“当递归模型不需要递归”,暗示LSTM理论上的无限记忆可能实际上并不存在。此外,固定的上下文窗口存储器可能足以解决诸如语言建模之类的任务,并且迁移模型的残余块结构似乎很适合迁移学习应用程序。简而言之,迁移模型的理论缺点被其优势所抵消,例如更快的训练和预测时间。

模型微调是否符合设定的标准?

鉴于最近的进展,让我们重新看看微调模型如何满足之前的要求:

  • 快速训练
    虽然与预先计算的特征表示相比计算代价更高,但OpenAI的迁移模型可以在约5分钟内通过GPU硬件在几百个示例中进行微调。
  • 快速预测
    预测所花费的代价也更高,吞吐量限于每秒一位数的文档。在广泛实际应用之前,必须改进预测速度。
  • 需要极少或不需要超参数调整
    在各个任务中使用默认超参数的工作效果非常好,虽然基本交叉验证寻找理想的正则化参数是有益的。
  • 在训练数据可用性较低时运行良好(100个示例)
    模型微调在低至100个示例的数据量表现与使用与训练嵌入层一样。
  • 适用于广泛的任务及领域
    领域与任务匹配的问题似乎比预训练的特征特征表示更少,语言建模目标似乎学习了适用于语义和句法任务的特征。
  • 在标记的训练数据上能够很好地扩展
    使用预先训练的特征表示无法解决的任务,可以通过在足够的训练数据下使用非常复杂的模型解决。随着更多的训练数据变得可用,预训练特征和模型微调之间的差距大大扩大。事实上,微调似乎通常比从头开始训练更加可取——OpenAI的论文“通过生成式预训练提高语言理解”展示了的最新结果。

       虽然它有一定的局限性,但NLP任务的模型微调具有很大的前景,并且已经显示出优于当前使用预训练的文字和文档嵌入层这一最佳实践的明显优势。
       Sebastian Ruder总结到:

“在NLP领域中实践迁移学习的时机已经成熟。鉴于ELMo、ULMFiT和OpenAI取得的令人印象深刻的实证结果,这似乎只是时间问题,最终直到预训练的单词嵌入层将被淘汰,这可能会促进在标签数据量有限的NLP领域中开发出许多新的应用程序。王者已逝,新的王者也诞生!“

NLP模型定位的定量研究

       我们早期的基准测试证实,对使用预先训练的表示进行微调模型有一个通用的好处。下面是使用我们的迁移学习基准测试工具Enso获得的最近基准测试的输出示例 。


       图中的每个点表示来自完整数据集的随机子集上的5次试验的平均值+ 95%置信区间。X轴表示可用的标记训练数据点数量,Y轴分别是平均ROC AUC和精度。在拟合之前对训练数据集进行过采样,这些结果是拟合约2500个模型的集合。
       微调模型是OpenAI的迁移语言模型的实现,基线模型是在手套词嵌入上训练的交叉验证逻辑回归。尽管存在更强的基线用于比较,但是在该训练数据量下,手套嵌入的平均值对于大多数分类任务来说是比较好的基线了。后续希望在未来的基准测试中发布与其他方法的比较,但仍然令人惊讶的是,在只有100个标记的训练样例下,模型微调取得的效果仍优于简单的基线。有关23种不同分类任务的完整基准测试可在s3下载 。

微调:Scikit-Learn 样式模型微调库

       鉴于这一最近的发展,Indico开源了一个包装类(wrapper),用于OpenAI在迁移模型微调方面的工作。 我们尝试通过将其打包成易于使用的scikit-learn样式库,使Radford的研究应用更加广泛,后续会讲述如何使用一些简短的代码使用微调来实现对自己任务的改进敬请期待。

 

原文链接
本文为云栖社区原创内容,未经允许不得转载。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/520910.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用wsimport将wsdl生成java

使用管理员打开cmd wsimport -encoding utf-8 -keep -s D:\temp -p com.lamcy.webService -verbose http://服务地址?wsdl -encoding : 指定编码格式 -keep:是否生成java源文件 -d:指定.class文件的输出目录 -s:指定.java文件的输出目录…

使用python创建自己的第一个神经网络模型吧!

神经网络(NN),也被称为人工神经网络(ANN),是机器学习领域中学习算法的子集,大体上借鉴了生物神经网络的概念。目前,神经网络在计算机视觉、自然语言处理等领域应用广泛。德国资深机器…

百度现场面试:JVM+算法+Redis+数据库!(三面)| CSDN博文精选

戳蓝字“CSDN云计算”关注我们哦!作者 | 中琦2513转自 | CSDN博客责编 | 阿秃百度一面(现场)自我介绍Java中的多态为什么要同时重写hashcode和equalsHashmap的原理Hashmap如何变线程安全,每种方式的优缺点垃圾回收机制…

语义分割概念及应用介绍

近年来,以深度学习为中心的机器学习技术引起了人们的关注。比如自动驾驶汽车已经逐渐成为可能,但在整个深度学习过程,需要算法识别和学习作为原始数据提供的图像,在这一过程中,应用到了语义分割技术。下面让我们来看看…

(需求实战_终章_08)SSM集成RabbitMQ 订阅模式 关键代码讲解、开发、测试

![在这里插入图片描述](https://img-blog.csdnimg.cn/20200208221057640.png?x-oss-processimage/watermark,type_Z 首先,confirm确认机制和return确认机制都是相对于生产者而言的, 生产者发送消息一般会有消息发送成功和消息发送失败两种场景。 生产者…

新零售基础设施 看阿里巴巴如何打“地基”

经过两年探索,“新零售”从星星之火已发展到现在的燎原之势,许多原有的传统模式正在被打破,先进的智能技术和数据正在给传统的零售赋予更多的能力,带来更大的想象空间。 在2018年杭州云栖大会的电商平台专场中,阿里巴…

华为自研5G关键芯片PA:明年量产不再依赖美国;1999元!苹果发布AirPods Pro ;腾讯云勇推自研服务器“星星海”……...

关注并标星星CSDN云计算极客头条:速递、最新、绝对有料。这里有企业新动、这里有业界要闻,打起十二分精神,紧跟fashion你可以的!每周两次,打卡即read更快、更全了解泛云圈精彩newsgo go go小米CC9 Pro概念图&#xff0…

Work@Alibaba 阿里巴巴的企业应用构建之路

作为一个拥有数万名员工的企业,阿里巴巴的企业信息化是怎么做的? 在上周的云栖大会上,来自阿里巴巴信息平台的资深技术专家叶建辉为大家揭开了谜底。 阿里员工是怎么工作的? 可以通过阿里巴巴这三个案例了解: 人脸门禁。今年云…

windows server 2019 服务器搭建的方法步骤(图文)

一、windows server 2019 安装 Vmware 下安装 windows server 2019 。 二、服务器配置 1、 先启用远程功能 右键点击【此电脑】–【属性】,进入“【控制面板\系统和安全\系统】”,点击-【远程设置】 计算机找不到就使用【winE】快捷键 2、在“远程…

传统企业装上“智慧大脑” 看阿里巴巴如何实践AI赋能

“我们找了8位专业律师,和我们的AI机器人做了一个对比,我们的召回率与8位律师相当,但我们的准确率更高些”。 在不久前刚结束的杭州云栖大会上,来自阿里巴巴信息平台事业部的资深算法专家李波,正在向观众展示阿里巴巴…

如何交付机器学习项目:一份机器学习工程开发流程指南

随着机器学习(ML)成为每个行业的重要组成部分,对机器学习工程师(MLE)的需求急剧增长。MLE需要将机器学习技能与软件工程专业知识相结合,为特定应用程序找到高性能的模型,并应对出现的实施挑战—…

国际顶级学界业界大咖云集,9 场技术论坛布道,2019 嵌入式智能国际大会强势来袭!...

2019 嵌入式智能国际大会即将来袭!购票官网:https://dwz.cn/z1jHouwE2019年12月6日-8日,2019嵌入式智能国际大会将在深圳华侨城洲际大酒店举行。本次大会由哈尔滨工业大学(深圳)、清华大学国际研究生院、CSDN、嵌入式视…

qtcreator下拉列表怎么制作_设置EXCEL动态下拉菜单,只需要一个组合键,新手也能快速掌握...

操作版本:OFFICE365在EXCEL制作一级下拉菜单有4种方法,你掌握几种?一文中,我提到了一级下拉菜单的制作方法,其中用公式法来制作下拉菜单可以实现内容增减后下拉菜单的内容也自动增减,这个方法涉及OFFSET函数…

使用Numpy和Opencv完成图像的基本数据分析(Part III)

引言 本文是使用python进行图像基本处理系列的第三部分,在本人之前的文章里介绍了一些非常基本的图像分析操作,见文章《使用Numpy和Opencv完成图像的基本数据分析Part I》和《使用Numpy和Opencv完成图像的基本数据分析 Part II》,下面我们将…

Microsoft Windows Server 2019 1809 iso镜像 企业版本

企业版本 标准版本 默认页面,关闭即可 参考链接: Microsoft Windows Server 2019 1809 iso镜像 http://www.ddooo.com/softdown/131736.htm

【程序猿必备】数据结构与算法精选面试题

有很多计算机科学技术专业的毕业生和程序员申请在Uber和Netflix这样的初创公司、谷歌和阿里巴巴这样的大公司以及Infosys或Luxsoft等以服务为基础的公司从事编程、编码和软件开发工作,但他们中的许多人都不知道,当你申请这些公司的职位时,你会…

技术干货 | 详谈AI芯片分类和关键技术

戳蓝字“CSDN云计算”关注我们哦!作者 | 架构师技术联盟责编 | 阿秃人工智能芯片目前有两种发展路径:一种是延续传统计算架构,加速硬件计算能力,主要以 3 种类型的芯片为代表,即 GPU、 FPGA、 ASIC,但 CPU依…

AI+服务 阿里巴巴如何做智能服务转型?

AI下围棋、AI写作文、AI看病……在智能时代,通过新技术的赋能,行业已经发展到了一个新的高度。那么在服务领域,尤其是企业服务中,智能技术的加入会带来哪些新的想象? 在阿里巴巴,智能服务已经成为企业发展…