[心得] AlphaGo常見問題總整理
大家好,
我這幾天看了很多資料和文章,
整理了一些關於AlphaGo的常見問題和解答,
希望能減少大家對AlphaGo的誤解。
如果認為我寫的回答有錯,
或還有什麼值得編進去的問題,
都歡迎推文告知,
我會盡快修改。
全文連結:
http://roger0123.blogspot.tw/2016/03/alphago.html
全文:
AlphaGo是什麼?
AlphaGo是英國DeepMind公司開發的一套圍棋AI程式,也是目前(2016年3月)已公開的圍棋AI中最強的一個。
由於DeepMind公司已經被Google收購,所以AlphaGo也可以說是「Google的AlphaGo」。
在2015年10月,它以5:0擊敗了連續三年獲得「歐洲圍棋冠軍盃」冠軍的樊麾二段,在2016年1月公開了消息後,引起棋界及學界的注目。
在2016年3月9~15日,它與當時公認最強棋士之一的韓國棋士李世 (或稱李世石)進行5局的「人機大戰」,目前進行到第4局,由AlphaGo以3:1領先。
AlphaGo的中文名稱是?
目前沒有官方譯名。
比較可能的翻譯大概是「阿爾法圍棋」,因為「Go」就是「圍棋」的英文,而這是從日文音譯到英文的。也有各種翻譯像是「阿法狗」、「阿爾法狗」、「阿發狗」。
AlphaGo跟其他的圍棋AI差在哪裡?
最大的差異在於AlphaGo使用了「類神經網路」這個技術,這讓AlphaGo擁有媲美職業棋士的「棋感」和「局勢判斷能力」,目前其他AI都沒有如此精確的估算能力。
(「棋感」可以解釋成「看盤面就能快速知道下哪些位置可能不錯」的能力)
AlphaGo是不是把大量的棋譜存起來,下棋時參考?
不是。
雖然AlphaGo在訓練過程中確實有看過大量棋譜,但這些棋譜只被用來調整AlphaGo的參數,沒有被存進去。可以這樣理解:AlphaGo不是死記棋譜,而是記住其中的應對原則。
棋譜中沒出現過的棋形,AlphaGo是不是就無法應對?
不是,但可能應對得比較差。
因為AlphaGo本來就不是死記棋譜,所以就算是跟棋譜不完全一樣的棋形,AlphaGo也能大略判斷出合適的應手。
而且AlphaGo(或任何圍棋AI都)具有「試下接下來的棋步並判斷局勢」的能力,所以就算AlphaGo沒辦法只憑過去的經驗找出適合的應手,也能即時計算之後的好幾步,看哪一手最有可能讓它獲得優勢。
不過如果棋形真的太特殊,導致AlphaGo漏算了某些不容易發現的棋步,就有可能會下得特別差。
為什麼AlphaGo這麼強?
我認為可以這樣想:AlphaGo擁有與職業棋士差不多的「棋感」和「局勢判斷能力」,又有人類所不及的「運算能力」可以計算接下來數十步的變化,所以能打敗人類職業棋士也是不意外的。
AlphaGo有沒有弱點?
一種說法是,如果能下出棋譜中極少出現的佈局、妙手,出乎AlphaGo的預測,AlphaGo就會很難應對。例如與李世石對弈的第四局中,在李世石下出第78手的妙手之後,AlphaGo之後的幾手就下得特別差,很可能就是這樣的情況。
這方面說法很多,建議直接看Google搜尋的結果吧!
==關於AlphaGo與李世石的比賽==
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局棋中也出現了劫,可見沒有這個秘密協議。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.112.233.208
※ 文章網址: https://www.ptt.cc/bbs/GO/M.1457876474.A.9C8.html
推
03/13 21:43, , 1F
03/13 21:43, 1F
已加
推
03/13 21:43, , 2F
03/13 21:43, 2F
推
03/13 21:45, , 3F
03/13 21:45, 3F
推
03/13 21:45, , 4F
03/13 21:45, 4F
→
03/13 21:46, , 5F
03/13 21:46, 5F
我修改傳出謠言的原因了
推
03/13 21:46, , 6F
03/13 21:46, 6F
→
03/13 21:47, , 7F
03/13 21:47, 7F
→
03/13 21:47, , 8F
03/13 21:47, 8F
→
03/13 21:47, , 9F
03/13 21:47, 9F
反正這個兩天後就會再修改一次,就先維持原樣了
推
03/13 21:48, , 10F
03/13 21:48, 10F
推
03/13 21:51, , 11F
03/13 21:51, 11F
→
03/13 21:51, , 12F
03/13 21:51, 12F
了解 已修改
→
03/13 21:53, , 13F
03/13 21:53, 13F
推
03/13 21:54, , 14F
03/13 21:54, 14F
推
03/13 21:55, , 15F
03/13 21:55, 15F
推
03/13 21:56, , 16F
03/13 21:56, 16F
→
03/13 21:57, , 17F
03/13 21:57, 17F
推
03/13 21:57, , 18F
03/13 21:57, 18F
→
03/13 21:58, , 19F
03/13 21:58, 19F
→
03/13 21:58, , 20F
03/13 21:58, 20F
→
03/13 21:59, , 21F
03/13 21:59, 21F
→
03/13 21:59, , 22F
03/13 21:59, 22F
→
03/13 22:00, , 23F
03/13 22:00, 23F
→
03/13 22:00, , 24F
03/13 22:00, 24F
→
03/13 22:01, , 25F
03/13 22:01, 25F
→
03/13 22:01, , 26F
03/13 22:01, 26F
→
03/13 22:02, , 27F
03/13 22:02, 27F
推
03/13 22:05, , 28F
03/13 22:05, 28F
推
03/13 22:07, , 29F
03/13 22:07, 29F
→
03/13 22:16, , 30F
03/13 22:16, 30F
推
03/13 22:16, , 31F
03/13 22:16, 31F
→
03/13 22:16, , 32F
03/13 22:16, 32F
→
03/13 22:17, , 33F
03/13 22:17, 33F
→
03/13 22:18, , 34F
03/13 22:18, 34F
→
03/13 22:18, , 35F
03/13 22:18, 35F
推
03/13 23:07, , 36F
03/13 23:07, 36F
推
03/13 23:15, , 37F
03/13 23:15, 37F
→
03/13 23:15, , 38F
03/13 23:15, 38F
→
03/13 23:15, , 39F
03/13 23:15, 39F
那一段我想說的是,AlphaGo並不是把譜存進資料庫,而是用來train neural network,
train完就把棋譜扔了。
train好的neural network可以做到「下出定石」和「下出常見佈局」是沒錯,但這個
過程不是去翻棋譜找定石,而是根據當下的盤面估計棋士們下在各個點的機率。
這是不是「背」要看你對「背」的定義。
但以我的認知,「把棋譜存起來參考」是「背」,「拿棋譜train NN再根據NN算出落點」不是「背」。
但我原文中本來就沒用到「背」,所以應該不需要修改。
我也沒用到「學習」兩個字,所以就不討論算不算「學習」了。
→
03/13 23:17, , 40F
03/13 23:17, 40F
→
03/13 23:17, , 41F
03/13 23:17, 41F
→
03/13 23:19, , 42F
03/13 23:19, 42F
→
03/13 23:20, , 43F
03/13 23:20, 43F
→
03/13 23:24, , 44F
03/13 23:24, 44F
好 我改改看
推
03/14 00:20, , 45F
03/14 00:20, 45F
→
03/14 00:20, , 46F
03/14 00:20, 46F
感謝 已補上
推
03/14 01:50, , 47F
03/14 01:50, 47F
推
03/14 06:30, , 48F
03/14 06:30, 48F
→
03/14 11:27, , 49F
03/14 11:27, 49F
推
03/14 11:33, , 50F
03/14 11:33, 50F
→
03/14 13:11, , 51F
03/14 13:11, 51F
→
03/14 13:11, , 52F
03/14 13:11, 52F
→
03/14 13:29, , 53F
03/14 13:29, 53F
→
03/14 13:29, , 54F
03/14 13:29, 54F
→
03/14 13:29, , 55F
03/14 13:29, 55F
→
03/14 13:29, , 56F
03/14 13:29, 56F
→
03/14 13:29, , 57F
03/14 13:29, 57F
沒有人說AG不用靠棋譜啊,SL policy network就有用棋譜訓練。
只是訓練完後,AG下棋時是不需要「棋譜資料庫」這種東西的,很多人誤以為有。
根據維基百科,「棋譜」的定義是「一盤棋局對弈發展的過程紀錄」,例如記錄雙方
下棋的位置、次序、時間、勝負等等。但AG中的參數跟這種定義的棋譜已經完全不同了,
至少你拿一份它看過的棋譜下到中間叫它接著下完,它是做不到的。
如果你認為那些neural network也是一種廣義的棋譜,那我也沒辦法反駁了。
→
03/14 15:21, , 58F
03/14 15:21, 58F
→
03/14 15:21, , 59F
03/14 15:21, 59F
→
03/14 15:21, , 60F
03/14 15:21, 60F
→
03/14 15:21, , 61F
03/14 15:21, 61F
→
03/14 15:21, , 62F
03/14 15:21, 62F
→
03/14 15:21, , 63F
03/14 15:21, 63F
→
03/14 15:21, , 64F
03/14 15:21, 64F
→
03/14 15:21, , 65F
03/14 15:21, 65F
→
03/14 15:21, , 66F
03/14 15:21, 66F
我從頭到尾都沒有否定棋譜庫的存在。
訓練時需要棋譜庫,下棋時不需要棋譜庫,這樣同意嗎?
根據論文,他們訓練時用到的「人下的棋譜」都是從KGS抓的。
到底他們是不是只用了業餘棋手的對局,我也無法證明,爭論這個沒有意義。
推
03/14 15:26, , 67F
03/14 15:26, 67F
感謝告知 請問有來源嗎?
推
03/14 16:14, , 68F
03/14 16:14, 68F
→
03/14 16:16, , 69F
03/14 16:16, 69F
→
03/14 16:17, , 70F
03/14 16:17, 70F
→
03/14 16:18, , 71F
03/14 16:18, 71F
推
03/14 16:22, , 72F
03/14 16:22, 72F
已補上
→
03/14 16:59, , 73F
03/14 16:59, 73F
→
03/14 17:00, , 74F
03/14 17:00, 74F
→
03/14 17:00, , 75F
03/14 17:00, 75F
※ 編輯: Roger0123 (140.112.233.208), 03/14/2016 17:35:31