關於AlphaGo,我們知道這是迄今為止,人類史上最偉大的人工智慧之一,對於圍棋他的知名度要超過很多職業棋手。所有版本的AlphaGo對弈人類的戰績為67勝1敗(其中4-1戰勝李世石,野狐圍棋ID:master 60-0 戰勝人類眾高手,浙江烏鎮3-0戰勝當時世界第一人柯潔)。

李世石與AlphaGo人機大戰
那麼為什麼人類研究了幾千年的圍棋卻弈不過一個沒有自主思想並且是由人類研發出來的機器人。藉由這個問題,就讓小編帶領大家簡單領略一下到底AlphaGo為什麼這麼厲害,他是如何通過自我學習來戰勝這一票人類高手的?
第一手,是上帝幫忙來選擇的!我們把棋盤上所有落子得分值設為1,訓練時AlphaGo隨機往棋盤上扔了一個棋子,之後他把對手也想像成和自己一樣的二,也往棋盤扔了一個棋子,如此循環。最後雙方分出了勝負,我們把勝負設為X,勝利為X=1,失敗為X=0。這樣AlphaGo在心裡下了一盤完整的棋。
我剛才模擬贏了一次,X=1,那麼我要提高水平,新分數X=2,除了第一步,後面幾步運氣也不錯,那我把這些隨機出的局面所對應落子方法的分數都設為2吧。然後開始做第二次模擬,這次扔骰子的時候AlphaGo對圍棋已經不是一無所知了,但也知道的不是太多,所以這次的分值是2,其他落子方法的分數還是1。再次選擇落子的概率要比其他方法高一點點。同樣,假象的對手也同樣更新了自己的分數。
以此類推,AlphaGo下完它想像的幾十萬盤棋局後,選擇他推演過次數最多贏得最多的那個方案落子,而這時,AlphaGo才真正下了一步棋。不僅是第一步,AlphaGo在行棋過程中的每一步,都是如此推演的。

不行,這太慢了,運行量太大。設計並寫出AlphaGo的黃士傑黃博士認為需要更高效的扔棋子,例如第一手扔到棋盤A1(圍棋棋盤上的一個角)這種地方是不可能贏的,同樣官子時把棋下到對面的活棋區域內也是無意義的。在這些無用位置的計算是完全可以規避的。所以,黃博士對AlphaGo進行了改進,並不是隨機性的扔棋子,而是更有效率的扔棋子。同樣,在對弈的過程中,AlphaGo對自己下的每一步棋都做了概率評價,當走到某一步可以直接判定自己的敗局或勝局時,就不繼續模擬後續的落子,直接省略的了後續的模擬,優化了算法。
最後應用到的,也是AlphaGo的核心科技,deepmind。這也是當時AlphaGo所有權的公司的英文名,中文譯為「深度學習」。
那麼到底AlphaGo是如何深度學習的呢?首先讓程序AlphaGo-A1和AlphaGo-B1進行1萬盤對弈,之後把經驗加入到訓練集之後進化成AlphaGo-A2和AlphaGo-B2,再讓A2和B2對弈1萬盤,得出A3和B3,以此類推,直到訓練出AX和BX,我們可以從這裡看出AlphaGo-A和AlphaGo-B的棋理和棋技是呈幾何倍數的增長。這就好像某個二人對抗運動項目一樣,從成萬上億的人中的人選萬分之一進行訓練,再從這萬分之一裡面再挑萬分之一,以此類推,直到找到那個最強的選手。
當然你要知道,AlphaGo在這裡訓練的每盤棋每一步,根據我們之前所說,他在心裡已經模擬了上萬種下法,再讓兩個相同水平的AlphaGo不停的對弈,直到盤出圍棋的奧妙,選定那個最強的AlphaGo作為代表,參加戰鬥。這,就叫深度學習。

AlphaGo自我對弈一天可以訓練3000萬盤,利用超過170個GPU,粗略估算超過800萬核並行計算。小編只是把AlphaGo裡面的極其深奧的算法寫成最淺顯的文字表達出來,當然,這只是很概念化的東西,更多專業性的東西我們不去深究。