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

作者: kirimaru73 (霧丸)   2024-04-04 15:42:24
嘗試解釋一下過去的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技術就開始爆炸性的加速發展了
作者: medama ( )   2024-04-04 15:44:00
看不懂
作者: wenku8com (文庫8com)   2024-04-04 15:48:00
難怪龍王的工作會說人類很難理解AI的下法但只要成功學會AI的下法就能幹爆所有人
作者: lightdogs   2024-04-04 15:51:00
其實跟跑模擬有點像 參數有一定經驗參考性 但為什麼是這個參數才能跑出吻合實驗的結果 不知道
作者: killerj466v2 (肥肥)   2024-04-04 15:52:00
也就是說過去的方法 是在人類能理解的情況下用窮舉法硬幹
作者: peterturtle (peter_turtle2000)   2024-04-04 15:53:00
實質上仍然是一種求最大勝利期望值的方法,差別在於,這種方法代表人類放棄控制電腦的思考方式,而是把
作者: killerj466v2 (肥肥)   2024-04-04 15:53:00
但狗狗的方法,是用一套多重參數疊加下的最佳路徑
作者: killerj466v2 (肥肥)   2024-04-04 15:54:00
而這多重參數無法用人類下棋的方式理解
作者: lightdogs   2024-04-04 15:56:00
其實訂立獎勵機制應該算最重要的一部分 很多設計模擬
作者: ZMTL (夜風/瀟湘 VR板已經開板!)   2024-04-04 15:56:00
以這篇玩紅版,就是想辦法引導出能玩遊戲的參數吧,AI會慢慢
作者: ZMTL (夜風/瀟湘 VR板已經開板!)   2024-04-04 15:57:00
找到該怎麼做,但推文的暴力破解感覺就跟猴子沒兩樣只是可以很多很多
作者: Nitricacid (硝酸酸)   2024-04-04 16:00:00
作者: none049 (沒有人)   2024-04-04 16:00:00
問題在「來路不明的參數」是怎麼生出來的吧?
作者: Nitricacid (硝酸酸)   2024-04-04 16:01:00
恭喜各界精英理解了碼農們的生活
作者: peterturtle (peter_turtle2000)   2024-04-04 16:01:00
這個方法除了讓人因人腦的極限感到挫折之外其實蠻有效的,而之所以叫類神經網路是因為我們大腦裡也幹著差不多的事情:能用的迴路強化、沒用的迴路消失掉,而等到我們年老大腦神經元增生速度趨緩、舊有迴路也被強化過頭時就很難學新東西了。
作者: lightdogs   2024-04-04 16:03:00
來路不明的參數是藉由獎勵機制去做變化的 但問題是我們不知道這些參數的變化到底代表什麼
作者: none049 (沒有人)   2024-04-04 16:03:00
如果這種可以幹爆人類的參數其實也是訓練出來的那也只是等於用人類辦不到的實戰訓練以結果篩選出一個教不了人也不知道該怎麼解釋自己招式的我流棋士?
作者: lightdogs   2024-04-04 16:04:00
可以這麼說 他就是全憑直覺去下棋還屌打棋王得人
作者: peterturtle (peter_turtle2000)   2024-04-04 16:05:00
to none 意思差不多
作者: kirimaru73 (霧丸)   2024-04-04 16:05:00
開發現代圍棋AI有一個很重要的差異 就是人類放棄去思考「圍棋要怎麼下」這件事情,因為數學上已經證明你就就是沒有那麼高的複雜度去思考,科技在強也不行所以人類就告訴模型 我不去管圍棋的事了 幹爆對面就好
作者: none049 (沒有人)   2024-04-04 16:07:00
to以前的AI:身為你的人類老師,我要你理解這些to現在的AI:不用理解,去感覺吧!
作者: peterturtle (peter_turtle2000)   2024-04-04 16:07:00
而就在這個莫門AI統治人類的可能性誕生了 www
作者: kirimaru73 (霧丸)   2024-04-04 16:10:00
雖然原文是寶可夢,但這方面也是一樣人類壓根就沒有想教AI「怎麼」玩寶可夢人類只是想教AI「會」玩寶可夢 然後他就會了
作者: lightdogs   2024-04-04 16:13:00
而且基本上都是從獎勵機制下手 死掉一個寶可夢 bad -1分 升級了 good +1分 然後這種機制其實對扣分更敏感所以設立錯誤的話會發現ai卡住 因為他完全不敢去做會扣分的事
作者: kirimaru73 (霧丸)   2024-04-04 16:13:00
很多玩遊戲的強化學習都會有一個非零參數活著什麼都不動每frame扣多少分
作者: lightdogs   2024-04-04 16:14:00
對 譬如說最簡單的乒乓球或者flappy bird
作者: kirimaru73 (霧丸)   2024-04-04 16:15:00
後來人類撤除了所有圍棋的文化,狗就六十比零了
作者: lightdogs   2024-04-04 16:15:00
那就是alphago 跟alphago zero 的差別了
作者: staristic (ANSI lover)   2024-04-04 16:16:00
古力:原來在神乎棋技的路上我是多餘的
作者: lightdogs   2024-04-04 16:18:00
加強式學習是我覺得最沒效率的精神網路 但只要時間夠長 運算效率夠快 它又是表現最好的 但又因為前期的低效率實在難以評估獎勵機制的優劣 所以很不適合自己研究
作者: kirimaru73 (霧丸)   2024-04-04 16:21:00
加強式學習的最強王牌:不用微分也能訓練但是掏出這張王牌之後就是獎懲函數的責任了不用微分的意思就是我他媽真的什麼都能學,甚至連交友感情外交戰爭都可能學得會 但是我說那個獎懲函數呢
作者: lightdogs   2024-04-04 16:26:00
不知道 天上會掉下來吧?ww從一個玄學進到另一個玄學
作者: kirimaru73 (霧丸)   2024-04-04 16:27:00
自駕車研究的地獄笑話:你是強化學習工程師,請問撞死一個小孩扣多少分?
作者: lightdogs   2024-04-04 16:28:00
xddd
作者: csvt32745 (圓仔)   2024-04-04 16:40:00
硬train一發.jpg
作者: abc7360393 (八卦山下智久)   2024-04-04 16:44:00
這邊是有多少李宏毅老師的學生XD
作者: teps3105 (紫月)   2024-04-04 16:50:00
用猴子打莎士比亞的概念來看的話,以前的方法就是叫猴子自己打英文字母,現在的方法就是把所有莎士比亞出現過的英文單字都組合好叫猴子排列組合
作者: danielqwop (我的人生就是個冏)   2024-04-04 16:51:00
電車難題IN AI,想想就好玩,別發生在自己身上的話
作者: Ariadust (Ariadust)   2024-04-04 17:00:00
光是你這篇文我就有點看不懂了
作者: weltschmerz (威爾特斯克˙悶死)   2024-04-04 17:30:00
類神經的參數就是這樣 多跑幾層 你就不知道那些鬼參數是對應什麼物理要素了
作者: TeamFrotress (Heavy is Dead)   2024-04-04 17:40:00
科普推
作者: j022015 ( ˊ ﹀ˋ)   2024-04-04 20:29:00
笑死 我開始理解銃夢中行星級AI的恐怖了
作者: chejps3105 (氋氃)   2024-04-04 20:47:00
「前阿法狗時代的圍棋AI有沒有用這種方法來進行估算」,其實蒙地卡羅法拿來下圍棋最早是1993年的Brugman做的Gobble,只是當時硬體沒跟上又沒結合後續包含機器學習在內的演算法,所以成績極爛,爛到好幾年沒人理他,直到2000年Bouzy發表蒙地卡羅下圍棋的論文,而且取得不錯的成績,電腦圍棋界才開始有人投入改良蒙地卡羅法

Links booklink

Contact Us: admin [ a t ] ucptt.com