形象化的比较,国际象棋的选择是有限的,每一步都大约有30多种选择,然后再下一步又有30多种选择,以此类推。实际上,国际象棋的这种树形结构很适合用传统的计算机方法去搜索并解决。而围棋的选择则要多得多,每一步都有几万种走法(several hundreds),而下一步又有几万种……由此形成的排列组合,对于传统的计算机或人工智能而言是无解的。
DeepMind是如何解决这个问题的呢?初版AlphaGo,也就是战胜了李世石的那个版本,核心是两个深度神经网络。深度神经网络有很多参数,这些参数可以通过训练进行调整,从而很好地对知识进行表征,真正理解领域里发生了什么事情。我们希望AlphaGo能够真正理解围棋的基本概念,并且全部依靠自己学习这些概念。
具体说,AlphaGo用了卷积神经网络,可以从每一层的一小块当中,得出一些更高层的理解,你可以简单理解为表示棋子在这种局势下会赢还是会输的特征,然后每一层以此类推,最终得到高层表征,也就是AlphaGo学会的概念。初版AlphaGo使用了12层网络,而Master版本的使用了40层。
AlphaGo使用两种不同的深度神经网络,第一种是策略网络,目标是选择在哪里落子。第二种则是价值网络,价值网络的作用是衡量走这一步对最终输赢的影响:棋盘的局部(patches)经过很多层很多层的表征处理,最终得出一个数字,这个数字就是代表这步棋会赢的概率,概率越大(接近1),那么AlphaGo获胜的概率就越大。 AlphaGo训练的过程,实际上结合了两种机器学习,首先是监督学习,其中人类棋谱被用作训练数据,然后结合强化学习,在强化学习过程中,系统通过试错不断提升自己,弄清哪种策略最好。这张图显示了AlphaGo的训练过程,先从大量的人类专家下棋的训练数据集开始,我们让策略网络所做的,就是学习人类专家的走法,不断调整参数,最终在每个位置走出跟人类专家一样的走法。
这就是策略网络,我们用策略网络做强化学习,也就是让策略网络不断自我对弈,在很短的时间里掌握什么是最好的下法。然后,我们用价值网络判断,每一步是黑棋赢还是白棋赢,就像人类专家通过直觉判断是否该这样走一样。
如果像往常一样,我们要去判断每一步赢的几率,那么计算力是不够的。在AlphaGo这里,我们结合策略网络和价值网络,大幅降低了搜索的难度。首先,我们用策略网络减少了搜索的宽度,然后用价值网络减少了搜索的深度。
这两种搜索算法的结合,也被称为蒙特卡洛树搜索方法,AlphaGo先使用策略网络选择怎么走,然后用价值网络判断这样走的赢率,最终得出一个数字。这个模拟过程会重复很多次,计算出每种不同走法的赢率。然后,这些数字会被传回一开始的部分,让系统决定走哪一步赢率最大。
上面说的这些就是跟李世石对战的AlphaGo的大致步骤。这张图显示了当时AlphaGo使用的硬件或者计算力支撑,使用了大约50块TPU,能够搜索(结合图中显示的数字)。看到这个数字你也许会认为AlphaGo做的计算量很大了,但实际上深蓝当时做的是AlphaGo的要做得多,每秒做上亿次计算。因此,可以说AlphaGo做的计算比深蓝要“更聪明”,更谨慎。 (责任编辑:本港台直播) |