對電腦戰勝人類的看法 - 圍棋

Table of Contents


我是一個業餘演算法愛好者,棋力只有入門。
想以資工系出身的角度來分享一下我的感受和一些猜測跟對未來的期許。

我很想一一回應原文和回覆底下推文有關演算法的問題,
但AlphaGo論文已經在網路上公開那麼久,對演算法有興趣的人應該已經看過。

我想藉著比較偏哲學的開頭,再慢慢帶到我想說的東西,
試著用其他領域的東西來比喻我想表達的感受。

以下,正文。

--------------------------------------------------------------------

「電腦有沒有辦法下出人類無法下出的一步棋?」

理論(1)上是不行的。
這裡的理論上是架構在:電腦不創造新規則的前提下。

只要:數目方式一樣、貼目規則一樣、黑先白後等等圍棋規則都不變,
判斷目前情勢的方式是只要是人寫的,電腦就永遠不可能超越人類。
他只是以極高的速度無限逼近人類能給出的結果而已。

這個理論的關鍵在於:電腦如何判斷情勢?
只要判斷情勢的方法步驟是固定的,人類只要照著一模一樣的原則,
夠細心、不出錯、花足夠多的時間,都能夠做出一樣的事。

就好像你給電腦一個解二元一次的規則,並且不斷亂數給他新參數,
他可以以非常快的速度不斷給出你新參數的答案。
(並且在理論上是可以無限地做下去的)

任何二元一次的方程式給一個人類,只要他擁有足夠的時間,
知道二元一次求解的方法步驟,他都可以在紙筆上作出答案。
只是人類無法達到電腦的速度罷了。

那麼,電腦要是能夠創造新的判斷情勢規則呢?
你只是給他一個二元一次方程式的規則,
他自己解著解,便創造出了解二元二次、三元一次等等的方法,
這裡我們先假設:解二元二次、三元一次等等,都是在解方程式的範圍內。
如同電腦創造出的判斷情勢規則,也是適用現有規則的圍棋這個範圍內。

理論(2)上,這個過程是不可逆的。
人類也無從理解電腦是如何辦到的。只能知道電腦透過某種方式辦到了。

或許有些人會有疑問:咦?你上面不是才說,人類只要有足夠時間,
只要是人類寫出來的東西,一步一步來都能夠重現嗎?

對,理論(2)上可以做出一樣的結果,但卻是無法理解的。
就好像四維以上的空間很難用圖形去理解,五維以上根本是難以想像了。
但我們可以用代數去解決這個困境,而且規則都是從三維的特性去延伸的。

用比喻上來說就是:
人類理解情勢判斷的方式是圖形化空間,
電腦創造出的情勢判斷是代數系統。

透過人類給的圖形化空間規則,電腦自行創造了四維、五維的代數系統。
人類可以透過觀察電腦的步驟方法,去重現四維、五維代數系統的運作,
卻永遠也沒辦法以圖形化空間去理解五維以上的運作。

理論(2)的假設下,機器不需要發展出心靈。
人類就可以寫出自己無法完全理解其複雜運作的演算法了。

理論(2)以實務上來說就是:
參數、變數量、變化量、規則等等過多到單一人類無法同時記憶並理解。
或許擁有極大量紙筆的人類,依靠團隊一代一代做下去有辦法創造出來。
但現況就是單人絕對無法抵過CPU複雜運算的成果。

現有的AlphaGo我認為還沒有達到理論(2)的境界,
就我個人認為,目前AlphaGo的步數,即使現在沒有發現,
未來十年、二十年、百年後的人類也會發現的。



人機大戰賽前我有在資訊相關的社團和好友圈內發表過我的預測,
當初認為人機大戰戰績會是人:機 = 1:4。
在人類三連敗後,有人問過我會不會被橫掃,會不會我的預測被打臉。
我給的答案是:「雖然前面幾場的差距大到有點超乎我想像,
但我還是保持原看法,認為人類還是有機會掰回一場,maybe第五吧。」

沒想到李世石真的很給力,在第四場獲勝了。
讓AlphaGo進入排名系統,也讓我賽前的預測矇中。
心情上由於我一開始就認為機器會獲勝,所以並沒有一些棋手的失落感。

那麼,究竟為什麼我會在賽前預測人:機 = 1:4這個數字呢?
那是因為我假設AlphaGo是理論(1)近完全體的情況下和李世石交手。

對,你沒有看錯,我認為在理論(1)的情況下,人類棋手就已經敵不過電腦了。
詳細原因牽扯到一些個人撰寫演算法的心得,
和一些測試原理和AlphaGo採用的演算法特性,
但真的要說,賽前預測,情緒上的感覺多過於實際上理論。

講一個比較無關乎演算法理論的層面,
由於AlphaGo一直以來都是自己和自己對弈,
在賽前,官方發出的消息並沒有指出AlphaGo有持續和人類棋手對弈的經驗。
只要出現一手超出電腦事前運算的強手,人類就有機會。
沒道理五盤棋中不會出現一手,這是我會預測人機1:4很大的原因。

用事後諸葛的角度去說就是:
只要有一手強手是超出電腦事前運算的,就會導致連續性的參數錯誤。
不過,也像前三場差距超越我賽前的想像一樣,AlphaGo連續失誤的嚴重性也超乎我想像。


依照官方消息所說,
事後的修正是對於樹的廣度深度參數修正,演算法規則並沒有修改。

現在去研究他為什麼會失誤那步是無理的,
因為他並不是針對那步的計算出錯,而是單純沒有算到。
沒有算到的情況並不是人類眼中的漏算、失算,
而是他把資源用在計算更有價值的步數上。

雖然這樣說好像有點冒犯,
但情況就是:在當時的AlphaGo眼裡那是較無價值的一步,
他沒有想到對手會愚蠢到下那一步,所以資源沒用在上面。

用比喻來說就是只顧著殺對方玩家結果被小兵拆塔。
也可以理解為高估對方對於價值的判斷力。

對於廣度深度的參數修正,用簡單的方式說就是:
分一些深入計算高價值後續步數的資源,到價值比較低的步數上。

可以理解為:從傾全力投資高科技軍武、太空科技這種極端高科的狀態中,
修正成撥部分經費去處理原始步兵、騎兵。

用這個比喻去看待力挽狂瀾中的AlphaGo也很有趣:
因為只會用戰鬥機和火箭,於是拿一台戰鬥機(一步棋)去對付一個步兵(一步棋)。
在投資報酬率極低的情況下,國家就破產滅亡了。


以下幻想:

現在的AlphaGo,其實只要不斷和人類對弈,
對人類來說就已經無限逼近理論(2)了。
就像AlphaGo沒和李世石對弈前,並不知道自己對於高價值步數投入過多。

只要不斷和人類棋手對弈,遲早能夠得到針對人類棋手的最佳參數。
在人類極限範圍內投入所有資源就好。
這種投資策略對於人類來說幾乎是當前局面的窮舉結果了。

再進一步,透過對弈過程獲取對方習性去修正情勢判斷或廣度深度的參數,
針對對方棋力下出對方算不清的步數甚至是騙著。
對人類來說就已經是理論(2)下的演算法了。



至於人機再戰,我認為依照現有的比賽規則,人類的勝率只會越來越渺茫。
原因非常單純:處理速度。

即使人類思維方式再怎麼進化,
只要是可以量化、可以轉換為數值的,電腦皆可處理。
只要圍棋規則不變,目數、官子就是可精確計算的。
即使演算法效能再也不提升,只要硬體效能進步就夠打趴人類棋手了。



現有的AlphaGo持續自我對弈下去,
會不會進化到每一手皆得最佳解的境界?

這裡先假設最佳解存在,我個人的臆測是不會。
這純粹是我個人對於蒙地卡羅演算法的理解。

蒙地卡羅的本質還是機率統計理論,
有亂數、有機率、有統計,就會有誤差。
問題只是誤差的大小而已。

另外一個假想問題是樣本的問題。
若從古至今的圍棋棋譜皆有著一種根本性的問題存在,
AlphaGo也無法擺脫這個根本性的問題。
(假設這個問題存在,很有可能這種根本性問題是超乎人類所能理解的,
若有個演算法可以找出這個問題並解決他,那就是貨真價實的理論(2)演算法。)



再來討論,何謂最佳解?
勝率最高?勝目數差最大?

大家都知道,目前的AlphaGo是以勝率高取向,
其實在前首戰時就已經有資訊背景的人猜測是如此,
事後相關人員的社群動態以及發佈在網路上的AlphaGo相關論文也證實了。
會以勝率高為取向,我個人認為是演算法特性綜合優化效能的結果。

以我個人理解,人機大戰的AlphaGo是沒辦法做到高目數勝差取向的。
勢必得加入其他演算法才有辦法做到。
但這似乎只是要不要放的問題,而不是能不能放的問題。
至於會不會放,我也很難說,但我傾向於不會放。

畢竟現有圍棋規則並不是追求最大目數勝差。
就好比目的是求解二元一次,能在時間內解出來就是最佳解,
並不需要過程優美。(更何況為了優美必須付出的成本或許會高到時間內無法得解。)



本來還想講一些,
個人覺得圍棋演算法對人類棋手的輔助功能和未來可以發展的方向,
礙於篇幅和我累了,真的有興趣可以私信討論。

以上多數內容純屬個人看法和臆測,歡迎對演算法有興趣的朋友來信討論。

--

All Comments

Franklin avatarFranklin2016-11-02
深度學習產生的價值網路不就是你說的理論二嗎
人類根本無法用這套理論去參透圍棋
Heather avatarHeather2016-11-03
另外人類對弈的數量根本沒有辦法達到深度學習的門檻
Regina avatarRegina2016-11-06
另外Aja也說過現在的AG已經能面對第四局的混亂情況
Anthony avatarAnthony2016-11-09
改善的只是價值網路受訓再更久一點
Dorothy avatarDorothy2016-11-13
結論是現在電腦已經可以下出人類下不出的步數
Rebecca avatarRebecca2016-11-18
而且有些也無法完全被人類理解,這才是棋迷對於
人機大戰著迷的地方
David avatarDavid2016-11-18
請問可借轉文於弈棋嗎?
Rebecca avatarRebecca2016-11-19
你的意思應該是人類無法理解"並且是妙手"的棋吧
Agnes avatarAgnes2016-11-20
那種根本已經是圍棋之神已經把所有變化都算清的境界
Lucy avatarLucy2016-11-21
任何heuristic的方法應該都達不到你說的境界吧
Doris avatarDoris2016-11-26
目前棋界並不覺得四路肩衝是未來會下的步數
Isla avatarIsla2016-11-30
這是只有電腦才會下的,因為違反了圍棋百年的棋理
Lily avatarLily2016-12-02
理論一太老舊了,現在複雜的系統基本上都是理論二。機器學
習的目標就是為人類無法言語描述的經驗法則找到適合的模型
,通常這些模型的外在行為很聰明,可是內部找不到什麼規則
一規則二這種條列式的人為指令
Ida avatarIda2016-12-03
感覺神之一手是對手也要被抓到心理才成立
Elvira avatarElvira2016-12-05
圍棋始終是兩個人下的,假如小李心態都像第五盤
Una avatarUna2016-12-07
不一定會是4比1的結果,或者說
Bethany avatarBethany2016-12-11
棋盤就是一樣大小,電腦算出勝率最高
也就是能贏最多目,沒有衝突
Ingrid avatarIngrid2016-12-12
第四盤修正請看#1NVtEFak
Agatha avatarAgatha2016-12-15
不可能去期待電腦盤面贏職棋20目吧?
Quintina avatarQuintina2016-12-17
像第三盤一開始就崩了就有可能啊XD
Audriana avatarAudriana2016-12-21
理論一和二的差別與效果無關,即使用理論二搞出來的系統,
Kumar avatarKumar2016-12-24
也有效果爛到不行的,兩者的差別是手段的不同
Olive avatarOlive2016-12-27
這麼說好了,假設我用理論二發展出一個中英翻譯系統,結果
非常好,所謂非常好,不就是人人都能理解翻譯後的語義嗎?
哪有什麼境界不境界的
Carol avatarCarol2016-12-31
所以說即使alphaGo下出來的棋讓高手都感到舒服,你也不能因
為招法還是被人認同就說alphaGo 的境界不到理論二
Kelly avatarKelly2017-01-01
謝謝,已轉 https://goo.gl/ca1NkQ
Liam avatarLiam2017-01-04
那理論一二的差別豈不是變成自由心證了,沒聽過這種分類方
式,用人對結果佩不佩服來分類工程方法,不是不可以,只是
這樣來說,就只是個人主觀的分類,哪裡還有“理論”?不如
說我把演算法分成兩種,一種是我佩服的,一種不是
Hamiltion avatarHamiltion2017-01-08
這樣就不合邏輯了,電腦是能擺出後續手段的
電腦不可能故意下自己已經算到虧目還下
Mason avatarMason2017-01-12
要說小李神之一手並不成立,電腦沒理而已
Selena avatarSelena2017-01-13
但電腦最後把自己下輸,原因不是對手正確
而是自己計算一直錯誤,但87手發現時,已經無法挽回
Vanessa avatarVanessa2017-01-13
你講的大部分都不錯,我只有一點想小修正建議的是你對於文
Ina avatarIna2017-01-17
中理論一跟二的分界定為「人能否理解」這點是有待商榷的
Isabella avatarIsabella2017-01-21
因為我們並不知道神之一手位在多高的高度。如果那個高度並
Callum avatarCallum2017-01-23
沒有想像中那麼遠,則人類終究可以解釋所有著手(就算自己
Hedy avatarHedy2017-01-23
下不出來)的可能性是存在的。
Enid avatarEnid2017-01-27
若此,則不能用人是否無法理解來做為分界。而且圍棋的本質
是計算,就理論上只要給人類無限的時間,所有著手都可以被
Callum avatarCallum2017-01-28
理解並解釋(即便可能為了解釋一手棋就寫出厚厚一本書)
Gary avatarGary2017-01-29
故此我認為你所謂理論一跟二的分野是很薄弱的,而且事實上
Barb Cronin avatarBarb Cronin2017-02-01
並不重要,你大可把這部分論述移除也不影響你整篇講得不錯
Mary avatarMary2017-02-05
的內容。加了那部分其實反而增加了一些閱讀困難。
Yedda avatarYedda2017-02-09
當然我可以想像你為何會做出這種分界方式的脈絡,因為你認
Doris avatarDoris2017-02-09
為人類會傾向於整合規納某些規則來進行解釋,所以有可能會
Agatha avatarAgatha2017-02-11
發生無論如何難以整合歸納的著手。只是你忽略了人類也有用
Hardy avatarHardy2017-02-14
窮舉來解釋分析著手的能力,而有這個能力就表示給予無限的
時間下所有著手都可以被解釋。
Caroline avatarCaroline2017-02-15
machine learn的做法比較偏2 人類幾乎無法理解機器如何達
到現在的決策網路
Anonymous avatarAnonymous2017-02-17
而不是由預先設計好的演算法在執行
電腦有沒有辦法下出人類無法下出的一步棋?
Sierra Rose avatarSierra Rose2017-02-20
沒辦法呀 棋盤位置電腦能下的人都能下....
只是alpha go 左右互搏了三千萬局以上
Hedwig avatarHedwig2017-02-24
再怎麼跟人類下 統計意義應該都不大
Kama avatarKama2017-02-26
針對人類棋手最佳化也太冒險了
Rachel avatarRachel2017-03-02
電腦判斷情勢的規則不需要由人給
Zora avatarZora2017-03-04
電腦要下贏棋 也不見得需要所謂的"理解"