AlphaGo
选自量子杂志
机器之心编译出品
编译:孙闰松、Not_God、微胖
围棋游戏程序捕捉到了人类直觉要素,这一进展有望产生深远影响。但是,作者并不认为AlphaGo 本身是一次革命性突破,毋宁说,它在这个极其重要的研发中处于领先地位:打造捕获直觉,学会识别模式系统的能力。计算机科学家已经努力了几十年,却没有取得重大进展。如今,神经网络的成功有望极好地扩大我们使用计算机解决问题的范围。
1997年,IBM 深蓝击败了世界象棋冠军,卡斯帕罗夫。那时,这场胜利被广泛描述为人工智能的里程碑。但是,结果表明,深蓝的技术对象棋有用,没有其他什么意义。计算机科学并未经历一场变革。AlphaGo,这个最近击败史上最强围棋选手的围棋游戏系统,会有不同吗?
我相信答案是肯定的,但是,并不是因为你可能听过的那些解释。许多文章提供专家证据,证明围棋比象棋难,这让这场比赛更加令人印象深刻。或者他们说,我们并不期待计算机会在以后十年里赢得围棋,因此,这是一个更大的突破。一些文章提供了(正确的!)观察,较之象棋,围棋有更多的落子可能性,但是他们并没有解释,较之人类,为什么这会对计算机造成更多的困难?
易言之,这些主张并没有解决核心问题:让AlphaGo赢得胜利的技术进步会有更广泛意义吗?为了回答这个问题,我们必须首先了解在何种方式上,导致AlphaGo的那些技术进步与导致深蓝的技术进步相比,有着质的不同,也更为重要。
国际象棋游戏中,初学棋手会学习对一个象棋棋子形成价值的概念。在一个系统中,一个马或者象相当于三个卒。一个车,活动范围更大,相当于五个卒。皇后,活动范围最大。国王价值无限,丢掉国王等于输了一盘棋。你能使用这些值预估怎么落子。放弃一个象,取对手的车?通常,这是个好主意。放弃马 和象,换取对手的车?这可不是个好主意。
在计算机国际象棋中,这种价值的概念非常关键。绝大多数计算机象棋程序搜索百万或数十亿的落子和对抗手段组合。程序的目标就是找到一系列落子方式,将系统的棋盘位置的值最大化,无论对手的落子顺序如何。
早期国际象棋程序评估棋盘位置,使用的是诸如‘一象抵三卒’的想法。但是,后来的程序使用了更加具体的象棋知识。比如,深蓝,组合了8,000多个不同功能因素,用于评估棋盘位置。深蓝并不只考虑一个车等于五个卒。假如同一方的卒位于车的前面,那么,卒会限制车的活动范围,减损车的价值。然而,如果卒被用作‘杠杆’(levered),意思是,能够通过捕获对手的卒而给车让路,深蓝会认为卒是半透明的( semitransparent),而且不会同样减损车的价值。
类似这样的想法,需要象棋细节方面的知识,这也是深蓝成功的关键。根据深蓝小组撰写的技术论文,在深蓝与卡斯帕罗夫的第二场对弈中,这个半透明的、作为杠杆的卒的概念至关重要。
最终,深蓝研发人员采用了两个主要想法。首先,打造一个功能,吸收许多象棋知识并评估给定棋盘位置。第二,使用巨大计算能力评估许多可能的落子位置,挑选一个,促成可能最好的最终棋盘位置。
如果将这一策略运用到围棋上,会发生什么?
结果表明,尝试过程中,你会碰到一个难题。问题在于想办法评估棋盘位置。顶尖围棋选手大量使用直觉来判断一个特定棋盘落子有多好。比如,他们会就‘良好状态’的棋盘位置做出模糊陈述。而且如何用简单、界定清楚的系统(比如,象棋棋子的价值)来表述这种直觉,并非立即一目了然。不幸的是,用传统套路来解决这个问题,即使经过数十年的尝试,仍然没有找到显而易见的方式来应用搜索策略(就像国际象棋那么成功),围棋系统依然让人失望。情况发生变化是在2006年,那年引入了所谓的蒙特卡洛树搜索算法,这种算法尝试一种新的评估办法,其基础是一种更加聪明的随机模拟游戏的方式。但是,围棋程序仍然落后人类棋手一大截。对棋盘位置的强烈直觉似乎才是成功关键。