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

01、2016年DeepMind团队(google旗下)的AlphaGo(一个围棋的AI)以4:1战胜顶尖人类职业棋手李世石 。她到底是怎么下棋的?

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

AlphaGo在面对当前棋局时,她会模拟(推演棋局)N次,选取“模拟”次数最多的走法,这就是AlphaGo认为的最优走法 。
例如图中,所有没有落子的地方都是可能下子的 , 但在模拟中,右下那步走了79%次,就选那一步了,就那么简单 。后面你会发现,“模拟”次数“最多”的走法就是统计上“最优”的走法 。
1、啥是模拟?
模拟就是AlphaGo自己和自己下棋 , 相当于棋手在脑袋中的推演 , 就是棋手说的“计算” 。
AlphaGo面对当前局面 , 会用某种(下面会讲)策略 , 自己和自己下 。其中有两种策略:往后下几步(提前终止 , 因为AlphaGo有一定判断形势的能力);或者一直下到终局(终局形势判断相对简单 , 对于棋手简单 , 对于机器还有一定难度 , 但是这个问题已经基本解决) 。对于棋手来说就是推演棋局 。
AlphaGo会模拟多次 , “不止一次” 。越来越多的模拟会使AlphaGo的推演“越来越深”(一开始就1步 , 后来可能是几十步),对当前局面的判断“越来越准”(因为她知道了后面局面变化的结果,她会追溯到前面的局面,更新对前面局面的判断) , 使后面的模拟“越来越强”(更接近于正解 , 她后面模拟出来的着法会越来越强) 。怎么做到的?看她怎么模拟的 。
注意,这里的模拟是下棋(线上)时的模拟 , 后面还会有个学习时的模拟 , 不要混淆了 。
2、AlphaGo怎么模拟的?
每次模拟中 , AlphaGo自己和自己下 。每步中由一个函数决定该下哪一步 。函数中包括了以下几个方面:这个局面大概该怎么下(选点:policy net) , 下这步会导致什么样的局面,我赢得概率是多少(形势判断:value net 和rollout小模拟),鼓励探索没模拟过的招法 。这些英文名词后面会有解释 。
模拟完一次后,AlphaGo会记住模拟到棋局,比如几步以后的棋局 。并且计算这时policy,value 。因为这时已经更接近终局了,这时的值会更加准确(相对于前面的模拟或局面) 。AlphaGo还会用这些更准的值更新这个函数,函数值就越来越准了,所以模拟的每一步越来越接近正解(最优的下法),整个模拟越来越接近黑白双方的最优下法(主变化 , principle variation),就像围棋书上的正解图一样 。到此为止,你已经大概了解AlphaGo她怎么工作的了,下面只是一些细节和数学了 。
3、那个函数是啥,好神奇?
这个函数,分为两个部分 。
Q是action value,u是bonus 。Q其实就是模拟多次以后 , AlphaGo计算走a这步赢的概率,其中会有对未来棋局的模拟(大模拟中的小模拟),和估计 。u中包括两个部分 。一方面根据局面(棋形)大概判断应该有那几步可以走,另一方面惩罚模拟过多的招法,鼓励探索其他招法,不要老模拟一步,忽略了其他更优的招法 。
4、Q(action value)具体是什么?
Q看上去有点复杂,其实就是模拟N次以后 , AlphaGo认为她模拟这步赢得平均概率 。
分母N是模拟这步棋的次数 。
分子是每次模拟赢的概率(V)的加和 。
其中V又包括两部分 , value net对形势的判断 。和一个快速模拟到终局,她赢的概率 。
value net是说她看这个这个局面,就要判断赢的概率,“不准”往下几步想了 。value net下面详细讲 。
快速模拟是说她看这个这个局面,自己和自己下完,看看黑白谁赢的概率高 。快速模拟是我们这个大模拟中的一个小模拟 。

推荐阅读