- 在美国如何免费看电视:ROKU好用吗? [2013/10]
- 哈佛的故事:真假习明泽 [2015/04]
- 有史以来最蠢的哈佛学生? [2013/12]
- 华为思科的血海深仇是怎样结下的? [2018/12]
- 付不起学费?美国上大学的省钱之道 [2013/09]
- 在美国养个娃有多贵? [2015/01]
- 纽约哈莱姆区探秘 [2015/05]
- 学钢琴有用吗? [2011/09]
- 斯坦福直线加速器SLAC探秘 [2015/09]
- 我们应该为孩子买房吗? [2015/03]
- 加州湾区赌场开业,亚裔玩家蜂拥而至,是福还是祸? [2013/11]
- 卡梅尔:寻找张大千在加州的足迹 [2019/01]
- 529计划:最佳教育储蓄 [2015/02]
- 隐谷:斯坦福的私家花园 [2015/02]
- 跟着大宝去旅行 [2015/07]
- 如何计算在美国上大学的开支 [2012/08]
- 爱她恨她,诱惑难挡是宜家 [2012/11]
- 选择的负担:我们为什么要移民? [2014/10]
- 数学“诺贝尔奖”揭晓:又没中国人啥事 [2014/09]
- 好男人都死哪儿去啦? [2016/09]
- 中国教育是世界第一吗?从PISA考试谈起 [2013/12]
- 家有才女 大事不好 [2011/12]
- 假如我中了15亿美元 [2016/01]
- 美国大选:投了也白投,白投也要投 [2012/10]
- 进村一周年感言:桃源夜话 [2012/06]
白露为霜注:五个月前当谷歌的计算机程序阿尔法围棋(AlphaGo)击败欧洲围棋冠军樊麾二段时并没有太多人在意,樊麾的段位不算高,也不是很有名。然而今年三月阿尔法围棋同李世石之间的人机大战却完全不同,李九段雄居世界围棋顶尖多年,名声显赫。这个在五个月前还不咋样的计算机程序真有可能撼动人类顶尖的高手?绝大多数的人都认为是不可能的,李世石更是豪言要5:0取胜。
前天晚上第一场比赛吸引的众多的观众,Youtube的录像一天之内就有100万人观看。结果大出人意外,以李世石中盘认输收场。对此,除了震惊之外很多棋迷还不服气 - 李世石有些轻敌,或者选用不常见的开局是错误,等等。昨天晚上第二场比赛,AlphaGo持黑先行,李世石不敢大意,以较为常见的开局应对。局面一直非常胶着,黑棋气势站优,白棋拿实地稳扎稳打。中盘过后在现场用英文评论的Michael Redmond九段一遍又一遍地计算局面的得分,结论都是:很接近。突然,再算一遍后大惊失色:“黑棋领先了”。果然,不多久后李世石再次投子认输。
0:2落后,李世石堪堪要败,人类是不是快没戏了?这的确是很好的问题。再往下还有三场比赛,李世石应该还是有机会的,但这个计算机程序具有击败人类的顶尖棋手的能力已经是不争的事实。AlphaGo还不时下出精彩或出人意料的棋来,大有青出于蓝而胜于蓝的架式。
那么阿尔法围棋到底是何方神圣,它是怎样能进步如此神速呢?今年一月,谷歌的研究团队发了一篇博文,介绍阿尔法围棋所用的算法和策略。这篇博文来得正是时候,我把它翻译成中文,也可以让那些被惊呆的棋迷死个的明白。
其实大多数人不懂“黑暗”的力量有多么强大。击败李世石的AlphaGo多机分布系统动用了1202个CPU和176个GPU,拥有极为巨大的计算能力。这真的不能算是公平的比赛,就像李世石拿的是一把破菜刀而对手端着机关枪。但阿尔法围棋获胜的真正秘诀不是硬件,我个人的看法,是在于蒙特卡洛树搜索(Monte-Carlo Tree Search)的算法。正是这个算法,使得程序具有了自我学习的能力,并且能有效地控制搜索的复杂性。
白露为霜注:AlphaGo最终以4:1获胜。李世石战的很英勇,虽败犹荣。
阿尔法围棋:使用机器学习掌握古老的围棋
AlphaGo: Mastering the ancient game of Go with Machine Learning
游戏是测试与人类解决问题方法相似更聪明,更灵活的算法的一个很好的试验场。人类很早就开始创造能比最出色的人玩游戏玩的更好的程序 – 作为1952年一个博士生的毕业设计,计算机学会了第一个经典的游戏 - “玩圈和十字架”(noughts and crosses),也称为tic-tac-toe。接着1994年计算机在跳棋(checkers)上打败人类高手。IBM的“深蓝”在1997年击败国际象棋大师Kasparov更是轰动一时。计算机的成功并不局限于棋类,IBM的“华生”(Waston)在2011年获得Jeopardy的冠军。仅根据原始象素的输入,谷歌的算法还学会了玩数十种Atari游戏。
但有一种游戏一直让人工智能的企图遭受挫败:古老的围棋。2500年前发明于中国,目前世界范围下围棋的人数超过四千万人。围棋的规则很简单:玩家轮流将黑色或白色的棋子放在棋盘上,试图捕捉对手的棋子或者围成空地而得分。孔子曾经写过这个游戏,它的美感让它被提升到任何中国学者必需具备的四种技艺之一(注:琴棋书画)。下围棋主要靠直觉和感受,很多世纪以来一直因其精妙博大和思维的深度而让人们着迷。
但尽管规则很简单,围棋其实是极为复杂的游戏,围棋的搜索空间是如此的巨大,是10的100次方倍大于国际象棋的搜索空间 - 这个数字比整个宇宙所有原子的总和还要大。其结果是,传统的“蛮力”(brute force)人工智能方法 - 构建一个所有可能的下法的搜索树在围棋上无法做到。迄今为止,电脑下围棋的水平还是业余级的。专家预测至少需要10年时间电脑才有可能击败顶级专业围棋手。
我们认为这是一个难以拒绝的挑战!我们开始构建一个系统,阿尔法围棋(AlphaGo),来克服种种障碍。AlphaGo程序关键是将围棋巨大的搜索空间减少到可以对付的规模。要做到这一点,它将最先进的树搜索(tree search)方法同两个深度神经网络相结合,每个神经网络包含很多层的数以百万计的像神经元样的联结。一个神经网络称为“策略网络”(policy network)用来预测下一步的行动,通过只考虑最有可能导致胜利的下法来缩小搜索范围。另外一个神经网络叫“价值网络”(value network)用于减少搜索树的深度 – 评估在走每一步赢的可能性,一路搜索到游戏的结束。
AlphaGo的搜索算法比以前的方法更接近人的思维方法。例如,当“深蓝”下棋时,它使用比AlphaGo多数千倍的蛮力搜索。相反,AlphaGo使用一种称为“蒙特卡洛树搜索”(Monte-Carlo Tree Search)在它脑子中一遍又一遍地把剩下的棋下完。同以前的蒙特卡罗程序不同的是,AlphaGo使用深层神经网络来指导其搜索。在每个模拟游戏中,策略网络建议最聪明的下法,而价值网络则精确地评估下完这步后局面的优劣。最后,AlphaGo选择在模拟中最成功的下法。
我们首先使用从人类下的棋中的3千万种常用走法来训练策略网络,直到它可以以57%的准确度预测出人类的回应(AlphaGo前之前的纪录是44%)。但是,我们的目标是击败最好的人类棋手,而不仅仅是模仿他们。要做到这一点,AlphaGo必须学会发现新的策略。通过在神经网络之间下数以千记的棋,并在一种被称为“强化学习”一个试错的过程中不断改进。这种做法导致了更好的策略网络,这个网络是如此强大的,即使仅仅是没有树搜索的原始的神经网络就可以打败最先进的建有庞大的搜索树的程序。
这些策略网络再用来训练价值网络,同样是通过自我下棋来学习改进。这些价值网络可以评估任何围棋的局面,并计算出最后的优胜者 – 这个任务非常的困难,以前一直被认为是不可能完成的问题。
当然,所有这些都需要巨大的计算能力,所以我们大量使用谷歌云平台(Google Cloud Platform),这使得做人工智能(AI)和机器学习(ML)的研究人员能按照需求弹性的运用计算、存储和网络的能力。此外,用来数量计算的数据流图的开源库,如TensorFlow,使研究人员能够高效地部署多个中央处理器(CPU)或图像处理器(GPU)来满足深度学习算法的计算需要。
AlphaGo似乎做好了准备迎接更大的挑战。所以我们邀请了三次欧洲围棋冠军樊麾 – 从12岁时起就投身围棋的一个精英职业棋手,到我们在伦敦办公室进行挑战赛。这场比赛在去年10月5-9日之间进行。AlphaGo以5:0取胜 – 这是计算机程序第一次击败一个职业围棋手。
AlphaGo的下一个挑战将是在过去十年中一直处在世界颠峰的李世石。比赛在今年三月于韩国首尔举行。李世石很高兴接受挑战说:“我很荣幸地下这场人机大战,但我相信我能取胜。”这将被证明是一场引人入胜的比赛!
我们很高兴已经学会了围棋,从而完成了人工智能的重大挑战之一。然而,这一切对我们来说最有意义的是AlphaGo不仅仅手工编写的规则,建立了一个“专家系统”,而是使用通用的机器学习的技术,通过观看和自我下棋不断完善自身。虽然游戏是开发和快速高效地测试人工智能算法的完美平台,最终我们希望将这些技术应用于重要的现实问题上。因为我们所用的方法是通用的,我们希望有一天它们可以被扩展到帮助我们解决一些社会的最棘手和最紧迫的问题,从气候建模到复杂的疾病分析。
英文原文:
AlphaGo: Mastering the ancient game of Go with Machine Learning
网络直播人机大战第二局
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
First 99 moves |
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Moves 100-199 |
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Moves 200-211 |