当AI实现多任务学习,它究竟能做什么?

来源:脑极体

提到AI领域的多任务学习,很多人可能一下子就想到通用人工智能那里了。通俗意义上的理解,就像《超能陆战队》里的大白这样一种护理机器人,既能进行医疗诊断,又能读懂人的情绪,还能像陪伴机器人一样完成各种复杂任务。

不过大白毕竟只是科幻电影当中的产物,现有的AI技术大多还处于单体智能的阶段,也就是一个机器智能只能完成一项简单任务。工业机器人中做喷漆的就只能用来喷漆,做搬运的只能用来搬运;识别人脸的智能摄像头只能进行人脸,一旦人类戴上口罩,那就要重新调整算法。

当然,让单个智能体实现多种任务也是当前AI领域研究的热点。最近,在强化学习和多任务学习算法上成绩最好的是DeepMind公司的一款名为Agent57的智能体,该智能体在街机学习环境(ALE)数据集所有57个雅达利游戏中实现了超越人类的表现。

当然,多任务学习不止用在游戏策略上。相对于现阶段的AI,我们人类才是能够进行多任务学习的高手。我们既不需要学习成千上万的数据样本就可以认识某类事物,我们又不用针对每一类事物都从头学起,而是可以触类旁通地掌握相似的东西。

AI在单体智能上面确实可以轻松碾压人类,比如可以识别成千上万的人脸;但AI在多任务学习上面就要向人类的这种通用能力看齐了。

什么是多任务学习?

多任务学习(Multi-Task Learning,MTL),简单来说,就是一种让机器模仿人类学习行为的一种方法。人类的学习方式本身就是泛化的,也就是可以从学习一种任务的知识迁移到其他的相关的任务上,而且不同的任务的知识技能可以相互帮助提升。多任务学习涉及多个相关的任务同时并行学习,梯度同时反向传播,利用包含在相关任务训练信号中的特定领域的信息来改进泛化能力。

(单任务学习和多任务学习的模型对比示意)

做一个形象的类比。我们知道人类不如虎豹擅跑,不如猿猴擅爬,也不如鲸豚擅游,但是人类是唯独可以同时做到奔跑、攀援和游泳的。用在人工智能和人类智能上,我们通常认为AI更擅于在单一任务上表现优异并超越人类专家,如AlphaGo一样;而人类则可能在各种任务上都能胜任。

MTL正是要让人工智能来实现人类的这种能力。通过在多个任务的学习中,共享有用的信息来帮助每个任务的学习都得到提升的一个更为准确的学习模型。

这里需要注意的是多任务学习和迁移学习的区别。迁移学习的目标是将知识从一个任务迁移到另一个任务,其目的是使用一个或多个任务来帮助另一个目标任务提高,而 MTL 则是希望多个任务之间彼此能相互帮助提升。

这里我们就要搞清楚MTL的两个特征:

一、是任务具有相关性。任务的相关性是说几种任务的完成模式是存在一定的关联性的,比如,在人脸识别中,除了对人脸特征的识别,还可以进行性别、年龄的估算识别,或者,在不同的几类游戏中识别出共通的一些规则,这种相关性会被编码进 MTL 模型的设计当中。

二、是任务有不同的分类。MTL的任务分类主要包括监督学习任务、无监督学习任务、半监督学习任务、主动学习任务、强化学习任务、在线学习任务和多视角学习任务,因此不同的学习任务对应于不同的MTL设置。

共享表示和特征泛化,

理解MTL 优势的两个关键

为什么在一个神经网络上同时训练多个任务的学习效果可能会更好?

我们知道,深度学习网络是具有多个隐层的神经网络,逐层将输入数据转化成非线性的、更抽象的特征表示。而各层的模型参数不是人为设定的,而是给定学习器的参数后在训练过程中学到的,这给了多任务学习施展拳脚的空间,具备足够的能力在训练过程中学习多个任务的共同特征。

例如在上面的MTL的网络中,后向传播并行地作用于4个输出。由于4个输出共享底部的隐层,这些隐层中用于某个任务的特征表示也可以被其他任务利用,促使多个任务共同学习。多个任务并行训练并共享不同任务已学到的特征表示,这样多任务信息就有助于共享隐层学到更好的内部表示,这成为多任务学习的关键。

那么MTL是如何产生效果的?

MTL的方法中引入了归纳偏置(inductive bias)。归纳偏置有两个效果,一个是互相促进,可以把多任务模型之间的关系看作是互相先验知识,也称归纳迁移(inductive transfer),有了对模型的先验假设,可以更好的提升模型的效果;另外一个效果是约束作用,借助多任务间的噪声平衡以及表征偏置来实现更好的泛化性能。

首先,MTL的引入可以使得深度学习减少对大数据量的依赖。少量样本的任务可以从大样本量的任务中学习一些共享表示,以缓解任务数据的稀疏问题。

其次,多任务直接的相互促进,体现在:①多个模型特性互相弥补,比如在网页分析模型中,改善点击率预估模型也同时能促进转化模型学习更深层的特征;②注意力机制,MTL可以帮助训练模型专注在重要特征上面,不同的任务将为这种重要特征提供额外证据;③任务特征的“窃听”,也就是MTL可以允许不同任务之间相互“窃听”对方的特征,直接通过“提示”训练模型来预测最重要的特征。

再次,多任务的相互约束可以提高模型的泛化性。一方面多任务的噪声平衡。多任务模型的不同噪声模式可以让多个任务模型学到一般化的表征,避免单个任务的过度拟合,联合学习能够通过平均噪声模式获得更好的表征;另一方面,表征偏置。MTL的表征偏好会造成模型偏差。但这将有助于模型在将来泛化到新任务。在任务同源的前提下,可以通过学习足够大的假设空间,在未来某些新任务中得到更好的泛化表现。

行业场景落地,MTL如何解决现实问题

由于MTL具有减少大数据样本依赖和提高模型泛化表现的优势,MTL正被广泛应用到各类卷积神经网络的模型训练当中。

首先,多任务学习可以学到多个任务的共享表示,这个共享表示具有较强的抽象能力,能够适应多个不同但相关的目标,通常可以使主任务获得更好的泛化能力。

其次,由于使用共享表示,多个任务同时进行预测时,减少了数据来源的数量以及整体模型参数的规模,使预测更加高效。

我们以MTL在诸如目标识别、检测、分割等场景为主的计算机视觉的应用为例。

比如脸部特征点检测。因为脸部特征可能会受到遮挡和姿势变化等问题的影响。通过MTL能够提高检测健壮性,而不是把检测任务视为单一和独立的问题。

多任务学习希望把优化脸部特征点检测和一些不同但细微相关的任务结合起来,比如头部姿势估计和脸部属性推断。脸部特征点检测不是一个独立的问题,它的预测会被一些不同但细微相关的因素影响。比如一个正在笑的孩子会张开嘴,有效地发现和利用这个相关的脸部属性将帮助更准确地检测嘴角。

如上图人脸特征点检测(TCDCN)模型,除了检测特征点任务,还有识别眼镜、笑脸、性别和姿态这四个辅助任务,通过与其它网络的对比,可以看出辅助任务使主任务的检测更准确。

MTL在不同领域有不同应用,其模型各不相同,解决的应用问题也不尽相同,但在各自的领域都存在着一些特点,除上面介绍的计算机视觉领域,还有像生物信息学、健康信息学、语音、自然语言处理、网络垃圾邮件过滤、网页检索和普适计算在内的很多领域,都可以使用 MTL 来提升各自的应用的效果和性能。

比如,在生物信息学和健康信息学中,MTL被应用于识别治疗靶点反应的特征作用机制,通过多个群体的关联性分析来检测因果遗传标记,以及通过稀疏贝叶斯模型的自动相关性特征,来预测阿尔茨海默病的神经成像测量的认知结果。

在语音处理上的应用。2015年,有研究者在国际声学、语音与信号处理会议(ICASSP)上分享了一篇《基于多任务学习的深度神经网络语音合成》的论文,提出一种多任务叠层深层神经网络。它由多个神经网络组成,前一个神经网络将其最上层的输出作为下一个神经网络的输入,用于语音合成,每个神经网络有两个输出单元,通过共享两个任务之间的隐藏层,一个用于主任务,另一个用于辅助任务,从而更好地提升语音合成的准确度。

在网络Web应用程序中,MTL可以用于不同任务共享一个特征表示,学习web搜索中的排名提升;MTL可以通过可扩展分层多任务学习算法,用于找到广告中转换最大化的层次结构和结构稀疏性等问题。

总体上来说,在这些MTL的应用领域中,特征选择方法和深度特征转换方法得到研究者的普遍应用。因为前者可以降低数据维数并提供更好的可解释性,而后者通过学习强大的特征表示可以获得良好的性能。

MTL正在越来越多的领域作为一种提高神经网络学习能力的手段被广泛应用。这其实正是AI在众多行业实际应用中的常态化场景。

我们可以最终溯源反思一下,人类之所以能够具有多任务学习的灵活应用的能力,恰恰是因为所处环境正是处在多特征、多噪声的状况之下,这样必然要求我们人类必须能够触类旁通地进行先验的学习能力的迁移。而如果人工智能仅仅停留在单体智能上面,为每一类知识或任务都建立一套单独的模型,最后可能仍然只是一套“人工智障”的机械系统,闹出“白马非马”这类的笑话来。

当AI未来真正既能在融会贯通的方面像人类一样熟练,又能克服人类认知带宽和一些认知偏见,那通向AGI的前路才可能迎来一丝曙光。当然这条路还相当遥远。

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

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

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

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

相关文章

mysql sql先后执行_MySQL中SQL语句执行顺序

(7) SELECT(8) DISTINCT (1) FROM (3) JOIN(2) ON (4) WHERE (5) GROUP BY (6) HAVING (9) ORDER BY (10) LIMIT 前期准备工作1、新建一个测试数据库create database testData;2、创建测试表,并插入数据如下:用户表订单表准备SQL逻辑查询测试语句SELECT a.user_id,C…

《自然》:欧洲根据已知基因序列合成新冠病毒,助力疫苗开发

来源:澎湃新闻当地时间5月4日,国际顶级学术期刊《自然》(Nature)以“加快评审文章”(Accelerated Article Preview)形式在线发表了来自瑞士、德国、俄罗斯多家科研机构的一项研究“Rapid reconstruction of SARS-CoV-2 using a sy…

转:日志组件logback的介绍及配置使用方法

转自:http://blog.csdn.net/zgmzyr/article/details/8267072 一、logback的介绍 Logback是由log4j创始人设计的又一个开源日志组件。logback当前分成三个模块:logback-core,logback- classic和logback-access。logback-core是其它两个模块的基础模块。lo…

谷歌论文:使用深度强化学习的芯片布局

来源:半导体行业观察摘 要在本项目中,我们提出了一种基于学习的芯片布局方法,这是芯片设计过程中最复杂,最耗时的阶段之一。与以前的方法不同,我们的方法具有从过去的经验中学习并随着时间的推移而不断改进的能力。特别…

联动菜单实现思路

1: 选择select时,如何触发? 哪种事件? onchange2: 如何获取被选中的option的值 ? selectobj.value3: 动态生成option innerHTML <select name"add" οnchange"change()"><option value"">请选择</option><option value…

mysql中主从复制包括什么意思_Mysql主从复制作用和工作原理

一、什么是主从复制主从复制&#xff0c;是用来建立一个和主数据库完全一样的数据库环境&#xff0c;称为从数据库&#xff0c;主数据库一般是准实时的业务数据库。在最常用的mysql数据库中&#xff0c;支持单项、异步赋值。在赋值过程中&#xff0c;一个服务器充当主服务器&am…

吴建平院士:互联网视频技术在疫情防控中的重要作用

来源&#xff1a;互联网天地杂志疫情期间&#xff0c;要关注新一代信息技术助力疫情防控这个主题。最近新的技术非常多&#xff0c;但有一项技术可能被遗忘了&#xff0c;它属于新一代信息技术系列&#xff0c;在防控疾病或生活中发挥着很重要的作用&#xff0c;那就是互联网视…

java比较炫的小程序_推荐三款私藏多年的微信小程序

【小程序】(文后有福利)酷友们&#xff0c;大家好&#xff01;今天一次性给大家介绍三款实用的微信小程序吧。这三款微信小程序基本上可以卸掉对应的 APP 了。同等功能下的 APP 和 微信小程序&#xff0c;当然会选择后者嘛&#xff0c;不仅消耗内存小&#xff0c;而且方便。1. …

2019年全球数字化转型现状研究报告

来源&#xff1a;Prophet数字化是整个企业范围内的优先战略事项我们的年度《数字化转型现状》研究迎来第五个年头&#xff0c;继续记录企业的不断发展。随着颠覆性技术及其对各大企业和市场的影响力不断加大&#xff0c;我们的研究旨在捕捉促成现代数字化转型的变化和趋势。201…

java settcpnodelay_Python Twisted TCP socket如何设置TCP的NODELAY(禁用Nagle算法)?

我有一个正在继续开发的实时多人游戏(它目前在app store:https://itunes.apple.com/us/app/blewp!-eat-or-be-eaten-mmo/id996122625?mt8)上直播&#xff0c;我使用TCP和UDP发送实时消息(TCP用于需要可靠性的消息&#xff0c;比如玩家死亡)&#xff0c;服务器端是用python编写…

magent + memcached部署过程

magent memcached架构图 安装步骤如下&#xff1a; ------------------10.1.64.196 10.1.64.197 10.1.65.104 10.1.65.107 memcached (存储节点)---------------------------------------- yum install gcc mkdir /usr/local/src/memcached cd /usr/local/src/memcached ta…

BBC神作:半导体如何改变世界

来源&#xff1a;电子工程师笔记在纪录片领域BBC一直是打遍天下无敌手的存在作为纪录片王牌制作方近期&#xff0c;BBC与FedEx联合推出了神作Made on Earth系列《The humble mineral that transformed the world》作为零差评的重要一集用叹为观止的精良画面为观众讲述了半导体常…

jmeter练习(5)关联升级版—ForEach控制器(提取多个响应结果并依次传参)

前言&#xff1a;大多数情况下&#xff0c;我们会从上一个请求的响应结果中提取某一个值&#xff0c;作为第二个请求的参数进行传参&#xff0c;但是有时候为了提高测试效率&#xff0c;尽可能制造少的测试数据&#xff0c;我们需要从上一个请求的响应结果中获取某一组相同类型…

“天才少年”曹原再次连发2篇Nature!在魔角石墨烯取得系列新进展

来源&#xff1a;青塔、中国科学技术大学新创校友基金会、纳米人5月7日&#xff0c;被誉为“天才少年”的95后博士曹原分别以第一作者兼共同通讯作者、以及共同第一作者的身份&#xff0c;在《Nature》上连发2篇论文。第一篇Nature论文中&#xff0c;研究人员致力于通过对扭转角…

linux交叉编译aix_mips-linux-gcc交叉编译工具链搭建小结【转】

这几天开始做毕业设计了&#xff0c;MPEG2解码的MIPS实现&#xff0c;代码啥的网上一大堆&#xff0c;最大的困难也许不是理解代码&#xff0c;而是搭建环境&#xff0c;也就是搭建mips-linux-gcc交叉编译的环境。网上铺天盖地的都是arm-linux-gcc工具链的教程&#xff0c;唯独…

单链表的头插法和尾插法c语言实现

/*单链表的头插法和尾插法c语言实现*/ #include <stdio.h>#include <stdlib.h>#include <string.h>#define SIZE 100/*简单的定义一个链表节点的数据单元*/typedef struct student_t{ int num; char name[SIZE]; struct student_t* pNext;}studentList, *pSt…

torry的困惑java代码_Java实现 蓝桥杯VIP 算法提高 Torry的困惑(提高型)

算法提高 Torry的困惑(提高型)时间限制&#xff1a;1.0s 内存限制&#xff1a;512.0MB问题描述Torry从小喜爱数学。一天&#xff0c;老师告诉他&#xff0c;像2、3、5、7……这样的数叫做质数。Torry突然想到一个问题&#xff0c;前10、100、1000、10000……个质数的乘积是多少…

ICLR认知科学@AI workshop一览

来源&#xff1a; 混沌巡洋舰今年ICLR2020顶会有一个特别有意思的专题&#xff0c; 叫认知科学与AI顶会专题。在当下深度学习愈发进入瓶颈期的时代&#xff0c;认知科学和AI的交叉成为大势所趋。一方面我们希望把认知科学或心理学的知识用起来直接指导AI&#xff0c;另一方面我…

MySql某一列累计查询

问题&#xff1a;有一列数据&#xff0c;需要累计显示出来 比如&#xff1a;id salary 查询结果&#xff1a;id salary sumSalary 1 10000 1 10000 10000 2 20000 2 20000 30000 3 30000 3 30000 6…

java中一个线程最小优先数_Java线程的优先级

Java线程可以有优先级的设定&#xff0c;高优先级的线程比低优先级的线程有更高的几率得到执行(不完全正确&#xff0c;请参考下面的“线程优先级的问题“)。记住当线程的优先级没有指定时&#xff0c;所有线程都携带普通优先级。优先级可以用从1到10的范围指定。10表示最高优先…