Re: [分享] 用寶可夢紅版示範AI的機器學習
嘗試解釋一下過去的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技術就開始爆炸性的加速發展了
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.240.232.168 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/C_Chat/M.1712216546.A.832.html
→
04/04 15:44,
3周前
, 1F
04/04 15:44, 1F
推
04/04 15:48,
3周前
, 2F
04/04 15:48, 2F
→
04/04 15:48,
3周前
, 3F
04/04 15:48, 3F
推
04/04 15:51,
3周前
, 4F
04/04 15:51, 4F
→
04/04 15:51,
3周前
, 5F
04/04 15:51, 5F
推
04/04 15:52,
3周前
, 6F
04/04 15:52, 6F
→
04/04 15:52,
3周前
, 7F
04/04 15:52, 7F
→
04/04 15:53,
3周前
, 8F
04/04 15:53, 8F
→
04/04 15:53,
3周前
, 9F
04/04 15:53, 9F
→
04/04 15:53,
3周前
, 10F
04/04 15:53, 10F
→
04/04 15:53,
3周前
, 11F
04/04 15:53, 11F
→
04/04 15:53,
3周前
, 12F
04/04 15:53, 12F
→
04/04 15:53,
3周前
, 13F
04/04 15:53, 13F
→
04/04 15:54,
3周前
, 14F
04/04 15:54, 14F
推
04/04 15:56,
3周前
, 15F
04/04 15:56, 15F
→
04/04 15:56,
3周前
, 16F
04/04 15:56, 16F
→
04/04 15:56,
3周前
, 17F
04/04 15:56, 17F
→
04/04 15:56,
3周前
, 18F
04/04 15:56, 18F
→
04/04 15:56,
3周前
, 19F
04/04 15:56, 19F
→
04/04 15:57,
3周前
, 20F
04/04 15:57, 20F
→
04/04 15:57,
3周前
, 21F
04/04 15:57, 21F
推
04/04 16:00,
3周前
, 22F
04/04 16:00, 22F
推
04/04 16:00,
3周前
, 23F
04/04 16:00, 23F
→
04/04 16:01,
3周前
, 24F
04/04 16:01, 24F
→
04/04 16:01,
3周前
, 25F
04/04 16:01, 25F
→
04/04 16:01,
3周前
, 26F
04/04 16:01, 26F
→
04/04 16:01,
3周前
, 27F
04/04 16:01, 27F
→
04/04 16:01,
3周前
, 28F
04/04 16:01, 28F
→
04/04 16:01,
3周前
, 29F
04/04 16:01, 29F
推
04/04 16:03,
3周前
, 30F
04/04 16:03, 30F
→
04/04 16:03,
3周前
, 31F
04/04 16:03, 31F
→
04/04 16:03,
3周前
, 32F
04/04 16:03, 32F
→
04/04 16:03,
3周前
, 33F
04/04 16:03, 33F
→
04/04 16:03,
3周前
, 34F
04/04 16:03, 34F
→
04/04 16:04,
3周前
, 35F
04/04 16:04, 35F
→
04/04 16:05,
3周前
, 36F
04/04 16:05, 36F
→
04/04 16:05,
3周前
, 37F
04/04 16:05, 37F
→
04/04 16:05,
3周前
, 38F
04/04 16:05, 38F
→
04/04 16:06,
3周前
, 39F
04/04 16:06, 39F
→
04/04 16:06,
3周前
, 40F
04/04 16:06, 40F
推
04/04 16:07,
3周前
, 41F
04/04 16:07, 41F
→
04/04 16:07,
3周前
, 42F
04/04 16:07, 42F
→
04/04 16:07,
3周前
, 43F
04/04 16:07, 43F
→
04/04 16:10,
3周前
, 44F
04/04 16:10, 44F
→
04/04 16:10,
3周前
, 45F
04/04 16:10, 45F
→
04/04 16:10,
3周前
, 46F
04/04 16:10, 46F
推
04/04 16:13,
3周前
, 47F
04/04 16:13, 47F
→
04/04 16:13,
3周前
, 48F
04/04 16:13, 48F
→
04/04 16:13,
3周前
, 49F
04/04 16:13, 49F
→
04/04 16:13,
3周前
, 50F
04/04 16:13, 50F
→
04/04 16:13,
3周前
, 51F
04/04 16:13, 51F
→
04/04 16:13,
3周前
, 52F
04/04 16:13, 52F
→
04/04 16:13,
3周前
, 53F
04/04 16:13, 53F
→
04/04 16:13,
3周前
, 54F
04/04 16:13, 54F
→
04/04 16:14,
3周前
, 55F
04/04 16:14, 55F
→
04/04 16:14,
3周前
, 56F
04/04 16:14, 56F
→
04/04 16:14,
3周前
, 57F
04/04 16:14, 57F
→
04/04 16:15,
3周前
, 58F
04/04 16:15, 58F
→
04/04 16:15,
3周前
, 59F
04/04 16:15, 59F
推
04/04 16:16,
3周前
, 60F
04/04 16:16, 60F
→
04/04 16:18,
3周前
, 61F
04/04 16:18, 61F
→
04/04 16:18,
3周前
, 62F
04/04 16:18, 62F
→
04/04 16:18,
3周前
, 63F
04/04 16:18, 63F
→
04/04 16:18,
3周前
, 64F
04/04 16:18, 64F
→
04/04 16:21,
3周前
, 65F
04/04 16:21, 65F
→
04/04 16:21,
3周前
, 66F
04/04 16:21, 66F
→
04/04 16:25,
3周前
, 67F
04/04 16:25, 67F
→
04/04 16:25,
3周前
, 68F
04/04 16:25, 68F
推
04/04 16:26,
3周前
, 69F
04/04 16:26, 69F
→
04/04 16:26,
3周前
, 70F
04/04 16:26, 70F
→
04/04 16:27,
3周前
, 71F
04/04 16:27, 71F
→
04/04 16:28,
3周前
, 72F
04/04 16:28, 72F
推
04/04 16:28,
3周前
, 73F
04/04 16:28, 73F
推
04/04 16:40,
3周前
, 74F
04/04 16:40, 74F
推
04/04 16:44,
3周前
, 75F
04/04 16:44, 75F
推
04/04 16:50,
3周前
, 76F
04/04 16:50, 76F
→
04/04 16:50,
3周前
, 77F
04/04 16:50, 77F
→
04/04 16:50,
3周前
, 78F
04/04 16:50, 78F
推
04/04 16:51,
3周前
, 79F
04/04 16:51, 79F
推
04/04 17:00,
3周前
, 80F
04/04 17:00, 80F
推
04/04 17:30,
3周前
, 81F
04/04 17:30, 81F
→
04/04 17:30,
3周前
, 82F
04/04 17:30, 82F
推
04/04 17:40,
3周前
, 83F
04/04 17:40, 83F
推
04/04 20:29,
3周前
, 84F
04/04 20:29, 84F
推
04/04 20:47,
3周前
, 85F
04/04 20:47, 85F
→
04/04 20:47,
3周前
, 86F
04/04 20:47, 86F
→
04/04 20:47,
3周前
, 87F
04/04 20:47, 87F
→
04/04 20:47,
3周前
, 88F
04/04 20:47, 88F
→
04/04 20:47,
3周前
, 89F
04/04 20:47, 89F
→
04/04 20:47,
3周前
, 90F
04/04 20:47, 90F
→
04/04 20:47,
3周前
, 91F
04/04 20:47, 91F
討論串 (同標題文章)
完整討論串 (本文為第 2 之 2 篇):