嘗試解釋一下過去的AI和現在的AI,在「暴力」這方面本質上的差異
過去以暴力幹爆人類的棋類AI中,最有名的就是深藍
我們假設現在要請深藍用同樣的方法,嘗試在圍棋上幹爆人類
那麼所謂的「暴力求解」大概可以形容成這樣:
深藍:
我執黑,現在輪我下棋
棋盤上一之一是空的,我可以下這邊(如果不能下就跳過)
如果我下在一之一,對手接下來會下任何一個他可以下的點
如果他下在A之B會得到最大的優勢
棋盤上一之二是空的,我可以下這邊
如果我下在一之二,對手接下來會下任何一個他可以下的點
如果他下在C之D會得到最大的優勢
...
直到把整個棋盤輪完一遍,每個地方對手都有一個「獲得最大優勢」的選項
而正常的AI沒事不會放水,也不會假設對手是白癡
他會假設對手永遠都盡力表現,但是我還是要幹爆他
所以最後他會選擇一個「就算你表現再好,上限也最低」的著手
到這裡就是賽局理論中一個最粗糙、最暴力的決策樹模型
以圍棋來說,可以想像這個模型相當的巨大
理論上和實作上還有很多可以簡化(更傳神的用語稱為「修剪」)這顆決策樹的方法
有些是能用數學證明很完美的,有些是犧牲準確度換取效率的
不同主題的研究者會因為遊戲性質的不同,而採取各自理想的策略
另外還有一個嚴重的問題,AI下一顆,對手下一顆,接下來要判斷對手有多少優勢
可是圍棋的勝負,可能是在後面一百多顆的戰鬥中才決定的
雖然有所謂「形勢判斷」的技術(僅從現在的盤面估算雙方的目數差異)
但那終究只是個估算,而且要讓AI具有可靠的估算能力,又會變成另一個難題
這裡先偷跑一下,借用阿法狗介紹文中總是會出現的蒙地卡羅方法
如果我不知道現在這個場面到底是哪邊比較好,那我就從現在這個場面開始
請兩個實力都很不錯的AI往後下個一千盤,看看哪邊爆掉比較多次就知道了
我不確定前阿法狗時代的圍棋AI有沒有用這種方法來進行估算
不過在電腦與顯示卡的算力爆發之前,就算真的能用,效率應該也不佳
除了計算量以外,光是去找「兩個實力都很不錯的AI」就是一大問題了
總之,過去的圍棋AI有這些手段能用,以及一大堆竭盡所能提高效率的策略
最好的成果大概能跟業餘棋手玩玩,對於中階棋手可能還具有不少挑戰性
不過面對職業棋手了不起就是被讓四~六顆,然後看看在爆掉之前能撐多久
接下來要進入阿法狗了,阿法狗那絕妙的圍棋演算法大概是:
(我的形容還是會簡化很多很多,不過重點是和過往在「暴力」上的差異)
將二十五個參數排成5x5方陣的形狀
阿法狗不想解釋這二十五個參數是哪來的,但主人把他推出去比賽時已經幫他填好了
把一之一~五之五的5x5區域框起來,把黑棋當作+1,白棋當作-1,空白當作0
將每個數字都乘上方陣中對應位置的參數,結果全部加起來,記在一張表格的角落
把一之二~五之六的5x5區域框起來,把黑棋當作+1,白棋當作-1,空白當作0
將每個數字都乘上方陣中對應位置的參數,結果全部加起來,記在前一個數字的旁邊
...
把整個棋盤都跑過一遍後,表格上就會有一堆計算好,同樣排成方陣的數字
先把這張表格放在一旁,掏出另外二十五個排成5x5方陣的參數出來
同樣的,阿法狗也不知道他們是怎麼來的,總之就是已經填好了
重複一次同樣的流程後,因為第二組參數和第一組不同,所以會產生另外一張表格
這些表格雖然也差不多是棋盤的規模,但因為用來乘的數字可以是任意範圍
所以他們的內容已經無法用任何圍棋知識去理解了
現在阿法狗的腦內有一大堆數字了,接下來他要做一件很重要的事情:
對這些表格上的數字執行同一種「粗暴動作」
最簡單的一種粗暴動作就是把所有負數變成0,正數保留原本的值
這個動作其實非常關鍵,但不適合在我這篇文章內說明關鍵的原因
想知道為什麼的讀者可以參考這個教學影片:
https://www.youtube.com/watch?v=bHcJCp2Fyxs
接下來,阿法狗會掏出更多來歷不明的參數
然後把先前計算得到的數字,和這些參數依照特定的規律兩兩相乘
再重複相加取總和,執行粗暴動作等流程,得到更多新的表格
類似的步驟會重複很多輪,這些表格排列而成的結構就是所謂的「深度」
最後會計算出到一張和棋盤一樣大的表格,每個位置各有一個數字
接下來,阿法狗照著最大的數字所在的位置下棋,然後人類就被幹爆了
這些「來路不明的參數」就是阿法狗的腦袋
除去這些參數的數值變化,參數要怎麼使用的規則其實是完全固定的
所以如果參數全部亂填,那這個阿法狗可能就是個白癡
實際上,如果隨機產生100000000隻這種阿法狗,那100000000隻應該都是白癡
不過人類就是有辦法找到一組參數,讓這隻狗贏了李世石四盤
尋找這些參數的方法其實也不是完全的暴力,因為這複雜度其實比圍棋棋盤還要高
這方面的技術屬於數學上最佳化的主題,還是有許多明確的方向可尋
為什麼在某種特定層層相疊的使用規則下,一組好的參數就能幹爆人類?
這是類神經網路上一個無解的問題,目前沒有辦法給出明確的原因
只有「這結構就是模擬人類大腦運作原理,所以他可以很厲害」這種解釋方法
實際上這結構早在1940年代就被提出,1970年代就有人實作過
不過在顯示卡能力提升,深度學習崛起之前
在計算量上的巨大門檻,往往讓其淪為吃飽太閒的等級
如果將過去的AI和現在的AI進行類比,可以發現這樣的相似性:
過去的AI:有天文數字種下棋的方法,找出一種最好的棋路
現在的AI:有天文數字種參數的組合,找出一種最好的參數
這兩者之間當然有許多差異,但其中有一種最為明顯:
過去的AI雖然在「找出最佳棋路」這件事上很辛苦
但是他所尋找的標的,是一個人類在圍棋規則內完全能看得動的棋路
現在的AI所尋找的標的......如果我在十幾年後被打臉就算了
不過我現在至少敢說,這他媽是什麼東西人類永遠都不可能看懂
然而,雖然人類看不懂參數本身,但是人類知道一件事實
就是這種模型在幾乎任何競爭類的主題上,都能明確地幹爆人類
(創作方面的問題還有點爭議,至少幹爆龍宮有點困難)
在許多的成功案例出現後,現代AI技術就開始爆炸性的加速發展了