从20世纪90年代开始,计算机已连续在国际象棋、跳棋、扑克和电视问答等游戏中打败人类。但是,有一种游戏,专业的人类选手依旧胜过机器,那就是围棋。这项具有2500多年历史的棋盘游戏非常复杂,游戏双方分别用黑色和白色的棋子围住尽可能多的区域来战胜对方,这对于计算机来说很难掌握。但是人类在围棋领域唯我独尊的时代貌似已经结束——谷歌DeepMind的研究人员近日宣称他们开发出一种复杂的人工智能程序——融合了深度神经网络技术和搜索技术,在历史上首次打败了人类的围棋冠军。

去年十月,DeepMind团队在伦敦邀请了欧洲围棋冠军樊麾与他们的程序AlphaGo对弈。比赛是私下进行的,只有少数几个观众在场,他们在19乘19的网格棋盘上进行比赛。 AlphaGo在与CrazyStone和Zen等高端的围棋程序的495场对战测试中只输了一场。但是,与跟其他计算机比赛相比,与人类高手的对弈更具挑战性,毕竟职业选手更胜一筹——他们有多年的比赛经验,对于运筹博弈的方法有着某种直觉。因此,AlphaGo以5:0击败人类确实很了不起。

许多人曾预言,计算机若想打败人类围棋冠军至少还需要10年时间。亚马逊的著名软件工程师David Fotland在AlphaGo击败人类冠军后发出感慨,“这些年来,计算机性能的飞跃是出乎意料的,而且是空前的。”他也曾开发出一种计算机围棋程序,但他并没有参与此次AlphaGo的研究工作。对于AlphaGo的成功,David Fotland并没有惊讶。

要想了解DeepMind研究人员如何创造出这项令人钦佩的程序,我们首先必须意识到下好围棋对于计算机来说为什么这么难 (如果你并不了解围棋的规则和技巧,下文将给你带来清晰简明的解释)。第一,围棋有无数种可能的走法和结果——用研究人员的话来说,就是围棋中可能位置的数量比宇宙中原子的数目还要多。DeepMind的共同创始人Demis Hassabis是该项研究发起人之一,他将围棋和象棋做了比较,发现在象棋中每一回合平均有20种可能的走法,然而在围棋中,每一回合可能的走法却有将近200种,整整多了将近9倍。这意味着如果一台计算机想要探究围棋中所有可能的走法和结果,需要超强大的计算能力,曾有科学家甚至觉得完成这项工作几乎是不可能的。

JonathanSchaeffer是加拿大阿尔伯塔大学的一名计算机科学家,他解释说,计算机很难掌握围棋的另一个原因是,围棋选手需要大量的知识,需要吸取以前的比赛经验。对于象棋,你只需输入少量的信息就可以自己建立一个强大的游戏程序,但在围棋中却无法做到。这是因为,在象棋中,计算机可以按照程序中预先编写的规则走棋,但在围棋中使用这种策略是不可行的。因为围棋的每一步走棋是与棋局所呈现的格局息息相关的,而不是一系列可以有章可循的逻辑规则。

DeepMind团队开发的系统解决了搜索量巨大和知识匮乏的问题。在《自然》杂志中(有兴趣做深层探索的朋友可以一睹研究报告真容http://www.nature.com/nature/journal/v518/n7540/full/nature14236.html),他们表明是通过将搜索技术和深度学习技术结合,从而克服了这些困难。

为了解决知识问题,他们利用所谓的深度神经网络技术——两个13层深的逻辑关系网络,包括成千上万个连接点,类似于人类大脑中的神经连接。研究人员通过两种方法来训练这些关系网络:对于单个关系网络,他们向计算机展示了人类高手对决中超过3000万种的走法(这可以使系统学到最佳玩家是如何获胜的);对于两个关系网络,研究人员让计算机同自己进行上千次博弈,这样,它就能发现新的策略,并且自己学习这项游戏。这两种训练策略使计算机在游戏中可以识别不同的模式,并鉴定出如何走棋才能以最大的机会获胜。

对于棘手的搜索问题,研究人员开发了一种特殊的搜索技术,称为Monte Carlo Tree搜索。这种方法已经存在好多年了,并且被应用于其他计算机游戏,本质上是使系统利用统计数据作为捷径来决定最佳的走棋,而不是根据给定的走法计算出每一种可能的结果(在围棋中,如果这样,计算机会永远计算下去)。

DeepMind团队使用的搜索技术和深度学习工具并不新奇。许多计算机围棋程序已经在用Monte Carlo Tree搜索,神经网络技术也已被使用。但是,使DeepMind团队的AlphaGo程序如此先进的关键在于这些工具被结合到一起的方式,再加上深度神经网络的高性能。主要的新奇之处在于他们如何将这些不同的因素组合到一起——在这方面,他们的做法很有创新性。跟人们以前的做法相比,这种方法更简单,更全面,而且更优雅,这是一个巨大的飞跃。也正是因此,在与樊麾的比赛中,AlphaGo获得了很大的优势——计算机5:0获胜。

尽管不是所有人都关心计算机打败人类围棋冠军,因为他们并没有洞察到这一进步在其他领域也很重要。研究人员按照通用方法建立了该系统,而不是仅仅适用于围棋。他们打算最终将这些技术应用到重要的现实问题中。该项目的参与人Hassabis说:“我们希望有一天它们可以尽力帮助人们解决一些社会上最艰难、最紧迫的问题,从气候建模到复杂的疾病分析。” Yoshua Bengio说该程序在电脑对话中也可能会有重要的应用,而且在将来它还可能用来解决一些抽象的社会问题,这些问题可以通过游戏的方式来表述,像国家政治问题或者国际气候协商。

但是,AlphaGo的当务之急是如何打败全球最优秀的围棋选手李世石,他们之间的比赛将于下个月在韩国首尔举行。尽管AlphaGo在与樊麾的对决中表现出众,但Schaeffer和Fotland仍旧认为李世石将会赢得比赛。“我觉得人类职业选手会胜出,” Fotland说,“但是,面对如此强大的围棋程序,我相信人类高手会大吃一惊。”到现在为止,依旧有一部分人坚信人类选手会赢得这场比赛。3月9日鹿死谁手,让我们拭目以待吧!

举报/反馈

不会被计算机打败的棋类游戏,电脑首次打败人类围棋冠军意味着什么?相关推荐

  1. 计算机里的扫雷游戏,电脑扫雷游戏怎么玩

    扫雷是微软出的一款游戏,可是你会玩吗?其实很简单的,相信你学会了就一定可以体会其中的乐趣.下面是学习啦小编整理的电脑扫雷的玩法,供您参考. 电脑扫雷的玩法 首先在开始菜单里找到游戏,然后打开扫雷.点击 ...

  2. 计算机里有什么游戏,电脑上都有哪些游戏

    战神三十六计有哪些游戏特色?战神三十六计特色玩法介绍 战神三十六计怎么样好玩吗?下面小编就为大家介绍下战神三十六计的游戏特色. 乱世王者技能加点及手机模拟大师电脑上运行攻略 乱世王者作为一款战争策略游 ...

  3. AlphaZero炼成最强通用棋类AI,DeepMind强化学习算法8小时完爆人类棋类游戏

    [新智元导读]或许"智能爆炸"不会发生,但永远不要低估人工智能的发展.推出最强围棋AI AlphaGo Zero不到50天,DeepMind又一次超越了他们自己,也刷新了世人对人工 ...

  4. 【重磅】AlphaZero炼成最强通用棋类AI,DeepMind强化学习算法8小时完爆人类棋类游戏...

    2019独角兽企业重金招聘Python工程师标准>>> 世界最强围棋AI AlphaGo Zero带给世人的震撼并没有想象中那么久--不是因为大家都去看谁(没)跟谁吃饭了,而是Dee ...

  5. 【重磅】AlphaZero炼成最强通用棋类AI,DeepMind强化学习算法8小时完爆人类棋类游戏

    世界最强围棋AI AlphaGo Zero带给世人的震撼并没有想象中那么久--不是因为大家都去看谁(没)跟谁吃饭了,而是DeepMind再次迅速超越了他们自己,超越了我们剩下所有人的想象. 12月5日 ...

  6. AlphaZero进化论:从零开始,制霸所有棋类游戏

    2017年末,DeepMind推出了AlphaZero--一套能够从零开始自主学习国际象棋.将棋(类似于日本版的国际象棋)以及围棋的技艺,从而全面超越各项目世界冠军的系统. 对于这一系统带来的初步成果 ...

  7. python棋类程序_python棋类游戏编写入门

    刚接触棋类游戏程序编写的朋友,往往比较迷惑,不知从何下手. 本文总结了棋类游戏的主程序流程.计算机走子策略.打分方式(以井字棋.黑白棋.五子棋为例),未使用minimax算法,比较简单,适合刚接触的朋 ...

  8. 利用遗传算法演化一个棋类游戏的人工智能

    人工智能设计是大多数计算机游戏设计的一个重要组成部分,其最为主要的作用是塑造一个虚拟的玩家形象与游戏之中的真实玩家竞技或交流.目前在技术上说,大部分游戏之中的人工智能设计工作可以归结为有限状态机的设计 ...

  9. 计算机专业游戏毕业设计论文,计算机专业毕业论文(象棋游戏)

    计算机专业毕业论文(象棋游戏) (51页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 21.9 积分 智能中国象棋系统的设计与实现摘 要人工智能(AI)中 ...

最新文章

  1. 磁盘驱动读取系统MATLAB仿真,matlab读写..doc
  2. 2款不同样式的CSS3 Loading加载动画 附源码
  3. Javascript 常用功能收集-blogjava
  4. 经典正则表达式——常用的正则表达式
  5. LeetCode 39. 组合总和(排列组合 回溯)
  6. 源码调试debug_info 的作用和使用方法
  7. 锻炼产品架构思维的4个维度
  8. 量子密钥和量子计算机是什么关系,关于量子通信,这些问题你困惑过吗?
  9. 多语言网站开发 不完全技术分析收录
  10. Linux操作系统原理与应用04:内存管理
  11. 挑战杯获奖作品_我校学生参加河北省“挑战杯”竞赛获奖作品展示二
  12. python21天打卡Day5--list操作
  13. 如何加声调口诀_拼音声调口诀
  14. JavaSe基础总结
  15. Python3爬虫与多线程
  16. win10如何查看服务器日志文件,win10日志文件在哪里?小编教你查看win10日志文件的方法...
  17. android之DEX文件格式
  18. 数模2021暑期培训
  19. 项目管理过程中六种冲突解决方法
  20. Java两个线程交替打印奇偶数(两种方法对比)

热门文章

  1. 互联网金融真能救汽车电商的梦吗?
  2. Python3 学习第十一弹: 模块学习四之sys库
  3. 经常使用的时间同步server地址
  4. 项目发布: error CS0103: 当前上下文中不存在名称“*****”
  5. 解决android 异常导致应用程序停止运行的错误
  6. telegram 搭建 私聊机器人 转发私聊信息 保护隐私
  7. linux shell sed 添加空行
  8. GSS-API GSSAPI 介绍 通用的安全机制
  9. golang 返回值报错 cannot use nil as type string in return argument
  10. linux c 实现try catch异常捕获