Fast.ai推出NLP最新迁移学习方法「微调语言模型」,可将误差减少超过20%!

原文来源:arxiv

作者:Jeremy Howard、Sebastian Ruder

「雷克世界」编译:嗯~是阿童木呀


可以这样说,迁移学习已经促使计算机视觉领域发生了具有革命性的变化,但对于自然语言处理(NLP)中的现有方法来说,仍然需要从零开始对其进行针对于特定任务的修改和训练。我们提出了微调语言模型(Fine-tuned Language Models,FitLaM),这是一种有效的迁移学习方法,可以应用于NLP中的任何任务,并且引入一些关键技术以对现有最先进的语言模型进行微调。我们的方法在五个文本分类任务上的性能表现要明显优于现有最先进的技术,在大多数数据集上的实施中能够将误差减少18-24%。我们对我们的预训练模型和代码进行了开源设置,以便社区采用,使该方法具有更为广泛的应用。

 


迁移学习对于计算机视觉(CV)的发展起着很大的作用。应用型CV模型(包括目标检测、分类和分割)很少是从零开始进行训练的,而是对已经在ImageNet、MS-COCO和其他数据集上进行预训练的模型进行细微调整得到的(Sharif Razavian等人于2014年、Long等人于2015年、He等人于2016年、Huang等人于2017年提出)。


文本分类是一类常见的自然语言处理(NLP)任务,它涉及许多诸如垃圾邮件、欺诈和机器人检测、应急响应和商业文件分类(如法律发现)等重要的实际应用。

 

文本分类中的数据集和任务


尽管深度学习模型已经在诸多自然语言处理任务上达到了当前最先进的技术水平,但这些模型都是从零开始进行训练的,这需要大量的数据集,而且需要若干天的时间才能达到收敛状态。对于利用迁移学习的自然语言处理任务来说,这已经处于算机视觉领域中较为落后的状态了。对预训练的词嵌入进行微调,是一个简单的迁移学习技术,它只针对模型的第一层,已经在实践中产生了超乎想象的影响力,并在大多数当前最为先进的模型中进行使用。考虑到对模型进行预训练的好处,我们应该能够比随机初始化模型其余参数这一举措做得更好。


当前常用的方法是将来自诸如语言建模或机器翻译等其他任务的嵌入与不同层的输入连接在一起。然而,这些方法存在着这样一个问题,它们仍然是从零开始对主要的任务模型进行训练,并将预训练的嵌入作为固定参数进行处理,从而限制了它们的实用性。

 

在两种文本分类数据集上进行测试,所取得的精确度得分情况


可以这样说,一个成功的NLP迁移学习技术应该能够达到与其计算机视觉技术相对应的类似标准:a)该方法应该能够充分利用大量的可用数据;b)它应该利用一个可以独立进行优化的任务,从而进一步实现下游的改进;c)它应该依赖于一个可以应用于大多数NLP任务的单一模型;d)在实践中应该很容易进行使用。

 

在三个文本分类数据集上进行测试,所达到的误差率(%)情况


我们提出将微调语言模型(FitLaM)作为NLP的一种有效的迁移学习形式,它完全满足上述标准。我们方法使用的是语言建模,这是一项几乎具有无限数据量的任务,并且能够推动当前最先进技术取得最新进展。它通过预训练,能够将大量的外部数据以及域内数据进行集成。


FitLaM依赖于一个简单的循环神经网络(RNN),而不需要对其进行任何的修改。我们只需要使用一个或多个针对于特定任务的线性层对模型进行扩充,相较于现有的方法来说,它只需要考虑少量的参数。我们提出了一种新的微调技术,即判别式微调(discriminative fine-tuning),它对较低层进行微调以调到一个相较于较高层较低的程度,从而保留通过语言建模所获得的知识。我们还介绍了一些技术,这些技术示微调能够取得较好性能和进行更快训练的关键所在。


我们在五个经过广泛研究,具有不同大小和类型的文本分类任务中对我们的迁移学习方法进行了评估,实验结果表明,相较于以往高度针对于特定任务的研究和当前最先进的方法来说,我们方法的性能表现具有显著的优越性。


我们所取得的成就大致如下所示:


1.我们归纳总结了CV和NLP中迁移学习的相似之处,并为NLP中有效的迁移学习方法提供了相关的依据。


2.我们提出了微调语言模型(FitLaM),这种方法对于NLP的任何任务来说,可以用以实现类似于CV中那样的迁移学习方法。


3.我们提出使用判别式微调以保留以往的知识,并避免在微调过程中产生严重的遗忘。


4.我们引入了一种用于文本分类的基于时间的反向传播(Back-Propagation Through Time,BPT3C),这是一种新的方法,通过线性层将分类器的损失反向传播到任何序列大小的RNN输出中。


5.我们引入了一些技术,它们是对预训练语言模型进行微调的关键所在。


6.我们在五个代表性的文本分类数据集上的性能表现要明显优于现有的文本分类方法,其中,在大多数数据集的误差减少了18-24%。


7.我们开源了我们的预训练模型以及相关代码,从而希望能够实现更为广泛的应用。


我们提出了一种适用于NLP任务的有效迁移学习方法——FitLaM,以及一种称之为判别式微调的方法,这种有效的微调方法可以对不同层进行不同程度的调整,以避免过程中的灾难性遗忘。我们已经引入了于文本分类的基于时间的反向传播(BPT3C),这种方法能够将分类器的损失反向传播到任何序列大小的RNN输出中,除此之外,我们还引入了若干起着关键作用的好方法,从而能够实现较好的微调性能表现和更快速地进行训练。实验结果表明,我们的方法要明显优于现有的迁移学习技术,以及用于五个具有代表性的文本分类任务的最新技术。总的来说,我们已经证明了用于NLP的迁移学习的优势所在,并希望我们的研究结果将能够促进用于NLP的迁移学习能够取得更好的新进展。



未来智能实验室是人工智能学家与科学院相关机构联合成立的人工智能,互联网和脑科学交叉研究机构。由互联网进化论作者,计算机博士刘锋与中国科学院虚拟经济与数据科学研究中心石勇、刘颖教授创建。


未来智能实验室的主要工作包括:建立AI智能系统智商评测体系,开展世界人工智能智商评测;开展互联网(城市)云脑研究计划,构建互联网(城市)云脑技术和企业图谱,为提升企业,行业与城市的智能水平服务。

  如果您对实验室的研究感兴趣,欢迎加入未来智能实验室线上平台。扫描以下二维码或点击本文左下角“阅读原文”


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

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

相关文章

php去除txt重复,用vbscript实现从文本文件中删除所有重复行的代码

这篇文章主要为大家介绍了关于从文本文件中删除重复名字的类似问题,需要的朋友可以参考一下问:您好,脚本专家!如何从文本文件中删除所有重复行?-- SW答:您好,SW。您知道,成为一名脚本…

Spring Data JPA事务管理

1、事务基础概念_四大特性 数据库中事务的四大特性(ACID),如果一个数据库声称支持事务的操作,那么该数据库必须要具备以下四个特性: ⑴ 原子性(Atomicity) 原子性,是指事务包含的所有…

教育部发文:AI、算法等2018年进入全国高中课程!

来源:全球人工智能概要:1月16日上午,教育部召开新闻发布会,介绍了《普通高中课程方案和语文等学科课程标准(2017年版)》的有关情况,并重新修订了语文等14门学科的课程标准。1月16日上午&#xf…

经典php代码,HTML_php教程:经典PHP代码,经典循环例子 HTMLHEAD - phpStudy

经典循环例子经典循环例子for($counter 1; $counter < 6; $counter) //循环6次{print("counter is $counter\n"); //打印6次}?>for的高级运用for的高级运用/*** 打印必要的说明文字*/print("距离星期一还有几天&#xff1f;\n");print(&…

JPA事务示例分析

在这个工程中&#xff0c;定义一个名为User的实体&#xff1a; Entity Data NoArgsConstructor public class User {IdGeneratedValueprivate Long id;Size(max 5)private String name;Max(50)private Integer age;public User(String name, Integer age) {this.name name;t…

智能零售来了!Amazon Go无人商店周一正式对公众开放

来源&#xff1a;网络大数据概要&#xff1a;经过近 14 个月只对亚马逊公司员工开放的试运行&#xff0c;周一这家标着 Amazon Go 标志的店面将公开亮相&#xff0c;这是亚马逊近年来投入最多努力的项目之一&#xff0c;旨在重塑实体购物的体验。据《西雅图时报》报道&#xff…

python函数时间,python之时间函数

用time模块的strftime函数时间日期的格式化时间import timeprint(time.strftime(%y/%m/%d %H:%M:%S %A))格式化符号说明格式化符号说明格式化符号说明%Y年(2019)%B月(June)%A星期(Thursday)%y年(19)%b月(Jun)%a星期(Thu)%I时(02)%m月(06)%w星期(4)(0~6)(0是周日)%H时(14)%M分(2…

JPA - EntityTransaction与事务

EntityTransaction 接口用来管理资源层实体管理器的事务操作&#xff0c;通过调用实体管理器的getTransaction方法 获得其实例。 其常用方法如下&#xff1a; ① begin 用于启动一个事务&#xff0c;此后的多个数据库操作将作为整体被提交或撤消。 若这时事务已启动则会抛出…

看懂GE Predix ,就看懂了工业互联网

来源&#xff1a;小黑羊JoinWings概要&#xff1a;Predix是GE推出的针对整个工业领域的基础性系统平台&#xff0c;这是一个开放的平台&#xff0c;它可以应用在工业制造、能源、医疗等各个领域。Predix是GE推出的针对整个工业领域的基础性系统平台&#xff0c;这是一个开放的平…

php传递数据给jquery,将值从php传递给jquery

我需要一些帮助&#xff0c;我想知道如何将一个值从PHP变量传递给jquery脚本&#xff1f;我正在做的是打开一个模式窗口&#xff0c;从mysql浏览器创建的元素列表中&#xff0c;所以我需要传递一个变量值的锚点。这是我的代码&#xff1a;$query_tours "Select * from to…

JPA和事务管理

1 事务 1.1事务管理方式 spring支持编程式事务管理和声明式事务管理两种方式。 编程式事务管理使用TransactionTemplate或者直接使用底层的PlatformTransactionManager。对于编程式事务管理&#xff0c;spring推荐使用TransactionTemplate。 声明式事务管理建立在AOP之上的…

纽约大学Gary Marcus发文指出AlphaZero「被夸大」,强调重视人工智能「先天因素」

原文来源&#xff1a;arXiv作者&#xff1a;Gary Marcus「雷克世界」编译&#xff1a;嗯~是阿童木呀纽约大学Gary Marcus教授一直是深度学习的反对者&#xff0c;他认为深度学习并没有主动学习能力&#xff0c;且鲁棒性较差。同时&#xff0c;他始终认为人工智能应该多在“先天…

oracle10g新建数据,Oracle10g手工创建数据库

【注&#xff1a;本文中所有$表示在oracle用户中操作的命令、SQL>表示所有SQL语句】手工建库步骤&#xff1a;1、删除原有的数据库&#xff0c;如TEST命令&#xff1a;SQL> shutdown immediate;SQL> startup mount;SQL> alter system enable restricted session;SQ…

JPA和事务管理2

JPA和事务管理 很重要的一点是JPA本身并不提供任何类型的声明式事务管理。如果在依赖注入容器之外使用JPA&#xff0c;事务处理必须由开发人员编程实现。 UserTransaction utx entityManager.getTransaction(); try { utx.begin(); businessLogic();utx.commit(); } catch(…

oracle中 使用不了,Oracle 中不使用NOT IN 和 NOT EXISTS的另一种方法

用LEFT JOIN 代替NOT IN 或 NOT EXISTS&#xff1a;SQL> conn scott/tigerConnected.SQL> CREATE TABLE testa2 (3 id number,4 value varchar2(10)5 );Table created.SQL> INSERT INTO testa VALUES(1,a);1 row created.SQL> INSERT INTO testa VALUES(2,b)…

展望:模型驱动的深度学习

来源&#xff1a;《国家科学评论》概要&#xff1a;近年来&#xff0c;深度学习在人工智能领域一系列困难问题上取得了突破性成功应用。模型驱动的深度学习方法近年来&#xff0c;深度学习在人工智能领域一系列困难问题上取得了突破性成功应用。例如用于人脸识别已高于人的正确…

JPA架构

JPA(Java持久性API)是存储业务实体关联的实体的来源。它显示了如何定义一个面向普通Java对象(POJO)作为一个实体&#xff0c;以及如何与管理关系实体。 类级别架构 下图显示了JPA的类的层次结构。它显示核心类和JPA接口。 下表描述了每个在上述架构的显示单元。 单元描述Ent…

oracle link binaries,Oracle环境中使用NFS的mount选项

在oracle环境中使用NFS&#xff0c;在mount的时候需要修改一些选项&#xff0c;否则可能导致各种问题&#xff0c;比如ORA-27086和ORA-27054错误。不管你是将Oracle安装在NFS设备也好&#xff0c;是将datafile放置在NFS设备也好&#xff0c;是备份到NFS设备也好&#xff0c;如果…

Amazon Go开门营业,号称无需现金、无需排队结账,现场究竟体验如何?

来源&#xff1a;36氪概要&#xff1a;无人零售的鼻祖Amazon Go姗姗来迟&#xff0c;那么体验究竟如何呢&#xff1f;无人零售的鼻祖Amazon Go姗姗来迟&#xff0c;那么体验究竟如何呢&#xff1f;当地时间周一&#xff08;1月22日&#xff09;&#xff0c;位于西雅图亚马逊总部…

JPA EntityManagers,事务及其周围的一切

介绍 对我来说&#xff0c;最令人困惑和不清楚的事情之一是&#xff0c;作为Java开发人员&#xff0c;一直是围绕事务管理的谜团&#xff0c;尤其是JPA如何处理事务管理。 事务什么时候开始&#xff0c;什么时候结束&#xff0c;实体的持久化方式&#xff0c;持久性上下文等等…