这是迄今为止,AlphaGo算法最清晰的解读!( 二 )


Q就是看当下(value net),也看未来(快速模拟),来决定怎么模拟(对人来说就是往哪里想,对于棋手就是思考哪些可能的着法),下棋方(模拟中下棋方黑白都是AlphaGo)下那一步赢的概率高,从而决定模拟下那一步 。
5、u(bonus)具体是啥?
u中包括两个部分 。
分子是AlphaGo根据当前局面判断(policy net),不模拟 , 比如棋手根据棋形大概知道应该有哪几步可以走 。
分母是模拟到现在走当前步的累加,越大下次模拟越不会走这了 。
一句话,(Q u)就是决定模拟中,下棋方会走(模拟)哪里 。
到此,我们大概了解了AlphaGo的两大神器:value net(形势判断:模拟中 , 我走这步,我赢的概率是多少)和policy net(选点:模拟中,这个局面我走那几步最强) 。下面会揭开他们神秘的面纱 。
6、为什么选模拟次数最多的一步?
根据以上的函数可知,模拟次数最多一步,其实就是在多次模拟中,AlphaGo认为那一步最可能赢的次数的累加(或平均,除以总模拟次数) 。
7、为什么要分为policy net(选点)和value net(形势判断)呢,选点和形势判断不是一个东西吗?
确实 , 选点和形势判断是互相嵌套的 。首先,围棋的形势判断是非常困难的 。在围棋直播中我们经常看到,职业9段也不能准确判断当前局面,除非地域已经确定,没有什么可以继续战斗的地方,一般也就是接近终局(官子阶段) 。即使职业棋手 , 选点和判断也是定性的成分偏多,定量的成分偏少 。以前说中国顶级棋手古力能推演到50步,已经非常强了 。
再说嵌套问题,准确的定量的选点和判断,就要计算(对于棋手是在脑子里推演,对于机器就是模拟)才行 。在推演中 , 我选点走那步决定于,走这步后我赢的概率,而这个概率又决定于对手走那一步(我会假设对手弈出她最强的一步 , 对我最不利),对手走那一步决定于,她走那步后,她对形势的判断要对她最好,这又取决于我的下下步(第3步了)走哪里(对手她也会假设我会下出对她最不利的一步,自然对我最优),从而不断的嵌套,这个“死结”要到终局(或者接近)才能解开(终局形势判断比较简单) 。所以不到终局 , 判断形势是非常困难的,即使职业的9段也不行 。这就是围棋比象棋难的关键所在 , 它没有简单的形势判断的方法 , 而象棋有 。
要回答这个问题7还要看下面了 。
8、AlphaGo是怎么打开这个死结的?
AlphaGo没有进行直接的形势判断,就是没有直接学习value net,而是先做一个选点(policy net)程序 。选点可以认为是一个时序(走棋)的一个局部问题,就是从当前局面大概判断,有哪几步可能走,暂时不需要推演(那是模拟的工作) 。棋手的选点是会推演的,这里的基础policy net是不推演的,前已经看到AlphaGo线上模拟中选点(Q u)是有推演的 。
所以policy net是用在“每次模拟”中,搜索双方可能的着法,而最优步的判断是“N次模拟”的任务,policy net不管 。此外policy net还用来训练value net,也就是说,value net是从policy net 来的,先有policy 才有value 。
选点(policy net)能成立吗?如果不成立,也是没用 。
9、第一神器policy net怎么工作的?
先大概看下这个图 。现在轮到黑棋下,图上的数字是AlphaGo认为黑棋应该下这步的概率 。我们还发现 , 只有几步(2步在这个图中)的概率比较大,其他步可能性都很小 。这就像职业棋手了 。学围棋的人知道,初学者会觉得那里都可以走,就是policy(选点)不行,没有选择性 。随着棋力增长 , 选择的范围在缩小 。职业棋手就会锁定几个最有可能的走法,然后去推演以后的变化 。

推荐阅读