中國IDC圈6月3日報道,DeepMind團隊(google旗下)的 AlphaGo (一個圍棋的AI)以4:1戰(zhàn)勝頂尖人類職業(yè)棋手李世石。她到底是怎么下棋的?
AlphaGo在面對當前棋局時,她會模擬(推演棋局)N次,選取“模擬”次數最多的走法,這就是AlphaGo認為的最優(yōu)走法。
例如圖中,所有沒有落子的地方都是可能下子的,但在模擬中,右下那步走了79%次,就選那一步了,就那么簡單。后面你會發(fā)現(xiàn),“模擬”次數“最多”的走法就是統(tǒng)計上“最優(yōu)”的走法。
1.啥是模擬?
模擬就是AlphaGo自己和自己下棋,相當于棋手在腦袋中的推演,就是棋手說的“計算”。
AlphaGo面對當前局面,會用某種(下面會講)策略,自己和自己下。其中有兩種策略:往后下幾步(提前終止,因為AlphaGo有一定判斷形勢的能力);或者一直下到終局(終局形勢判斷相對簡單,對于棋手簡單,對于機器還有一定難度,但是這個問題已經基本解決)。對于棋手來說就是推演棋局。
AlphaGo會模擬多次,“不止一次”。越來越多的模擬會使AlphaGo的推演“越來越深”(一開始就1步,后來可能是幾十步),對當前局面的判斷“越來越準”(因為她知道了后面局面變化的結果,她會追溯到前面的局面,更新對前面局面的判斷),使后面的模擬“越來越強”(更接近于正解,她后面模擬出來的著法會越來越強)。怎么做到的?看她怎么模擬的。
注意,這里的模擬是下棋(線上)時的模擬,后面還會有個學習時的模擬,不要混淆了。
2.AlphaGo怎么模擬的?
每次模擬中,AlphaGo自己和自己下。每步中由一個函數決定該下哪一步。函數中包括了以下幾個方面:這個局面大概該怎么下( 選點:policy net),下這步會導致什么樣的局面,我贏得概率是多少(形勢判斷:value net 和rollout小模擬),鼓勵探索沒模擬過的招法。這些英文名詞后面會有解釋。
模擬完一次后,AlphaGo會記住模擬到棋局,比如幾步以后的棋局。并且計算這時policy,value。因為這時已經更接近終局了,這時的值會更加準確(相對于前面的模擬或局面)。AlphaGo還會用這些更準的值更新這個函數,函數值就越來越準了,所以模擬的每一步越來越接近正解(最優(yōu)的下法),整個模擬越來越接近黑白雙方的最優(yōu)下法(主變化,principle variation),就像圍棋書上的正解圖一樣。到此為止,你已經大概了解AlphaGo她怎么工作的了,下面只是一些細節(jié)和數學了。
3.那個函數是啥,好神奇?
這個函數,分為兩個部分。
Q是action value,u是bonus。Q其實就是模擬多次以后,AlphaGo計算走a這步贏的概率,其中會有對未來棋局的模擬(大模擬中的小模擬),和估計。u中包括兩個部分。一方面根據局面(棋形)大概判斷應該有那幾步可以走,另一方面懲罰模擬過多的招法,鼓勵探索其他招法,不要老模擬一步,忽略了其他更優(yōu)的招法。
4.Q(action value)具體是什么?
Q看上去有點復雜,其實就是模擬N次以后,AlphaGo認為她模擬這步贏得平均概率。
分母N是模擬這步棋的次數。
分子是每次模擬贏的概率(V)的加和。
其中V又包括兩部分,value net對形勢的判斷。和一個快速模擬到終局,她贏的概率。
value net是說她看這個這個局面,就要判斷贏的概率,“不準”往下幾步想了。value net下面詳細講。
快速模擬是說她看這個這個局面,自己和自己下完,看看黑白誰贏的概率高??焖倌M是我們這個大模擬中的一個小模擬。
Q就是看當下(value net),也看未來(快速模擬),來決定怎么模擬(對人來說就是往哪里想,對于棋手就是思考哪些可能的著法),下棋方(模擬中下棋方黑白都是AlphaGo)下那一步贏的概率高,從而決定模擬下那一步。