揭秘:谷歌AlphaGo靠什么击败人类棋手?

03.02.2016  19:40

  日前《自然》杂志报道,谷歌研究开发的人工智能AlphaGo,以5:0完胜欧洲冠军、职业围棋二段樊麾,并将在3月份向世界最顶尖的围棋天才李世石发起挑战。消息一出,引起了广泛关注。

  1997年,国际象棋人工智能第一次打败顶尖的人类;2006年,人类最后一次打败顶尖的国际象棋人工智能。欧美传统里的顶级人类智力游戏,在电脑面前最终一败涂地。自那时起,人们对自身智力的安慰就是——还有围棋。

  然而,就在这人类智力游戏最后的一块高地,电脑也已兵临城下了。

  围棋人工智能长期以来举步维艰,顶级人工智能甚至不能打败稍强的业余选手。这似乎也合情合理:国际象棋中,平均每回合有35种可能,一盘棋可以有80回合;相比之下,围棋每回合有250种可能,一盘棋可以长达150回合。所以粗略来说,要是人工智能用暴力列举所有情况的方式,围棋需要计算250150种情况,大致是10360。而已经观测到的宇宙中,原子的数量才1080。这一巨大的数目,足以令任何蛮力穷举者望而却步——而人类,我们相信,可以凭借某种难以复制的算法跳过蛮力,一眼看到棋盘的本质。

  无论如何,枚举所有情况的方法不可行,所以研究者们需要用巧妙的方法来解决问题,他们选择了模仿人类大师的下棋方式。

  研究者们祭出了终极杀器——“深度学习”。深度学习是目前人工智能领域中最热门的科目,它能完成笔迹识别、面部识别、驾驶自动汽车、自然语言处理、识别声音、分析生物信息数据等非常复杂的任务。

  AlphaGo的核心是两种不同的深度神经网络:“策略网络”和“值网络”。它们的任务在于合作“挑选”出那些比较有前途的棋步,抛弃明显的差棋,从而将计算量控制在计算机可以完成的范围里,本质上和人类棋手所做的一样。

  其中,“值网络”负责减少搜索的深度——人工智能会一边推算一边判断局面,局面明显劣势的时候,就直接抛弃某些路线,不用一条道算到黑;而“策略网络”负责减少搜索的宽度——面对眼前的一盘棋,有些棋步是明显不该走的,比如不该随便送子给别人吃。将这些信息放入一个概率函数,人工智能就不用给每一步以同样的重视程度,而可以重点分析那些有戏的棋着。

  AlphaGo利用这两个工具来分析局面,判断每种下子策略的优劣,就像人类棋手会判断当前局面以及推断未来的局面一样。这样AlphaGo在分析了比如未来20步的情况下,就能判断在哪里下子赢的概率会高。

  研究者们用许多专业棋局训练人工智能,这种方法称为监督学习,然后让人工智能和自己对弈,这种方法称为强化学习,每次对弈都能让人工智能棋力精进。然后他就能战胜冠军啦!

  人类在下棋时有一个劣势,在长时间比赛后,他们会犯错,但机器不会。而且人类或许一年能玩1000局,但机器一天就能玩100万局。所以AlphaGo只要经过了足够的训练,就能击败所有的人类选手。(特约果壳网供稿)