Re: [新聞] 黃士傑返台分享AlphaGo Zero開發過程

作者: jamesho8743 (加拿大好美)   2017-11-09 23:06:26
※ 引述《tlchen (台灣加油)》之銘言:
: ※ 引述《qweewqq (風一樣的男子)》之銘言:
: : DeepMind指出,他們不使用任何人類知識,AlphaGo Zero用上的是新的「強化學習」方法
: 對於 "不使用任何人類知識" 這句, 我心中始終有個大問號.
: 首先, 在一開始的 random play, AZ 根本不知何時要停.
: 必須人工設定去停它. 這用到了人類知道這樣的遊戲, 應該有限步要停.
: 雖然 AZ 的參數是經由自我對戰學的, 但整個架構呢?
: 要有幾層的的類神經網路? 每層有多少節點? 層跟層間的結構?
: covolution 要用 5x5 還是怎樣的大小?
: 要怎樣配合 VN, PN? 要用 MCTS 來尋找?
: 這些都沒用到人類的圍棋知識嗎?
: 這整個大架構, 是在學人類棋譜時, 發現這樣的架構, 可以訓練出不錯的 AI.
: 這架構不是隨便設就行得通的吧?
: 經由人類棋譜訓練, 找到一個好的大架構, 這樣可以稱作不使用人類知識?
: 如果今天一個完全不懂圍棋的人, 只針對規則, 就去訂了大模型架構,
: 然後經由自我對戰去學參數. 這樣的結果, 那叫做不使用任何人類圍棋知識.
: 現在這樣算嗎? 我心中實在有很大的黑人問號.
1.
AGZ 怎會不知何時要停? 何必需要什麼特別人工設定它? 跟第一盤或第幾盤也沒關係
給定圍棋規則(禁自盡 禁同型)
即使你2個人類對下 到最後雙方再無可著手的時候就是終局(你可以找個人試試)
這跟機器或人類無關
1. 原po 一直在搞混人類知識跟人類圍棋知識
所謂人類圍棋知識 是專指人類"在棋盤上"的著手 應法 思考 這叫圍棋知識(不包括基本規則)
AGZ "就算有" 建立在之前 AlphaGo的基礎上 比如說要用 幾層類神經網路 MCTS 或其它
"人類工程上"的知識 但這些跟"人類圍棋知識" 並不相同 基本上這個是工程問題 數學問題 主是跟棋盤大小
圍棋規則 及圍棋本質等相關的東西 而跟人類"棋盤上的著法"無關
基本上你搞混了 build time 跟 run time
AGZ的工程師懂或不懂圍棋也不重要(他要懂基本規則) 他不需要是一張白紙
除非AGZ 的設計者有把 什麼不屬於基本規則的想法寫入程式 如征子 定石 手順等等
不然AGZ 本來就沒用到"人類圍棋知識"
就是只給定基本規則 所有的著法都可以 所有的著法都是自我對戰發現改良的
它訓練過程根本沒看過人類下棋 沒跟人對下
總之
人類工程上對圍棋的知識(解法 演算法 設計等) \= 人類圍棋知識
寫出一個GAME 不代表我在玩這個GAME時是天下無敵
在GAME裡面無敵不表示我能寫出這個GAME
一個是 build time 一個是 run time
這兩個意義也不同 不要搞混
如果你今天要把人類只要跟圍棋有關的東西都叫人類圍棋知識了
把所有東西都定義進來 這就沒什麼好講的
(至於你一直說AGZ大架構有沒有用到人類的圍棋知識,
如果AGZ 只針對圍棋的基本規則去設計 優化 那就沒有用到
如果AGZ 有針對盤面特定結構去設計 優化 那就是有)
作者: danine (平常心)   2017-11-09 23:33:00
簡單明瞭
作者: jamesho8743 (加拿大好美)   2017-11-09 23:35:00
還有 alpha go 並不是因為人類棋譜才找出一個好的大架構 而是本來就設計出一個架構 才拿人類棋譜來驗證或先得到一個還不錯的結果
作者: tlchen (台灣加油)   2017-11-09 23:40:00
樓上這個可有根據?我抱懷疑的態度電腦圍棋的演進,如何設定,不斷在改變而改變的原因,很大的因素是看跟人下,怎樣改變可提升勝率AlphaGo 的架構,完全跟之前的無關?講個較極端的例子,假設今天有個工程師分別用VGGNet,
作者: birdy590 (Birdy)   2017-11-09 23:45:00
你應該先看一下 DZG作者那串文
作者: tlchen (台灣加油)   2017-11-09 23:46:00
GoogLeNet, 及 ResNet 設計了三個AI. 並分別用人類棋譜去
作者: birdy590 (Birdy)   2017-11-09 23:46:00
alphago實際上是用現有的一些技術拼湊實驗出來
作者: tlchen (台灣加油)   2017-11-09 23:47:00
學參數.然後三個AI對打,假設最後ResNet贏了,所以工程師之
作者: birdy590 (Birdy)   2017-11-09 23:47:00
過去就算有人想到 也沒有足夠資源做出來zero就更不用說了 成本高的誇張
作者: tlchen (台灣加油)   2017-11-09 23:48:00
後就只用ResNet的版本,然後用自我對戰學參數.這樣的AI,算不算沒有用到人類的圍棋知識?
作者: birdy590 (Birdy)   2017-11-09 23:50:00
無言 顯然沒看懂這篇
作者: tlchen (台灣加油)   2017-11-09 23:50:00
根據這篇的說法,那似乎是沒有用到人類的知識
作者: birdy590 (Birdy)   2017-11-09 23:51:00
alphago一開始就拋棄了人類的「圍棋知識」
作者: tlchen (台灣加油)   2017-11-09 23:51:00
在我的認知,它用到了人類的圍棋知識.因為所謂的優化,並不
作者: birdy590 (Birdy)   2017-11-09 23:52:00
餵人類棋譜的時候 還可以說會受人類決策的影響
作者: tlchen (台灣加油)   2017-11-09 23:52:00
不只是參數的優化.這位工程師,一開始還做了一個三種模型
作者: Uizmp (黑袍法師)   2017-11-09 23:53:00
不用人類棋譜, 純粹自戰可能也會得到 ResNet 最適合的結論
作者: staristic (ANSI lover)   2017-11-09 23:53:00
tlchen,我建議你先定義一下你的人類圍棋知識是哪些你從來沒定義過你這個用詞指涉的範圍,這樣討論不下去
作者: tlchen (台灣加油)   2017-11-09 23:54:00
類似的情況是我之前文章說的,大架構的優化,沒用到人類的知識嗎?
作者: birdy590 (Birdy)   2017-11-09 23:54:00
這些根本不是圍棋知識 而是寫程式的知識
作者: staristic (ANSI lover)   2017-11-09 23:54:00
人類的知識和人類的圍棋知識差很多耶?你指哪個?
作者: Uizmp (黑袍法師)   2017-11-09 23:55:00
人類的知識, 但不見得是圍棋的
作者: birdy590 (Birdy)   2017-11-09 23:55:00
只要規則定義清楚 程式設計師根本不需要會下圍棋
作者: tlchen (台灣加油)   2017-11-09 23:55:00
我說的是人類圍棋知識,而棋譜是它的表現
作者: Uizmp (黑袍法師)   2017-11-09 23:56:00
不過以DM說可以應用在其他領域(伺服器省電),應該是泛用的
作者: tlchen (台灣加油)   2017-11-09 23:56:00
若選大架構是可以從自戰選的,我就認為是沒用到人類圍棋知識,這是我在先前文章就這樣說的
作者: Uizmp (黑袍法師)   2017-11-09 23:57:00
不用, 反而需要的是神經網路方面的知識
作者: staristic (ANSI lover)   2017-11-09 23:57:00
所以不要鬼打牆啦,你的「人類的圍棋知識」的定義是?
作者: birdy590 (Birdy)   2017-11-09 23:57:00
master之前 訓練過程會從人類棋譜取得特徵所以可以視為間接接收了人類的圍棋知識
作者: staristic (ANSI lover)   2017-11-09 23:58:00
我們先來搞定最基礎的定義再繼續往下討論
作者: tlchen (台灣加油)   2017-11-09 23:58:00
這些不只是寫程式的知識,每個領域,要用怎樣的架構,是不同
作者: birdy590 (Birdy)   2017-11-09 23:58:00
但是演算法本身和圍棋知識並沒有關係
作者: Uizmp (黑袍法師)   2017-11-09 23:58:00
棋譜可以從人類來,但大多是自戰 (後來就純粹自戰了
作者: birdy590 (Birdy)   2017-11-09 23:59:00
寫程式的人也不需要會下棋
作者: tlchen (台灣加油)   2017-11-09 23:59:00
為什麼在圍棋適合用ResNet,這不需要對圍棋的了解?
作者: Uizmp (黑袍法師)   2017-11-09 23:59:00
這個就是寫程式的知識 和規則有關, 和棋力無關
作者: birdy590 (Birdy)   2017-11-10 00:00:00
實驗一下就知道了 為什麼需要額外的知識?
作者: Uizmp (黑袍法師)   2017-11-10 00:00:00
不需要, 因為 ResNet 和 圍棋沒有關係啊
作者: birdy590 (Birdy)   2017-11-10 00:03:00
從論文也看的出來 過程中試過又丟掉的東西肯定很多這些和圍棋本身並沒有關係 圍棋高手也看不出來哪種好
作者: tlchen (台灣加油)   2017-11-10 00:07:00
實驗一下就知道,但怎麼實驗的?有沒有用到人類的棋譜?或是跟人下?或許真的可以用自我對戰去選大架構,而這樣做出來的,如我文所說,我認為這樣是不靠人類圍棋知識.但 alphago zero是嗎?這是我主要的疑問
作者: birdy590 (Birdy)   2017-11-10 00:12:00
要實驗就兩個演算法對下 需要什麼棋譜?
作者: staristic (ANSI lover)   2017-11-10 00:14:00
我再問一下,你所謂「人類圍棋知識」的定義是?
作者: Uizmp (黑袍法師)   2017-11-10 00:14:00
結論只有誰贏, 這個不需要有棋力吧?
作者: Uizmp (黑袍法師)   2017-11-10 00:19:00
他大概覺得被李世石找出問題,AG要用同個架構訓練更久也算吧3天的AGZ打不過Master,要40天,但因為Master有人類棋譜所以.
作者: jamesho8743 (加拿大好美)   2017-11-10 00:28:00
簡單來說 Alpha go 餵人類棋譜或自我對戰 訓練出來的是參數 相當於人類的記憶 而alpha go 程式則相當於大腦本身記憶可以換可以訓練 但這並不會去影響大腦本身的結構不清楚這點也不用再扯了 這是run time 的東西除非在build time的時候 工程師把除了圍棋規則以外的想法寫了進去 或加進結構 這點本文已有說明
作者: tlchen (台灣加油)   2017-11-10 00:41:00
人類圍棋知識,就是除了圍棋本身規則,人類根據這規則而有的想法或產品問題是這個大腦的結構是人為建構的,人為如此建構,是否經某種優化過程,而過程是否用到人類圍棋知識像我舉的例子,要用某模型,決定的過程是否用到了跟人對戰或其它人類圍棋知識
作者: staristic (ANSI lover)   2017-11-10 00:47:00
AlphaGo Zero 沒有,就這樣
作者: tlchen (台灣加油)   2017-11-10 00:47:00
當然實驗可以是兩個AI對下,但兩個AI對下,它們用的參數是怎麼來的
作者: jamesho8743 (加拿大好美)   2017-11-10 00:47:00
了解tlchen 他現在把AG工程師如果因為用人類棋譜得到的結果 使得工程師去選擇了某個演算法 所造成對AGZ的影響 也認為是"人類的圍棋知識"的影響
作者: birdy590 (Birdy)   2017-11-10 00:48:00
其實alphago從一開始就沒有
作者: tlchen (台灣加油)   2017-11-10 00:48:00
AlphaGo Zero 的大架構是跟 AlphaGo Master 類似的你確定這個架構沒有?
作者: jamesho8743 (加拿大好美)   2017-11-10 00:49:00
但前面已說過即使有 這是人類工程上的圍棋知識 而不是人類棋盤上的圍棋知識
作者: staristic (ANSI lover)   2017-11-10 00:50:00
如果tlchen的理解像james大講的,那也不用討論了
作者: birdy590 (Birdy)   2017-11-10 00:50:00
建立適合圍棋的模型 不需要什麼圍棋知識
作者: tlchen (台灣加油)   2017-11-10 00:51:00
MCTS這方法不是AlphaGo先用的,它也拿來用,不是根據之前的經驗?
作者: birdy590 (Birdy)   2017-11-10 00:51:00
幾乎都是工程考量 想辦法提高演算法的效率
作者: jamesho8743 (加拿大好美)   2017-11-10 00:53:00
如果工程師完全只用圍棋規則推導出來的 那就肯定沒有人類棋盤上的知識在裡頭
作者: tlchen (台灣加油)   2017-11-10 00:53:00
不需要圍棋知識,就可以知道怎樣選擇適合的模型?
作者: birdy590 (Birdy)   2017-11-10 00:53:00
說穿了都是剪枝的方法 哪種好是比較出來的初期弱的時候 判斷好壞包括比對和人類棋手決策的命中率
作者: tlchen (台灣加油)   2017-11-10 00:54:00
人類工程上的圍棋知識是怎麼來的?難道不是先前的實驗,利用到人類的圍棋知識
作者: birdy590 (Birdy)   2017-11-10 00:55:00
變強以後這招就不靈了 直接對下個100盤最快最直接什麼叫工程上的圍棋知識?
作者: tlchen (台灣加油)   2017-11-10 00:55:00
我這篇推文的一開始例子看一下,那算不算用到人類圍棋知識?
作者: birdy590 (Birdy)   2017-11-10 00:56:00
比較好壞跟人類棋譜何干?
作者: staristic (ANSI lover)   2017-11-10 00:56:00
AlphaGo前的AI和AlphaGo的架構完全不同啦是不是機器學習這點是決定性的差別啊
作者: birdy590 (Birdy)   2017-11-10 00:58:00
所以前面就說DZG作者專訪先看一下
作者: tlchen (台灣加油)   2017-11-10 00:58:00
b大,回去看一下我的例子,那些AI的參數是用棋譜學的
作者: birdy590 (Birdy)   2017-11-10 00:59:00
裡面講以前的做法 那些才叫「圍棋知識」棋譜是拿來訓練用的 跟架構也沒有關係這裡的參數又是指啥?
作者: tlchen (台灣加油)   2017-11-10 01:00:00
s大,MCTS之前的AI有沒有用?AlphaGo也拿來用,這沒用到經驗?b大,我講的圍棋知識,前面有定義.棋譜是其展現
作者: birdy590 (Birdy)   2017-11-10 01:01:00
MCTS跟圍棋知識毫無關係你不知道MonteCarlo是指什麼嗎
作者: tlchen (台灣加油)   2017-11-10 01:02:00
參數是類神經網路的那些 weights, master 是用人類棋譜學
作者: staristic (ANSI lover)   2017-11-10 01:03:00
MCTS是一種通用演算法,不止用在圍棋
作者: tlchen (台灣加油)   2017-11-10 01:03:00
而 AZ 的參數是經由自我對戰學的
作者: birdy590 (Birdy)   2017-11-10 01:03:00
原始的演算法可是亂下下到完
作者: jamesho8743 (加拿大好美)   2017-11-10 01:04:00
要用AI當然就不想用人類知識 看不出要把人類的圍棋知識加入幹嘛 圍棋可以光數學純綷推導 優化 加入人類知識只是更多例外更難寫 以AGZ來說 沒有 end 你要堅持你自己的想法跟世界不同 那就繼續吧 大家都錯了deep mind 也説謊 你是對的
作者: tlchen (台灣加油)   2017-11-10 01:04:00
MCTS當然不止用在圍棋,但之前在圍棋上有成功的經驗,而
作者: birdy590 (Birdy)   2017-11-10 01:04:00
zero證明了master之前也只是抄近路
作者: tlchen (台灣加油)   2017-11-10 01:05:00
AlphaGo 也用了, 沒用到前人經驗?
作者: birdy590 (Birdy)   2017-11-10 01:05:00
從亂下開始慢慢訓練起 結果還可以更強那跟圍棋知識根本無關
作者: staristic (ANSI lover)   2017-11-10 01:06:00
是前人的經驗沒錯啊,但是這不是在人類圍棋的知識內吧你到底有沒有搞清楚自己在問啥?演算法的知識 != 人類圍棋的知識
作者: jamesho8743 (加拿大好美)   2017-11-10 01:08:00
人類工程上的圍棋知識怎麼來的?當然是思考跟推導來的 這不需要會下圍棋 只要會思考 數學 跟基本規則
作者: monyo (無常)   2017-11-10 01:12:00
他定義的"人類圍棋知識"其實是"人類開發電腦圍棋累積知識"我這樣解讀對不對?
作者: birdy590 (Birdy)   2017-11-10 01:14:00
樓上這定義也太小看deepmind了它用的技術雖然之前多半都存在要把它們湊在一起並不是件容易的事
作者: monyo (無常)   2017-11-10 01:21:00
啊? 我只是試圖解讀tl的定義啊
作者: birdy590 (Birdy)   2017-11-10 01:27:00
tl沒有意識到一件事 就是MCTS和圍棋知識是背道而馳就連隨機亂下到完 都能得到一定的棋力
作者: JasonHuang (吉吉吉)   2017-11-10 01:39:00
T大什麼神邏輯?照這樣講世界上沒人能稱作無師自通了。因為學習過程就算沒問過其他人,沒參考過書籍,但因為其他人類已證明人腦是學得會且有效的,所以只要有人成功做過的事,那就算有用到前人經驗??
作者: wadashi1 (阿拉丁)   2017-11-10 01:45:00
tlchen有沒有看過zero自戰的第一盤?很精彩,建議看看一開始沒有做活跟吃子的觀念,亂下碰觸到規則才發生吃子還會自己把空填滿自殺而黑子181枚,白子180枚,共361枚,下完就沒得下了,最後由規則來定出勝負。Zero就是從這種模式訓練過來的!看了一下,不止..40block下到共541步,20block下到共469步
作者: ddavid (謊言接線生)   2017-11-10 03:08:00
我是覺得可以放棄解釋了,基本上他就是用他的自定義在做討論,或者說根本不是要討論而只是想講他的定義@wadashi1 沒有子下完這種事。規則上萬一真的雙方子用完,
作者: chris610020 (可悲的阿明)   2017-11-10 03:10:00
應該說初始的價值網絡都是一片空白的,完全只依靠人類給的算式求最佳解
作者: ddavid (謊言接線生)   2017-11-10 03:10:00
可以用交換死子的方式重新取得可下的子。@chris610020 你解釋這個已經沒有用了,因為那就是認為那個一片空白的網路也算是靠「他認為的圍棋知識」選出來的他就是
作者: chris610020 (可悲的阿明)   2017-11-10 03:23:00
他講的偏向演算法優化,盡量不要做無意義的事不優化只是跑的比較慢,解果還是一樣的結果
作者: ddavid (謊言接線生)   2017-11-10 03:31:00
這倒未必,選取的架構不同也許會落到不同的Local Max裡面而落到Local Max裡面並沒有什麼理論保證一定出得來
作者: wadashi1 (阿拉丁)   2017-11-10 11:43:00
感覺起來tlchen認為..因為圍棋規則來修正Zero就算是用到人類圍棋知識,但..不給Zero規則,它怎麼知道怎麼玩?什麼不能下?怎麼決定勝負? 人類的定石,征子,棋譜,所有人類的技巧,Zero完全沒有,有的只是定義的圍棋規則對它的修正。
作者: raiderho (冷顏冷雨)   2017-11-10 11:59:00
tlchen沒說的那麼淺,但是他認為繼承上一版本的原始架構參數都是圍棋知識,這和大多數的定義不同,問題是他的定義目前沒引出什麼有建設性的討論。
作者: mothertime (我超愛傅紅雪這變態)   2017-11-10 12:14:00
這篇不是很明確說出人類棋譜等於人類圍棋知識了嗎?規則比較像邊界條件,不屬於知識吧
作者: oldTim (TIME WILL TELL)   2017-11-10 16:18:00
如果只是棋譜本身不是知識,是資訊。要將資訊歸納整理後才能稱為知識,比如說你如果不懂化學拿到元素週期表就算能夠全部背起來也不能說懂得週期表裡面的化學知識拿電腦圍棋來說,AG出世前的第一波專家系統AI通常都有真對判斷局部攻殺部分輸入人類的定石Data,與AG的最大差別並非輸入不同的data,而是使用了人類圍棋知識中"局部"的觀念來做死活判斷,而局部這個觀念是人類自行總結的規則裡沒有
作者: siyaoran (七星)   2017-11-10 19:33:00
tlchen一開始就對參數這東西理解錯了 weight怎麼給的也是靠機器學習自己修正的 須要人給weight還能算機器學習?
作者: peterhuo (人生位階樂勝真爽)   2017-11-10 20:41:00
辛苦,那廝基本上就是自尊心太強的X孩別再浪費時間回啦

Links booklink

Contact Us: admin [ a t ] ucptt.com