阿尔法狗(AlphaGo)是第一个击败人类职业围棋选手、第一个战胜围棋世界冠军的人工智能程序,由谷歌(Google)公司的团队开发。其主要工作原理是“深度学习”。
2017年5月,在中国乌镇围棋峰会上,它与排名世界第一的世界围棋冠军柯洁对战,以3比0的总比分获胜。围棋界公认阿尔法围棋的棋力已经超过人类职业围棋顶尖水平。
起源
围棋,起源于中国,中国古代称为“弈”,可以说是棋类之鼻祖,围棋至今已有4000多年的历史。据先秦典籍《世本》记载:“尧造围棋,丹朱善之。”晋张华在《博物志》中继承并发展了这种说法:“尧造围棋,以教子丹朱。若白:舜以子商均愚,故作围棋以教之。”
1964年版的《大英百科全书》就采纳这种说法,甚至将其确切年代定在公元前2356年。
唐代诗人皮日休所作的《原弈》认为:“弈之始作,必起自战国,有害诈争伪之道,当纵横者流之作矣。岂曰尧哉!”
明朝陈仁锡在《潜确类书》中又提出“乌曹作博、围棋”。乌曹相传是尧的臣子,有的人又说他是夏桀的臣子。后来,董斯张的《广博物志》、张英的《渊鉴类函》等也采录了这种说法。
李世石对阵的机器人叫AlphaGo
阿尔法围棋(AlphaGo)是一款围棋人工智能程序,由位于英国伦敦的谷歌(Google)旗下DeepMind公司的戴维·西尔弗、艾佳·黄和戴密斯·哈萨比斯与他们的团队开发,这个程序利用“价值网络”去计算局面,用“策略网络”去选择下子。2015年10月阿尔法围棋以5:0完胜欧洲围棋冠军、职业二段选手樊麾;2016年3月对战世界围棋冠军、职业九段选手李世石。
2016年3月9日,谷歌旗下Deepmind的围棋程序“AlphaGo”就要和职业九段李世石对决了。去年10月,这个程序战胜了中国棋手职业二段樊麾;那是围棋AI第一次在公平比赛中战胜职业棋手。这一成果登上了今年1月的《自然》期刊,也引发了极其热烈的讨论——而最常被提出的问题就是,AI是不是终于要占领全世界了?
会唱歌,更会说冷笑话的Siri 来源:Apple
这个问题并不算杞人忧天,某种意义上AI已经占领了:从苹果的Siri,到日常浏览的搜索引擎,再到网络的文章推荐和商品推荐系统,这些全都是人工智能——哪怕它们不是科幻小说里那种,我们的日常生活也已经很难和它们分开。
但AlphaGo又和这些常见的AI不同。它们的差异在于学习方法和技术的通用性。
Siri:一个照本宣科的助手
Siri是一个“智能助手”,能听懂我们的口头命令,帮我们在网上搜索,帮我们在列表中找到联系人。但它的原理很简单:通过声音识别技术,将声音转化成语言的基本元素,比如元音、辅音、单词,然后和系统中内置的特殊命令比较。如果对比出来的是一个实际问题,那就执行相应的指令;如果对应上了一个空泛的问题,就从相对的段子库里挑个段子出来。
所以它的问题也就一目了然:要是你命令它去做系统中没有的命令,它就扑街了。Siri虽然是AI,但它是一个非常局限的AI:只能解决预先写好的问题。
面对东北大哥的挑衅,Siri懵逼了(也可能只是怂了。来源:Apple
深蓝:下棋无人能敌,但只限下棋
1997年,IBM制造的国际象棋机器“深蓝”战胜了当时的国际象棋世界冠军卡斯帕罗夫。这在人工智能历史上是一个标志性事件。但是,虽然深蓝战胜了世界冠军,它有和Siri一样的缺点:太专了。
作为程序,深蓝的软件是专门为国际象棋设计的。它评估盘面的四项标准包括子力、棋子位置、王的安全性还有布局节奏——显然,这些指标完全依赖于国际象棋本身的规则,没有任何扩展性。
卡斯帕罗夫对战“深蓝”的场景。来源:musejhuedu
即便如此,它也还是非常依赖于“蛮力”的。深蓝的硬件是当年最快的下棋机器,虽然有系统帮助筛选,它每秒依然要评估20亿个可能局面。为了应对这一需求,IBM当时为它开发了定制的硬件。
其结果就是,与其说它是一个国际象棋程序,不如说是一台国际象棋机器。深蓝只能下国际象棋,学不会围棋,连简单的五子棋也学不会。相比之下,作为人类的卡斯帕罗夫能学围棋,能学五子棋,还能学画画。深蓝的技术就像一把专门为国际象棋设计的钥匙,有很大局限。
自动驾驶汽车:迈出新方向
自动驾驶汽车的原理可以简化为以下几步:
首先它通过感应器了解周围环境,就像司机使用眼睛观察周围情况;
然后通过联网获得道路的路线情况,就像我们开车时候使用导航软件;
再然后计算机程序判断附近行人,汽车会如何运动;
最终计算自己最佳的线路,按着这条线路控制汽车的速度和方向。
Google的自动驾驶汽车。来源:Google
它特定于自动驾驶领域,但是基本思想和AlphaGo已经有些接近了。
IBM Watson:泛用的智能
2011年,IBM Watson在美国的真人答题节目Jeopardy!上击败了人类选手,它的技术理念更像AlphaGo。Watson的决策由四个步骤组成:首先是观察,从环境中收集数据,然后对数据做出假设,再然后是评估这些假设,最后是做出决定。不过也有些和AlphaGo不同的地方,首先它被设计成一个问答机器,其次训练Watson的时候需要人类专家的参与——比如关于癌症的问题,需要科学家们在海量的书籍论文中剔除过时的信息、错误的信息,把整理出的资料喂给机器。但至少,它能处理许多领域的能力,让它比它的同行们具有强得多的扩展可能:现在Watson已经被用于医疗领域了。
IBM Watson的logo 来源:IBM
那么,AlphaGo的技术思想是什么呢?
Deepmind创建AlphaGo,是试图通过增强学习技术(Reinforcement learning)构建通用的人工智能。它的理念中包含两个实体,一个是人工智能本身,一个是它所处的环境。人工智能和环境间的关系有两种,一种是通过传感器感知数据,另外一种是通过特定动作影响环境。因为环境的复杂性,它无法获得所有的信息,因此需要不断重复感知-反应的循环,以期望能在环境中有最大收益。绝大多数哺乳动物,包括人在内都符合这套规则。
增强学习技术不断地感知和反馈环境中的信息。来源:Google
在AlphaGo之前,他们已经利用这种思想,让AI打游戏。2015年,在《自然》杂志上发表的一篇论文,描述了如何让一个算法玩不同的Atari程序,包括了《太空侵略者》和《打砖块》等游戏。AI和人一样看游戏视频,和人一样 *** 作游戏,从游戏小白慢慢学习,变成游戏专家。AlphaGo也基于同样的原理,模拟人学习围棋的方法,它和人一样下棋,慢慢学会如何像专家一样思考。
这种技术理念所要求的是原始的数据,因此比起那些需要输入人工整理后的数据的方法有更强的通用性。原则上AlphaGo去学个围棋,五子棋都不是问题。
AlphaGo的技术首先被用于游戏的原因是因为,游戏比现实问题简单很多,无论是棋类游戏还是电脑游戏。游戏也很可能是类似技术第一个投入实用的领域:毕竟,随着游戏技术的发展,游戏开发者们逐渐意识到了好的AI和逼真的图像同样重要,不管是即时战略游戏,比如《星际争霸》还是角色扮演游戏中的NPC,高级人工智能不仅能成为强有力的对手,也可以变成优秀的团队伙伴。
但是,它最强之处当然是适应力和学习力。Deepmind声称,这种技术理念很快会被运用到医疗领域,尝试解决个性化医疗的问题。而这,肯定只是第一步。
本来其实不想写这个的,但是看到很多网友以及一些围棋职业选手提出了一些疑问,比如「Google 没有顶尖的棋手为什么能开发出顶尖的围棋机器人?」还有「机械为什么可以在如此直觉主导的游戏中战胜人类?」。这些问题事实上在人工智能领域已经有很多理论来做解释。而且这些理论也并不是 Google 提出的。AlphaGo 所使用的理论大多还是十余年前左右的论文的一些成果。在此之前,使用了这些理论开发出来的人工智能其实已经在 2006 年就已经在 9x9 的小棋盘上战胜周俊勋九段,之后在 2013 年 CrazyStone 程序就已经在让四子前提下战胜过石田芳夫九段,而就在去年,Facebook 的围棋机器人在不让子的前提下,胜过职业选手。至于之前「前百度深度学习研究院」的吴韧所开发的异构神机也使用的是类似的理论,也在前几天战胜过职业棋手。
这些方法上,AlphaGo 并无太大创新,很大程度上是 Google 团队实现得相对完善以及训练程度更好,以及人工智能算法的实现和调参存在很大的偶然因素。那么究竟是什么方法让机械拥有了和人一样直觉,而不是简单的机械化的思考。这事我们还是要从头讲起。
早在 1996 年,IBM 的深蓝计算机就战胜了国际象棋世界名将加里·卡斯帕罗夫。但象棋有一个特点,那就是每一步下的选择是相对非常有限的,最多也就十几种可能。哪怕是通过最最暴力的搜索方法,把每种都跑一遍,搜索几十步内的最优解。虽然这个方法随着搜索深度是指数级增长的,但事实上由于底数比饺小,依靠强大的算力还是可以解决的。而深蓝计算机正是这么一台拥有强大算力的超级计算机。
然而在围棋上,这样就不行了,因为围棋每一步都有上百种选择,如此大的底数纯粹的暴力就显然无法满足了。至少硬件的发展并非每年成百倍成百倍地快速增长的。同样的方法,显然是不适合使用在围棋上的。
在 2002 年之前,人们长期研究一个可以通过计算静态地分析出每一子的价值出来。然而这个方法的发展一直很慢。直到人们试图尝试一种动态评估一个博弈的一种方法,这就是靠 猜 。这个方法被称为蒙特卡洛搜索树,其前身是非常著名的上世纪曼哈顿计划期间由乌拉姆和冯·诺依曼提出的 蒙特卡洛方法 。
如果我们想知道圆周率的值,我们如何利用猜的方法来猜出圆周率呢?我们只需要在一个方形中随机而均匀地扔飞镖,数一下,多少个飞镖扔在了以方形边长为直径的圆里,多少扔在了外面,根据圆的面积公式和方形的面积公式就能把 π 算出来。而蒙特卡洛搜索树就是利用蒙特卡洛方法来优化搜索树。简单来说,就是,我们认为这一步下在一个地方是最优的,而我们不知道这地方在哪里。我们先通过一系列随机的采样,从而去猜测一个值,这个值可能是最优解,也可能是一个接近最优解的解。但至少,这可以用来估算像围棋这样大的棋盘的东西了,而不需要把每个细枝末节都同等对待地来暴力搜索。
解决完计算量的问题,我们还要来解决人类在围棋上最大的优势——直觉,或者说「大局观」。那么如何才能拥有大局观呢?我们想一下,人们在下围棋的时候,通常会先考虑下在哪个片区,以获得什么样的目的。而这就是所谓的大局观。
AlphaGo 的另一部分重要思想,得益于神经科学的发展,即人类认识人大脑神经的发展。人类愈发了解了大脑内神经元的工作模式,包括人类学习、认知的神经模型。这样的非常基础的模型,极大地方便了利用计算机来模拟人类进行学习的过程。
蒙特卡洛方法只是简化了计算,并不具备学习的能力。无论是单纯的蒙特卡洛搜索还是与 α-β 搜索结合的还是和置信区间结合一些版本,都与人类能越学越强的围棋技巧相比差上太多。至少,人脑是一个极其复杂的计算模型,哪怕是现在最好的计算机,其算力和整个大脑比起来还是差很多的。
在 2007 年,一些科学家试图提出一个新的机器学习模型,即所谓的深度学习。所谓深度学习,你可以看做模拟许多许多人脑中的神经元构成的一个网络。网络的每一层,针对一个特性进行识别。网络的每一层,都是一个单纯分类的无监督学习模型。你可以想像一下,人眼看到一个图像。经过一系列神经元,首先识别出了里面的眼睛、然后识别了里面的鼻子、嘴,再根据这些特性,发现这是一个人。这样依次发现的机制。而学习是通过一个有监督的反向传播进行。即告诉你这张图像里有一条狗,然后反向的一步步调整网络,让网络适应符合怎么样鼻子、嘴、眼睛的是一条狗。通过不断地数据的训练,即可以让模型越来越优。这个模型在图像识别领域已经达到甚至有时超越了人的识别能力。
而 AlphaGo 使用的就是深度学习来优化蒙特卡洛搜索树。在 AlphaGo 中有两个网络,一个是策略网络,一个是价值网络。策略网络即是一个大局观的网络,机器会先通过其经验,找出其应该做出进攻的反应还是防守的反应,表现在下在哪个片区是最为合适的,是不是应该跟棋之类的大问题。然后再通过蒙特卡洛搜索树去算出具体下在哪里是最合适的。
而我们说到,深度学习模型是真的和人一样可以学习的。每下一次棋,它就可以进一步调优自己的策略网络。首先 AlphaGo 导入了上千个职业选手对弈的棋谱,使得自己有了一个基础的下棋策略。这时候的 AlphaGo 就和一个受过系统训练的围棋少年一样了。然而这和职业选手的区别还是很大。这也就是所谓的「Google 没有顶尖的棋手为什么能开发出顶尖的围棋机器人?」按照一般常理,AlphaGo 应该一段一段地和人挑战,越发提高自己能力。然而 AlphaGo 不是这么做的,它选择和自己对弈。两台 AlphaGo 来对弈,将对弈的结果调优自己的网络。这个听起来很奇怪,为什么两个下得都不怎么样的棋手一起下棋,棋艺能那么快提升呢?因为它一天能和自己下上百万盘棋,它可以把自己分身成几万份跑在几万台电脑上,以及可以昼夜不停也不会过劳死,而这是任何一个人类都做不到的。AlphaGo 的开发人员说,他曾在早期能下赢 AlphaGo,而很快,AlphaGo 的水平就远超了他。所以 AlphaGo 得到了飞速的提升。仅仅五六个月,AlphaGo 就能从战胜欧洲棋王挑战到世界顶尖选手的水平了。
当然搞人工智能也要有基本法。这个基本法就是算力或者说是资源。虽然做了很大的优化,计算下围棋的计算量还是很大的。比起深蓝时依靠超级计算机来解决问题。AlphaGo 选择了一条适合 Google 的路径来解决算力问题。那就是分布式计算。使用分布式计算的 AlphaGo 版本比起不使用的版本其智能程度也是有相当大的提升。即使最简单,它也可以有更多时间来做随机的尝试,以找出更优的价值解。
同样利用深度学习优化蒙特卡洛搜索的 Facebook 围棋团队,相比 Google 就没有那么壕力冲天了。无论是开发资源还是人员来说也是远少于 Google。Facebook 的围棋机器人之前也取得了相当好的成绩,大概可以击败职业二段选手的水平。但是比起 AlphaGo,还是差上许多。
所以说,做这么一个人智能,背后的投入程度、重视程度也起到了很大的作用。这也是为什么深度学习目前做得很好的公司大多是一些顶尖的 IT 企业里的研发团队。
比起 AlphaGo 在围棋上的成就,其实大多数人很好奇人工智能未来的何去何从。从这次中,我们看到计算机已经具备了人类大局判断能力,其本质是类似于人类的学习能力,即不告诉电脑应该怎么做,而让电脑看人类是怎么做的。这项的应用其实相当广泛,尤其在非常复杂的问题上。
比如说,无人驾驶汽车之前发展很困难,是因为人们总是试图去把驾驶规则完全讲给电脑,而这点太过复杂,难以用纯逻辑说清。而今天 Google 的无人驾驶汽车也是使用的类似的深度学习的技术,让计算机观察人类开车并学习,从而模仿人类的判断。最终依靠计算机强大的算力和不会疲劳等特点,甚至超越人类的判断。
短期来看,利用深度学习的人工智能在未来数年内将会得到很大的应用。而这也是 Google 热衷于下围棋的原因。醉翁之意不在酒,在乎山水之间也。Google 只是想利用围棋来显示他们在深度学习应用上的先进水平。
就人工智能的最终目的来看,我们已经跨出了很大的一步。之前而言,我们很大程度局限于人类强大的抽象的思考能力,而模仿人类神经系统的模型已经很好地模拟了这种思考是怎么产生的了。进一步说,如果一个机器,拥有和人完全一样的眼睛、耳朵、鼻子、触觉等作为它的输入,以及类似于人类肌肉和关节的机械部件作为它的输出。并且模拟一个和人脑一样复杂程度的神经网络,并让它观察人类进行学习。是不是在某个未来,我们可以拥有和人类功能非常接近甚至超越人类的智能的出现。深度学习都为这样的强人工智能提出了理论上的基础。
以上就是关于第一个战胜围棋世界冠军的人工智能程序是什么全部的内容,包括:第一个战胜围棋世界冠军的人工智能程序是什么、李世石对阵的机器人叫什么、和Siri等AI相比,AlphaGo究竟有什么不一样等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)