接上文继续拓展AlphaGo算法学习。
黄士杰(Aja Huang)使用MCTS融合策略和评价函数v(s) 的策略是:使用P(s)作为初始分开局,每局选择分数最高的方案落子,到第L步后,改用Pfast(s)把剩下的棋局走完,同时调v(sL),评估局面的获胜概率,按照如下规则更新整个树的分数:
新分数=调整后的初始分+0.5∗通过模拟得到的赢棋概率+0.5∗局面评估分
前两项和原来一样,如果待更新的节点就是叶子节点,局面评估分就是v(sL),如果是待更新的节点是上级节点,局面评估分是该叶子节点v(s) 的平均值。
如果v(s) 是表示大局观,Pfast(s)表示快速演算,那么上面的方法就是二者的并重,并且黄士杰团队已经用实验证明0.5 0.5的权重对阵其他权重有95%的胜率。
借用详解AlphaGo VS 樊麾 对局走下某一步的计算过程回顾整个过程:
a图使用局部评估函数计算出s 状态下其他落子点的胜率。
b图MCTS中使用局部评估函数加 Phuman(s) 得出的结果。
c图MCTS中使用Phuman(s)(复合算法)和Phuman−fast(s)走子走到底的结果。
d图深度卷积神经网络使用策略函数计算出来的结果。
e图使用新分数和相关流程计算出的落子概率。
f图演示了AlphaGo和樊麾对弈的计算过程,AlphaGo执黑,樊麾执白。红圈是AlphaGo实际落子额地方。1,2,3和后面的数字表示他想象中的之后樊麾下一步落子的地方。白色方框是樊麾的实际落子。在复盘时,樊麾认为1的走法更好(这说明在樊麾落子后AlphaGo也在进行计算)。
总结:整个AlphaGo使用的算法是基于深度卷积神经网络、MCTS、强化学习自对弈找出所面对不同棋盘状态的最佳下棋棋法,这个过程经历了先模仿学习人类历史棋谱,但是发现无法超越人类老师,接下来开始自己对弈探索更多人类没有走过的棋法,类似人类的自我尝鲜发掘新棋法,当掌握此技能之后就青出于蓝而胜于蓝,在自我学习的过程为何要用到MCTS,主要是降低搜索空间,因为围棋的状态是巨量无法遍历的,通过网络搜索,找到一个解释比较清晰的版本:围棋究竟有多少变化?大家公认有两种算法,其一,一盘棋下完,每个点都可能有三种情况,黑、白、空,所以围棋的变化是3的361次方,但是,这是唯结果论,因为即使每一种对局结果,都有n种不同的过程可以到达;我们更倾向于第二种算法,即第一步有361个点可以选择,第二步有360个点……以此类推,所以围棋的变化是361×360×359×……2×1,即361阶乘!这里还有两个问题,过程中产生禁入点,会减少一部分变化,而打劫的时候,同一个点会落子多次,又会增加很多变化,可以认为两者互相抵消,另外,由于棋盘是4方对称的,所以结果还要除以4,为了讨论方便,一般可以忽略除以4这个问题。假如不考虑这些细枝末节,361阶乘这个结果还是基本可信的。 361阶乘到底有多大?大约1.43乘以10的768次方,即1后面有768个零!这个数字远远超出人类的想象,要知道,即使人类已知宇宙中的原子数量,也不过是10的80次方。
从上面可以看出类似AlphaGo的人工智能真正的技术核心关键是计算能力、业务抽象能力、恰当的匹配算法,这三者缺一不可,也就是王煜全老师说的人工智能三要素算力+算法+数据,我这里把数据换成业务建模能力是基于能产生数据的前提来说的,所以从AlphaGo学习可以看到,王煜全老师说的人工智能平台是属于大公司的机会是完全正确的,因为算力不是普通小公司能解决的,以及为何英伟达为何有高估值,是因为建立起了计算能力门槛,假设未来量子计算的真正到来了,可以想象会是人工智能应用的强大助推剂,又或者找到了比MCTS更好的缩减计算策略。