※ 本文轉寄自 ptt.cc, 文章原始頁面
看板C_Chat
標題

Re: [分享] 用寶可夢紅版示範AI的機器學習

最新2024-04-04 20:47:00
留言91則留言,19人參與討論
推噓21 ( 21070 )
嘗試解釋一下過去的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

Re: 回文串

2191
> Re: [分享] 用寶可夢紅版示範AI的機器學習
C_Chat04/04 15:42

91 則留言

medama, 1F
看不懂

wenku8com, 2F
難怪龍王的工作會說人類很難理解AI的下法

wenku8com, 3F
但只要成功學會AI的下法就能幹爆所有人

lightdogs, 4F
其實跟跑模擬有點像 參數有一定經驗參考性 但為什麼是

lightdogs, 5F
這個參數才能跑出吻合實驗的結果 不知道

killerj466v2, 6F
也就是說過去的方法 是在人類能理解的情況下

killerj466v2, 7F
用窮舉法硬幹

peterturtle, 8F
實質上仍然是一種求最大勝利期望值的方法,差別在於

peterturtle, 9F
,這種方法代表人類放棄控制電腦的思考方式,而是把

killerj466v2, 10F
但狗狗的方法,是用一套多重參數疊加下的最佳路徑

peterturtle, 11F
所有不管有沒有用的變數都灌進去然後讓電腦自己去撞

peterturtle, 12F
牆,最終頭破血流的電腦有機會找出一個 It Just Work

peterturtle, 13F
的結果。

killerj466v2, 14F
而這多重參數無法用人類下棋的方式理解

lightdogs, 15F
其實訂立獎勵機制應該算最重要的一部分 很多設計模擬

ZMTL, 16F
以這篇玩紅版,就是想辦法引導出能玩遊戲的參數吧,AI會慢慢

lightdogs, 17F
也是用這種方式去做優化 但神經網路目前的問題是 模擬

lightdogs, 18F
能用物理及數學公式解釋這樣的設計結構 但神經網路的

lightdogs, 19F
那些參數是真的無法理解的一堆參數

ZMTL, 20F
找到該怎麼做,但推文的暴力破解感覺就跟猴子沒兩樣只是可以

ZMTL, 21F
很多很多

Nitricacid, 22F
Re: [分享] 用寶可夢紅版示範AI的機器學習

none049, 23F
問題在「來路不明的參數」是怎麼生出來的吧?

Nitricacid, 24F
恭喜各界精英理解了碼農們的生活

peterturtle, 25F
這個方法除了讓人因人腦的極限感到挫折之外其實蠻有

peterturtle, 26F
效的,而之所以叫類神經網路是因為我們大腦裡也幹著

peterturtle, 27F
差不多的事情:能用的迴路強化、沒用的迴路消失掉,

peterturtle, 28F
而等到我們年老大腦神經元增生速度趨緩、舊有迴路也

peterturtle, 29F
被強化過頭時就很難學新東西了。

lightdogs, 30F
來路不明的參數是藉由獎勵機制去做變化的 但問題是我

lightdogs, 31F
們不知道這些參數的變化到底代表什麼

none049, 32F
如果這種可以幹爆人類的參數其實也是訓練出來的

none049, 33F
那也只是等於用人類辦不到的實戰訓練以結果篩選出一個

none049, 34F
教不了人也不知道該怎麼解釋自己招式的我流棋士?

lightdogs, 35F
可以這麼說 他就是全憑直覺去下棋還屌打棋王得人

peterturtle, 36F
to none 意思差不多

kirimaru73, 37F
開發現代圍棋AI有一個很重要的差異 就是人類放棄去思

kirimaru73, 38F
考「圍棋要怎麼下」這件事情,因為數學上已經證明你就

kirimaru73, 39F
就是沒有那麼高的複雜度去思考,科技在強也不行

danielqwop, 79F
電車難題IN AI,想想就好玩,別發生在自己身上的話

Ariadust, 80F
光是你這篇文我就有點看不懂了

weltschmerz, 81F
類神經的參數就是這樣 多跑幾層 你就不知道那些鬼參

weltschmerz, 82F
數是對應什麼物理要素了

TeamFrotress, 83F
科普推

j022015, 84F
笑死 我開始理解銃夢中行星級AI的恐怖了

chejps3105, 85F
「前阿法狗時代的圍棋AI有沒有用這種方法來進行估算」

chejps3105, 86F
,其實蒙地卡羅法拿來下圍棋最早是1993年的Brugman做

chejps3105, 87F
的Gobble,只是當時硬體沒跟上又沒結合後續包含機器

chejps3105, 88F
學習在內的演算法,所以成績極爛,爛到好幾年沒人理他

chejps3105, 89F
,直到2000年Bouzy發表蒙地卡羅下圍棋的論文,而且取

chejps3105, 90F
得不錯的成績,電腦圍棋界才開始有人投入改良蒙地卡

chejps3105, 91F
羅法