AlphaGo
2016-05-12陈鹏
陈鹏
2016年3月15日,一场引人瞩目的围棋人机大战在韩国首尔落下帷幕。Google旗下公司DeepMind研发的人工智能程序AlphaGo最终以4∶1的比分战胜了围棋世界冠军、韩国传奇围棋大师李世乭。赛后,AlphaGo被韩国棋院授予“名誉职业九段”称号。尽管这次比赛让人工智能占了上风,但这也表现了人类智能在人工智能领域的重大突破。
为何以围棋测“智”
围棋看起来规则很简单,但它却具有令人难以置信的深度和微妙之处。围棋棋盘上共有361个交叉点,每个点上都有黑、白、空三种可能状态。按照围棋的规则,下满整个棋盘会有361!(361的阶乘)种不同的过程,这是一个天文数字,所以,围棋一直被认为是人类智慧最后的堡垒。在1997年IBM公司超级国际象棋电脑“深蓝”战胜了国际象棋界棋王加里·卡斯帕罗夫后,人们曾经断言,由于围棋计算量庞大,在50年内,计算机在围棋上赢不了人类。
象棋和围棋这种棋类游戏的对弈规则比较明确,可以很方便地转化为计算机语言。对于计算机而言,围棋对弈就像是一棵枝繁叶茂的大树,从树干经过树枝最终到达树叶的每一条路径都可以认为是一个棋谱,从树干走到末端树叶的过程就是对弈的过程。树上的每一个分叉点都代表棋盘某个时刻的状态,连接相邻分叉点的树枝就是选择怎样走棋。
计算机可以根据这棵棋类游戏的“决策树”尽可能多地“了解”走棋方法。但只知道走法还不行,还要评价走的到底是不是一着好棋,这就需要一个合适的评估函数来帮助它进行选择。在象棋中,程序可以通过判断棋盘上棋子的数量判断得分,比如马3分,炮4分等。而在围棋中,职业高手在下棋的时候,往往会凭感觉去判断落子和局势,即所谓的“棋感”,由于难以把“棋感”准确地转化为计算机可以理解的计算问题,计算机程序对围棋的棋盘局面判断标准就不明确,从而难以量化每步棋走法的优劣。
综上所述,围棋落子可能性太多、计算量特别大以及计算机对棋盘局面判断标准不明确,这都导致计算机程序难以在合适的时间内计算出合理的结果。在AlphaGo之前,还从未有任何计算机程序可以战胜职业围棋手。所以,以围棋测“智”,可以有效判断人工智能到底有没有新的进展和突破。
AlphaGo的“伎俩”
近几年,随着人工神经网络和机器学习等相关理论的日益完善,人们终于有了新的有力武器来进行人工智能领域的突破。
围棋棋盘可以看作是一个19×19个交叉点的图,通过对大量的实际存在的完整棋谱进行分析处理,最终可以自动根据某一棋盘状态判断出下一步棋子的落子位置的概率分布,比如落在某一位置的概率是10%,另一个位置是17%等,于是AlphaGo根据概率的降序一一进行计算。
在AlphaGo计算的过程中,评估函数会判断每一步走棋的胜率,一旦胜率过低,便会停止计算。但是,如果计算到比较高的胜率,也会停止计算,直接按这种走法行棋。总的来说,AlphaGo不会计较整盘棋赢得漂亮不漂亮,而只会尽量保持较高的胜率。这样一来,AlphaGo也许也会走出不那么漂亮的棋,但细看却是保持了比较稳妥的棋风。事实上正是如此,因为其风格就是来自于人类的大量棋谱。
如此一来,就基本解决了计算量大的问题。与此同时,AlphaGo的评估函数是基于机器学习的,可以进行不断自动更新,AlphaGo就会采用更简单的走棋策略(节省计算量)直至决胜节点。按照上述算法计算出的走棋策略,如果胜利,AlphaGo会保证下一轮计算时此番策略更为优先被计算;反之,下一轮则会优先考虑其他的走棋策略。
在不断的学习过程中,AlphaGo会提取它认为正确的下法中所隐含的原理,调整它的走棋策略,逐步提高能力。此外,AlphaGo还可以自我对弈,“进化”速度非常快。Google对AlphaGo实现自我对弈3000万盘棋的生成训练集只需要一天左右的时间。通俗来讲,AlphaGo一天下的棋比整个历史上人类下的棋都多,人类在这方面处于绝对劣势。
运用简化计算、优化评估函数和自我对弈的策略,AlphaGo在测试阶段就“完爆”其他所有的围棋程序,也难怪它能在与围棋大师李世乭的对弈中占得先机。
人工智能与人类智能的双赢
读到这里,是不是要对AlphaGo的“智能”刮目相看?可事实上,人工智能也只是一群科学家的研究成果,说到底也只是人类实现智力成果的工具而已,并无自我意识,也没有创造出自我意识的基础。不可否认,AlphaGo是人工智能发展的胜利果实,但它同样也是人类智能发展的伟大成就。
人类使用工具的历史就是人类发展的历史,从古代的石器、金属工具,到近现代的电灯、电话、互联网等科技成果都在不同程度上解放了人类自身。伴随着人工智能的发展,人类的智力也将开始得到解放,人类将拥有某些智力方面更为好用的人工智能。人类自己创建的人工智能,也将为人类自身创造更为便捷、智能化的生活。