前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >国际泰斗:现在谈强人工智能为时尚早

国际泰斗:现在谈强人工智能为时尚早

作者头像
人工智能快报
发布于 2019-03-07 06:39:58
发布于 2019-03-07 06:39:58
4700
举报
文章被收录于专栏:人工智能快报人工智能快报

人工智能快速发展,在许多领域取得重大影响,使得不少人担心可能会出现超级智能。DeepMind的联合创始人Demis Hassabis和加拿大多伦多大学教授Geoffrey Hinton两位国际泰斗在谈到强人工智能(AGI)时表示,强人工智能还有很长的路要走,目前谈之为时尚早。

预测音乐品味、检测转移性肿瘤、生成脑癌的合成扫描、根据真实世界的视频创建虚拟环境、识别被贩卖的受害者、击败国际象棋大师和专家级的Dota 2电子竞技队、取代司机成为出租车驾驶员,以上这些只是2018年人工智能(AI)系统取得的一些成功案例,也是该领域迅速发展的证据。据麦肯锡全球研究院的分析师预测:按照目前的发展速度,仅在美国,人工智能将在未来12年内帮助增加20%到25%的净经济效益(放在全球范围内,相当于13万亿美元)。

最令人印象深刻的一部分工作来自于对深度神经网络(DNN)的研究,这是一种基于数据表示的机器学习架构。它们是对大脑的松散建模:DNN包含一些由突触连接到一起的人工神经元(即数学函数),其中突触负责神经元之间的信号传输。这些神经元以层的形式排列,信号(馈送到DNN中的数据或输入)在层与层之间传输,可以通过调整每个神经连接的突触强度(权重)来缓慢地“调整”DNN。随着时间的推移,经过数百次甚至数百万次循环后,神经网络可以从数据集中提取出特征并找到样本的变化趋势,最终学会做出新的预测。

仅仅在三十年前,David Rumelhart、Geoffrey Hinton和Ronald Williams在一篇经典论文(“反向传播错误的学习表征”:Learning Representations by Back-propagatingErrors)中详细介绍了一种基本的权重计算技术——反向传播。在越来越便宜,越来越强大的计算机硬件的帮助下,反向传播已经在计算机视觉自然语言处理机器翻译、药物设计和材料检查等方面取得了巨大飞跃,其中一些DNN给出的结果优于人类专家。

那么DNN会导致超级智能机器人的出现吗?DeepMind的联合创始人Demis Hassabis不相信——如果答案是肯定的,他会知道的。DeepMind是一家总部位于伦敦的机器学习创业公司,其使命是将神经科学和计算机科学的知识应用于创建强人工智能——换句话说,就是使机器系统可以成功执行人类能够胜任的任何智能任务。

在2018年12月初于蒙特利尔举行的NeurIPS 2018年会议上,Demis Hassabis表示:“还有很长的路要走。从某些角度来讲,游戏或棋盘游戏是非常简单的,因为不同状态之间的过渡模式非常明确且易于学习。要弄清楚现实世界的3D环境和现实世界本身则要复杂得多,但如果你要制定某项计划,这是很重要的。”

Hassabis是国际象棋神童和剑桥大学毕业生,在其职业生涯早期担任了电子游戏《主题公园》和《黑与白》的首席程序员——在伦敦大学学院、麻省理工学院和哈佛大学学习过神经科学,并对自传记忆和情景记忆系统进行了协作研究。他在2010年与人联合创立了DeepMind,仅仅三年后就推出了一个开创性的人工智能系统。该系统仅使用原始像素作为输入,能够快速通关Atari游戏。

自从谷歌以4亿英镑收购DeepMind以来,该机构和其医学研究部门DeepMind Health已经因为AlphaGo和与伦敦大学学院医院的合作而长期占据新闻头条。AlphaGo是一个人工智能系统,曾在中国围棋游戏中击败世界冠军Lee Sedol,而伦敦大学学院医院制作的模型在CT扫描分割上表现出“接近人的表现”。最近,DeepMind的研究人员推出了蛋白质折叠算法——AlphaFold。由于成功地从43种蛋白质中找到了其中25种蛋白质的最准确结构,该算法在第13次蛋白质结构预测技术评估(CASP)中获得一等奖。2018年12月,DeepMind在《科学》杂志上发表了一篇论文,介绍了作为AlphaGo精神延续的AlphaZero系统。它可以玩三种不同的游戏——国际象棋、一种被称为shogi的日本象棋,以及围棋—其表现好到足以击败著名的人类玩家。

尽管DeepMind取得了令人瞩目的成就,但Hassabis警告说,他们并不认为强人工智能即将来临——远非如此。他说,人们是利用内在认识来对世界进行预测和规划的,这种方式与今天的人工智能系统不同。与围棋、国际象棋和shogi棋的新手相比,AlphaGo和AlphaZero在信息方面处于劣势。Hassabis说:“这些AI系统首先要学习观察,然后才能学会玩游戏。与算法相比,人类玩家可以更快地学习,可以快速地将根据像素得出主题,以确定是他们需要逃离目标还是靠近它。”

为了让AlphaZero这样的模型打败人类,需要对它进行70万个步骤的训练—每个步骤代表4096个棋盘位置—所使用的系统配备了数千个由谷歌设计的应用程序专用芯片,这些芯片针对机器学习进行了优化。这大约相当于针对国际象棋进行9小时的训练,针对shogi棋进行12小时的训练,针对围棋进行13天的训练。

DeepMind并不是唯一一个致力于解决当前人工智能设计局限性的公司。在今年早些时候的一篇博文中,一个总部位于旧金山的非盈利性人工智能研究公司OpenAI宣布他们已经开发出了OpenAI 5。在今年夏天的一次Dota 2游戏中,该软件成功击败了一个包含四名专业游戏玩家的五人游戏小组。OpenAI得到了Elon Musk、Reid Hoffman和Peter Thiel及其他一些科技界杰出人士的支持。该组织表示,借助运行于谷歌云平台的256个Nvidia Tesla P100显卡和12.8万个处理器核心,该系统每天可以玩相当于180年的游戏(80%的游戏与自己对抗,20%对抗旧算法)。但即使在完成所有训练之后,它仍然难以将获得的技能应用于特定游戏之外的任务。

Hassabis说:“我们没有能够将知识从一个领域转移到下一个领域的有效系统。我认为我们需要一些新的概念或提取方法来做到这一点。针对游戏建立模型相对容易,因为从一个步骤到另一个步骤很容易,但我们希望创造具有模型生成功能的系统,这将使得在这些环境中做规划变得更容易。”

当前的大多数人工智能系统也没有很好的扩展性。Alphazero、Alphago和OpenAI 5利用了一种被称为强化学习的编程方式。在这种方式中,由人工智能控制的软件代理能够学会在某个环境中采取行动,例如棋盘游戏或多人在线对战游戏(MOBA),以获得最大奖励。

Hinton在接受采访时说:“想象一个Skinner盒子系统是很有帮助的。”Skinner盒子的名字来源于哈佛大学的先驱心理学家B.F. Skinner。他利用操作性条件作用来训练受试动物,使其执行某种动作,如按下杠杆,以响应光或声音等刺激。如果受试者正确完成任务,它们会得到某种形式的奖励,通常是以食物或水的形式。

在人工智能的研究中,强化学习方法的问题在于奖励信号往往是“懦弱的”,Hinton说。在某些环境中,在从随机数据中寻找模式时,代理可能会卡住——即出现所谓的“电视噪音问题”。

Hinton表示:“每隔一段时间你就会得到一个标量信号,告诉你你做得很好。但信号的频率不高,信息量也不大,而你需要做的是在这个非常懦弱的信号的基础上,用数百万个参数或数万亿个参数训练系统。你能做的是使用大量的计算——许多令人印象深刻的演示都依赖于大量的计算。这是一个方向,但它并不真正吸引我。我认为研究人员需要的是更好的见解。”

与Hassabis一样,Hinton在过去30年里一直在应对人工智能的一些最大挑战,现在他正在与谷歌的谷歌大脑深度学习研究团队和多伦多大学进行合作,而他很清楚自己工作的意义—有人把他称为“深度学习之父”。除了DNN中的开创性工作之外,Hinton还在机器学习、感知、记忆和符号处理等方面撰写或合作撰写了200多篇同行评审的文章。最近他正在将注意力转向胶囊神经学(capsule neural networks)。这是一种机器学习系统,其结构能够帮助构建更稳定的表示方式。他说,数十年来的集体研究让他相信,解决强化学习的可伸缩性问题的方法是利用层次结构加强信号。

“假设你有一个很大的组织,强化信号最先到达,而首席执行官被告知公司今年获得了大量利润——这就是对他的强化信号,”Hinton解释道:“我们假设它每隔15分钟出现一次。没有太多的信号来培养一大堆人来完成几项任务,但如果首席执行官手下有一些副总裁,并给每位副总裁制定了一个目标,以获得最大奖励,这会带来更多的利润,而他将得到回报。”

在这种安排中,即使奖励没有兑现——也许是因为模拟的首席执行官给副总裁制定了一个错误的目标——这个周期也会继续,Hinton表示。副总裁总是能够学到一些东西,这些东西最终可能在未来变得有用。“通过制造子目标,并分派人来实现这些子目标,你就可以通过创造更的多懦弱信号来放大这些懦弱信号,”他补充说。

这是一个复杂的思维实验。这些副总裁需要一个沟通目标、子目标和相关奖励条件的渠道,即中低层经理。系统中的每个“员工”都需要能够决定他们是否做了正确的事情,这样他们就会知道为什么要奖励他们。所以他们需要一个语言系统。

“问题在于创造一个系统,允许某些模块为其他模块创建子目标,”Hinton说:“你可以想象一个拥有一只有牧羊犬的牧羊人。他们需要创造一种不依赖于英语的语言,使得训练有素的牧羊犬和牧羊人可以很好地交流。但想象一下,如果牧羊犬有自己的随从犬会出现什么情况。它必须从这些手势和其他信息中获取来自牧羊人的命令,并需要创造与其他牧羊犬交谈的方式。”

幸运的是,最近一个名为“变形金刚”的AI可能朝着正确的方向迈出了一步。谷歌的研究人员推出了一种新型的神经结(即上述的变形金刚),能够在语言翻译任务中超越最先进的模型,同时只需要较少的计算来完成训练。”

基于其在变形金刚中的工作,谷歌于2018年11月开源了基于变形金刚的双向编码器表示(Bidirectional Encoder Representations fromTransformers),即BERT。通过预先训练,BERT可以根据任意语料库生成的任务来学习构建句子之间的关系,并使开发人员能够基于一个云TPU(张量处理单元,谷歌的云托管加速器硬件)在30分钟内训练出一个最先进的NLP模型,或使用单个图形处理单元耗费几个小时来完成。

“变形金刚是拥有路由功能的神经网络,”Hinton解释道:“目前在神经网络中,活动变化很快,但权重变化缓慢,这就是现状。生物学告诉你,你想要做的是拥有快速变化的活动,然后你想在许多不同的时间尺度上修改突触,这样你就可以记住最近发生的事情,而且很容易回忆。使用变形金刚,一群神经元会创造出一些信息,而且它不仅仅将这些信息发送给它所连接的每个神经元——它会试图把它们发送给那些知道如何处理的神经元,而不会发送给那些不知道如何处理的神经元。”

这不是个新的主意。Hinton指出,在20世纪70年代,神经网络的大部分工作都聚焦于记忆,其目标是通过修改权重来存储信息,以便重新创建信息,而不是简单地从某种形式的存储中提取信息。他说:“实际上,你不会像在文件柜里保存文件那样把这些信息存储起来——你会修改参数,导致如果我给你一点东西,你就可以把其余的内容填充起来,就像利用一些碎片制作恐龙一样。我要说的是,我们应该把这个想法用于短期记忆,而不仅仅是长期记忆,它将解决各种各样的问题。”

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-01-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 人工智能快报 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
Java四种线程池的使用
Java通过Executors提供四种线程池,分别为: newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。 newFixedThreadPool 创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待。 newScheduledThreadPool 创建一个定长线程池,支持定时及周期性任务执行。 newSingleThreadExecutor 创建一个单线程化的线程池,它只会用唯一的工作线程来执行任务,保证所有任务按照指定顺序(FIFO, LIFO, 优先级)执行。
Java架构师历程
2018/09/26
4600
Java四种线程池的使用
(十四)Java并发-线程池
(1). newCachedThreadPool 创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。示例代码如下:
用户1212940
2022/04/13
2640
Java四种线程池
b. 线程缺乏统一管理,可能无限制新建线程,相互之间竞争,及可能占用过多系统资源导致死机或oom。
互扯程序
2019/05/09
7430
Java 四种线程池的使用
介绍new Thread的弊端及Java四种线程池的使用 1,线程池的作用 线程池作用就是限制系统中执行线程的数量。 根据系统的环境情况,可以自动或手动设置线程数量,达到运行的最佳效果。 少了浪费了
程序员鹏磊
2018/02/09
9970
java创建线程池的四种方式_线程池对象的创建方式
newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。 newFixedThreadPool 创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待。 newScheduledThreadPool 创建一个定长线程池,支持定时及周期性任务执行。
全栈程序员站长
2022/11/10
5150
Executor的介绍及线程池的应用
Executors少了一个创建线程池的方法newScheduledThreadPool()
余生大大
2022/11/02
2690
Executor的介绍及线程池的应用
线程池
线程池的作用: 线程池作用就是限制系统中执行线程的数量。      根据系统的环境情况,可以自动或手动设置线程数量,达到运行的最佳效果;少了浪费了系统资源,多了造成系统拥挤效率不高。用线程池控制线程数量,其他线程排队等候。一个任务执行完毕,再从队列的中取最前面的任务开始执行。若队列中没有等待进程,线程池的这一资源处于等待。当一个新任务需要运行时,如果线程池中有等待的工作线程,就可以开始运行了;否则进入等待队列。 为什么要用线程池: 1.减少了创建和销毁线程的次数,每个工作线程都可以被重复利用,可执行
汤高
2018/01/11
1K0
Java 六种线程池介绍
(1)newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。 线程池为无限大,当执行第二个任务时第一个任务已经完成,会复用执行第一个任务的线程,而不用每次新建线程。 可能导致内存溢出,一般使用newFixedThreadPool代替
Jensen_97
2023/07/20
3290
Java中常用的四种线程池
在Java中使用线程池,可以用ThreadPoolExecutor的构造函数直接创建出线程池实例,如何使用参见之前的文章Java线程池构造参数详解。不过,在Executors类中,为我们提供了常用线程池的创建方法。接下来我们就来了解常用的四种:
万猫学社
2022/04/22
8080
java线程池模型
一, 线程池与普通线程 1 普通线程 Java实现多线程,常见的有以下三种方式: 1 继承Thread,重写该类的run()方法 2 实现Runnable 实现Runnable接口,并重写该接口的run()方法,该run()方法同样是线程执行体,创建Runnable实现类的实例,并以此实例作为Thread类的target来创建Thread对象,该Thread对象才是真正的线程对象。 3 使用Callable和Future接口创建线程。 具体是创建Callable接口的实现类,并实现clall()方法。并使用
Spark学习技巧
2018/01/31
1.5K0
java线程池模型
016.多线程-线程池的四种创建方式
版权声明:本文为博主原创文章,允许转载,请标明出处。 https://blog.csdn.net/qwdafedv/article/details/84256291
qubianzhong
2018/12/14
1.3K0
016.多线程-线程池的四种创建方式
Java多线程:还不懂线程池吗?一文带你彻底搞懂!
总体来说,线程池有如下的优势: (1)降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。 (2)提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行。 (3)提高线程的可管理性。线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一的分配,调优和监控。
Java小朔哥
2019/08/13
6510
线程池介绍及创建线程池的4种方式是什么_程序可以创建几个线程池
Java中的线程池是运用场景最多的并发框架,几乎所有需要异步或并发执行任务的程序 都可以使用线程池。在开发过程中,合理地使用线程池能够带来3个好处。 第一:降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。 第二:提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行。 第三:提高线程的可管理性。线程是稀缺资源,如果无限制地创建,不仅会消耗系统资源, 还会降低系统的稳定性,使用线程池可以进行统一分配、调优和监控。但是,要做到合理利用 线程池,必须对其实现原理了如指掌。
全栈程序员站长
2022/11/10
5420
线程池介绍及创建线程池的4种方式是什么_程序可以创建几个线程池
JDK1.8 创建线程池有哪几种方式?
定长线程池,每当提交一个任务就创建一个线程,直到达到线程池的最大数量,这时线程数量不再变化,当线程发生错误结束时,线程池会补充一个新的线程
猫头虎
2024/04/07
1560
线程池如何创建线程_创建线程池的七个参数
Executors 类是从 JDK 1.5 开始就新增的线程池创建的静态工厂类,它就是创建线程池的,但是很多的大厂已经不建议使用该类去创建线程池。原因在于,该类创建的很多线程池的内部使用了无界任务队列,在并发量很大的情况下会导致 JVM 抛出 OutOfMemoryError,直接让 JVM 崩溃,影响严重。
全栈程序员站长
2022/11/10
1.2K0
线程池:治理线程的法宝
在当今计算机的CPU计算速度非常快的情况下,为了能够充分利用CPU性能提高程序运行效率我们在程序中使用了线程。但是在高并发情况下会频繁的创建和销毁线程,这样就变相的阻碍了程序的执行速度,所以为了管理线程资源和减少线程创建以及销毁的性能消耗就引入了线程池。
用户1516716
2020/02/20
8340
线程池:治理线程的法宝
线程池的7种创建方式,强烈推荐你用它...
根据摩尔定律所说:集成电路上可容纳的晶体管数量每 18 个月翻一番,因此 CPU 上的晶体管数量会越来越多。
磊哥
2020/12/21
5900
线程池的7种创建方式,强烈推荐你用它...
1.11 手把手教你从多线程到线程池
单CPU系统中: 每一时刻只能有一道程序执行,即微观上这些程序是分时的交替运行,只不过是给人的感觉是同时运行,那是因为分时交替运行的时间是非常短的。 多CPU系统中: 则这些可以并发执行的程序便可以分配到多个处理器上(CPU),实现多任务并行执行,即利用每个处理器来处理一个可以并发执行的程序。
ha_lydms
2023/08/09
2540
1.11 手把手教你从多线程到线程池
(五)四种线程池底层详解
可以看到corePoolSize、maximumPoolSize都是 1 ,keepAliveTime 是 0 ,使用的是LinkedBlockingQueue队列。
HaC
2020/12/30
5300
jdk提供的线程池_创建线程的三种方法
定长线程池,每当提交一个任务就创建一个线程,直到达到线程池的最大数量,这时线程数量不再变化,当线程发生错误结束时,线程池会补充一个新的线程
全栈程序员站长
2022/11/10
2580
相关推荐
Java四种线程池的使用
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档