筆記 - (一般人也能看懂的) AlphaGo常見問題總整理
最近AlphaGo打敗李世石的新聞吸引了很多人關注,不過在網路上逛一圈就知道,很多人對AlphaGo還是有所誤解。
身為一個對圍棋和程式都略懂、也對AlphaGo關注很久的人,感覺應該負起責任整理一下常見問題,讓只懂圍棋、只懂程式、甚至都不太懂的人,能對AlphaGo有更深的了解。
※如果你認為以下內容有應該修改地方,或有什麼想列進去的問題,都歡迎留言告知,希望能一起維護這份文件!
AlphaGo是什麼?
AlphaGo是英國DeepMind公司開發的一套圍棋AI程式,也是目前(2016年3月)已公開的圍棋AI中最強的一個。
由於DeepMind公司已經被Google收購,所以AlphaGo也可以說是「Google的AlphaGo」。
在2015年10月,它以5:0擊敗了連續三年獲得「歐洲圍棋冠軍盃」冠軍的樊麾二段,在2016年1月公開了消息後,引起棋界及學界的注目。
在2016年3月9~15日,它與當時公認最強棋士之一的韓國棋士李世乭(或稱李世石)進行5局的「人機大戰」,最後AlphaGo以4:1戰勝李世石。
AlphaGo的中文名稱是?
目前沒有官方譯名。
比較可能的翻譯大概是「阿爾法圍棋」,因為「Go」就是「圍棋」的英文,而這是從日文音譯到英文的。也有各種翻譯像是「阿法狗」、「阿爾法狗」、「阿發狗」。
AlphaGo跟其他的圍棋AI差在哪裡?
最大的差異在於AlphaGo使用了「類神經網路」這個技術,這讓AlphaGo擁有媲美職業棋士的「棋感」和「局勢判斷能力」,目前其他AI都沒有如此精確的估算能力。
(「棋感」可以解釋成「看盤面就能快速知道下哪些位置可能不錯」的能力)
AlphaGo是不是把大量的棋譜存起來,下棋時參考?
不是。
雖然AlphaGo在訓練過程中確實有看過大量棋譜,但這些棋譜只被用來調整AlphaGo的參數,沒有被存進去。可以這樣理解:AlphaGo不是死記棋譜,而是記住其中的應對原則。
棋譜中沒出現過的棋形,AlphaGo是不是就無法應對?
不是,但可能應對得比較差。
因為AlphaGo本來就不是死記棋譜,所以就算是跟棋譜不完全一樣的棋形,AlphaGo也能大略判斷出合適的應手。
而且AlphaGo(或任何圍棋AI都)具有「試下接下來的棋步並判斷局勢」的能力,所以就算AlphaGo沒辦法只憑過去的經驗找出適合的應手,也能即時計算之後的好幾步,看哪一手最有可能讓它獲得優勢。
不過如果棋形真的太特殊,導致AlphaGo漏算了某些不容易發現的棋步,就有可能會下得特別差。
AlphaGo能不能「打劫」?
可以。
從AlphaGo與樊麾的第5局,以及與李世石的第3局中都有出現劫,而且AlphaGo也沒有因此失誤,可看出AlphaGo有能力打劫。
所謂的單機版跟分散式版AlphaGo是什麼?
AlphaGo有兩個版本,就是「單機版」和「分散式版」,兩者的演算法完全相同,差別在於所用的硬體(電腦)。根據論文中的資料,
.單機版的使用了48 個中央處理器(CPU)和 8 個圖形處理器(GPU)。
.分散式版的使用了 1202 個CPU和 176 個GPU。
因為分散式版的運算速度比較快,對同一局面可以算得比較深,所以棋力也比單機版的強。
在與樊麾和與李世石的對局中使用的都是分散式版的。而在與李世石的對決中,又進一步將硬體提高到1920個CPU和280個GPU(資料來源),
更多關於單機版和分散式版的中文介紹
為什麼AlphaGo這麼強?
我認為可以這樣想:AlphaGo擁有與職業棋士差不多的「棋感」和「局勢判斷能力」,又有人類所不及的「運算能力」可以計算接下來數十步的變化,所以能打敗人類職業棋士也是不意外的。
AlphaGo有沒有弱點?
一種說法是,如果能下出棋譜中極少出現的佈局、妙手,出乎AlphaGo的預測,AlphaGo就會很難應對。例如與李世石對弈的第四局中,在李世石下出第78手的妙手之後,AlphaGo之後的幾手就下得特別差,很可能就是這樣的情況。
這方面說法很多,建議直接看Google搜尋的結果吧!
AlphaGo在賽前有沒有針對李世石做調整?
沒有。
在這段採訪(英文的)中DeepMind公司的CEO – Demis Hassabis有明確說明AlphaGo沒有針對李世石的棋做訓練。
針對某一個棋手的棋譜來調整參數是一件很危險的事,可能讓AlphaGo的判斷變得偏頗,精準度下降。而且AlphaGo在訓練後期已經不是根據現有棋譜,而是自己跟自己下好幾千萬盤來調整。
AlphaGo是不是每跟李世石下完一局,就會變強?
不會。
理由跟上一個問題一樣。
對於AlphaGo所下的一手,有另一種下法「似乎」更好,是不是AlphaGo失誤了?
可能是也可能不是。
首先,畢竟AlphaGo並不完美,所以另一種下法可能真的是更好的。
但也有可能是:人們主觀認為AlphaGo下的棋不好,其實不然。例如對局中有出現一些俗手、緩手,乍看之下不夠好,但考慮到後續的變化後,AlphaGo所下的棋可能才是最好的。許多職業棋士也漸漸有相同的看法。
對於AlphaGo所下的一手,有另一種下法「絕對」更好,是不是AlphaGo失誤了?
對人類而言是,對AlphaGo不是。
這個基本上都發生在官子階段或盤面上的小區域,由於人類能算出接下來的全部變化,所以可以肯定AlphaGo下的棋不是最好的。
但這並不是AlphaGo失誤,而是因為它只追求「獲勝機率最大化」,這在某些情況就會被認為是失誤,以下舉例:
例1:在某個局面有兩種下法:下法A比較簡明但局部會虧幾目,下法B比較複雜卻是局部的最佳下法。在AlphaGo計算勝率時,可能因為下法B比較難算,不確定性比較高,所以算出勝率是60%;而下法A的步數少,可以往下算得比較深,最後算出勝率是70%。那AlphaGo就會選擇稍微虧幾目的下法A。就像是當你處於優勢時,會選擇比較穩健的下法一樣。
例2:在接近終盤的時候,有可能接下來的所有變化都已經算清楚了,而且有多種下法都能達到100%的勝率,那麼這些下法在AlphaGo眼中是沒有差別的(理論上沒錯,但不確定實際上怎麼從中選擇),如果AlphaGo選擇了一個會稍微虧損但仍然能勝利的下法,人們就會認為AlphaGo下錯了、沒有下在最好的位置。
比賽前有沒有秘密協議禁止李世石「打劫」?
沒有。
這是由於AlphaGo與李世石對弈的前2局都沒有出現劫,尤其第2局中李世石有多處可以選擇打劫卻都沒有選擇,加上很多圍棋AI都不擅長打劫,才傳出的謠言。
在謠言傳出後不久,AlphaGo開發者之一的黃士傑已出面澄清沒有此協議;而在與李世石的第3局棋中也出現了劫,可見沒有這個秘密協議。
參考資料:
AlphaGo論文: Mastering the game of Go with deep neural networks and tree search
Shou-De Lin先生寫的論文讀後感想
維基百科:AlphaGo