[心得] AlphaGo常見問題總整理

看板GO作者 (Roger)時間9年前 (2016/03/13 21:41), 9年前編輯推噓23(23052)
留言75則, 21人參與, 最新討論串1/1
大家好, 我這幾天看了很多資料和文章, 整理了一些關於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
AlphaGO單機跟分散式相關的訊息
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
「由AlphaGo以3:1領先」→這樣講不能說錯,但更好的講法是
03/13 21:47, 7F

03/13 21:47, , 8F
lphaGo已經確定在五戰三勝的系列賽贏了,
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
不是不能打劫 是不擅長打劫 說真的怎麼可能不能打劫 Zen
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
當然阿法狗相對之前的Zen的打劫能力一定也比較強 但是應
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
也有可能是現階段AG歸納出來的結論就是避劫,因為勝率會降低
03/13 22:00, 23F

03/13 22:00, , 24F
第四盤局後問答中有提到AlphaGo賽前訓練的棋譜是業餘高段棋手
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
問答中也提到AlphaGo在五局中都是使用同一個版本的AlphaGo
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
我是說AG的理解(推測), 不是人類的
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
看直播的評論都說, AG這幾盤棋盤中有要複雜度減低的傾向
03/13 22:18, 34F

03/13 22:18, , 35F
他們以後要讓電腦自主學習 我建議把棋譜時間也算進去
03/13 22:18, 35F

03/13 23:07, , 36F
大推,很多不瞭解AG的總是有些奇怪的問題
03/13 23:07, 36F

03/13 23:15, , 37F
我想問幾個問題 第一是背定石和開局佈局算不算背譜?SL n
03/13 23:15, 37F

03/13 23:15, , 38F
etwork難道只能算是過一下、無涉及「背」的習得人類棋步?
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
可能會導致AlphaGo沒有棄子的誘敵戰術
03/13 23:20, 43F

03/13 23:24, , 44F
Demis在記者會上回答的有可能並不精確 個人覺得
03/13 23:24, 44F
好 我改改看

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
推。關於AlphaGo對李世石可能調整,要不要補官方回應XD?
03/14 06:30, 48F

03/14 11:27, , 49F
請問"根據NN算出落點"是在對戰中進行的嗎?
03/14 11:27, 49F

03/14 11:33, , 50F
To 樓上: 是啊,SL policy, RL value, rollout都是唄
03/14 11:33, 50F

03/14 13:11, , 51F
我覺得你在唬弄啊 要value 憑空要怎麼value? 又不是鄉
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
後就可以公開說AG完全都不用靠棋譜的喔~~ 哈 這種說話
03/14 13:29, 54F

03/14 13:29, , 55F
技巧也太厲害 沒人覺得AG可以在比賽中找到一盤剛好跟正在
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
照你的話,你覺得AG把棋譜「用來train neural network,tr
03/14 15:21, 58F

03/14 15:21, , 59F
ain完就把棋譜扔了」,就可以假裝根本沒有一個放棋譜的資
03/14 15:21, 59F

03/14 15:21, , 60F
料庫存在?那它一開始是從哪裡拿棋譜出來train呢?你的自
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
一點,DeepMind的老闆在第四局後的記者會講的很輕巧,說Al
03/14 15:21, 63F

03/14 15:21, , 64F
phaGo「只用過網路上業餘棋手的對局」,這話大有疑問,他
03/14 15:21, 64F

03/14 15:21, , 65F
們的演算法真就那麼厲害?!而你在這裡還幫他再補一句其
03/14 15:21, 65F

03/14 15:21, , 66F
實連棋譜的資料庫都沒有....甚至扯到維基百科 lol
03/14 15:21, 66F
我從頭到尾都沒有否定棋譜庫的存在。 訓練時需要棋譜庫,下棋時不需要棋譜庫,這樣同意嗎? 根據論文,他們訓練時用到的「人下的棋譜」都是從KGS抓的。 到底他們是不是只用了業餘棋手的對局,我也無法證明,爭論這個沒有意義。

03/14 15:26, , 67F
alphago最近是封閉版本,不會進化。
03/14 15:26, 67F
感謝告知 請問有來源嗎?

03/14 16:14, , 68F
bbbtri你真的誤解了,真要說..他們的演算法就是那麼厲害
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
對了,跟李九段對弈的有1920 CPU+280 GPU,來源維基百科
03/14 16:22, 72F
已補上

03/14 16:59, , 73F
你以為利用機率來下棋就不涉及"背"嗎? 取80%的著手來下
03/14 16:59, 73F

03/14 17:00, , 74F
或是取20%的著手來下 難道都不算"真接應用"?
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
文章代碼(AID): #1MvMtwd8 (GO)