Re: [好文推薦] 這兩盤棋 沒人會比李世石做得好

看板GO (圍棋)作者 (史丹佛的銀色子彈)時間9年前 (2016/03/11 23:55), 9年前編輯推噓6(6016)
留言22則, 9人參與, 最新討論串4/8 (看更多)
※ 引述《nnlisalive (nnlisalive)》之銘言: : 我覺得要從程式碼方面下手了 : 首先就是阿發狗所謂的"勝率"是怎計算出來的? : 不外乎用盤面上所得到的資訊轉換成數據 : 再代入勝率函數得到每一點的勝率 : 那這個函數適用於任何盤面嗎? 沒有任何邏輯漏洞和盲點? : 算出來的勝率沒有誤差? 如果有個點勝率是70% : 具體來說應該是下了這個點跑到結束N次 有0.7*N次會贏 : 但明明就還沒下完 也不知道對方會怎下 : 所以只要能騙過電腦 讓他一直下到誤判勝率的棋 其實看很多人對AlphaGo演算法的看法好像還在以前 把作法寫死在程式裡跑Funciton的想法 所以才會說找Bug和騙電腦之類的 這就讓我想到昨天第二局騰訊那個轉播,較前面兩個解說來賓 (名字我就不曉得了,畢竟個人也沒啥圍棋經驗) 右邊那位來賓也是停留在改Code,修原始碼之類的舊式理解 左邊那位就對AlphaGo的作法,神經網路的東西理解很深 以下是個人粗淺的理解,畢竟以前沒深入研究過NN且Nature那篇也還沒看完 AlphaGo並不是把規則寫在Code裡面,而是把盤面的資料丟到一個 Model中,在Model中經過計算後吐出來一個結果來 以Policy Network來說就是吐出各點的下子可能機率 而Value Network就是該盤面的可能勝率 也就是像這樣: Input Model Output 盤面上各點的資料 共19*19 = 361維 [1, 2, ..., 361] -> Policy Network -> 各點下子可能機率 Value Network -> 盤面的可能值 真正重要的是Model中的計算參數(而且可能有非常多個) 才是決定這麼Model好壞的關鍵 當然這個關鍵是不用人手去調的,而是以過去的資料去對Model進行"訓練" 也就是參數的調整,讓這個網路能越來越符合我們要的結果 就是在之前討論或文章中作SL(Supervisor Learning)的部分 但這要有過去的資料才能作到,因此AlphaGo還多了一步 是在過去的資料上繼續自己創造資料與結果 也就是RL(Reinforcement Learning),來不斷的自我訓練 不斷的加強自身強度 所以常常看到有人說找Bug和對原始碼下手,但其實這是不對的 這個計算系統是隨時隨地在變動的 如果有一般人所謂的Bug(系統實作上的問題)也早就找出來了 要也是要對Model和系統本身的弱點來下手,但NN會在不斷的訓練逐漸趨近最佳解 所以要"騙"或找Bug是非常困難的甚至沒意義的 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 175.180.166.106 ※ 文章網址: https://www.ptt.cc/bbs/GO/M.1457711756.A.296.html

03/12 00:00, , 1F
AlphaGo 沒有弱點了?找出下法的弱點不能稱為找bug?
03/12 00:00, 1F

03/12 00:02, , 2F
我覺得輸出結果不是設計師所預期的就是BUG了
03/12 00:02, 2F
Bug部分下面很多大大推文已經詳細解釋了這不能稱作Bug的原因了 所以Google現在也在測這套系統實際上能發揮到什麼地步 也就是Model本身的能耐到底能到達什麼程度就是了

03/12 00:08, , 3F
在訓練模式中,model本身是可以回饋自己修改自己的函數
03/12 00:08, 3F

03/12 00:09, , 4F
所以如果都輸入某人的棋譜,這函式就會有某人的風格
03/12 00:09, 4F

03/12 00:11, , 5F
輸出結果當然不見得是設計師預期 不然AG就只有黃世傑的棋力
03/12 00:11, 5F

03/12 00:11, , 6F
電腦的計算能力跟心理素質確定比人類強 其他地方可未必
03/12 00:11, 6F

03/12 00:12, , 7F
AG在這個回饋機制中不斷的修正自己的函數群 就會變"強"
03/12 00:12, 7F

03/12 00:18, , 8F
要統稱為bug也不是不可,但這個案例的問題在於你很難評估
03/12 00:18, 8F

03/12 00:18, , 9F
這所謂的「bug」到底是好的或壞的
03/12 00:18, 9F

03/12 00:19, , 10F
過去我們都說bug是壞東西要debug,但這類演算法的輸出原本
03/12 00:19, 10F

03/12 00:20, , 11F
就不是原設計者可以預期的,因此不管是人想不到的好手或是
03/12 00:20, 11F

03/12 00:20, , 12F
真的爛下法都會因此被你統稱為bug,結果就是即便你抓到了
03/12 00:20, 12F

03/12 00:20, , 13F
這些「bug」也會因為你無法分辨是好bug還是壞bug而仍然難
03/12 00:20, 13F

03/12 00:21, , 14F
以利用
03/12 00:21, 14F

03/12 00:29, , 15F
簡單來說 你所謂的bug只會發生在code本身有沒有寫錯
03/12 00:29, 15F

03/12 00:30, , 16F
這種架構下 邏輯是不會出錯的 而且現在已經驗證可以打
03/12 00:30, 16F

03/12 00:31, , 17F
因為他的架構太複雜 輸出具有不可預測性
03/12 00:31, 17F

03/12 00:31, , 18F
只能直接上線測看看到底有沒有用
03/12 00:31, 18F

03/12 00:32, , 19F
換個說法 做這東西就是拿來下棋 強度? 不知道
03/12 00:32, 19F

03/12 00:51, , 20F
RL在這十幾年來 常常做為訓練board game AI的手段
03/12 00:51, 20F

03/12 01:01, , 21F
左邊那個博士說的什麼啊﹐還alphago自動改程序﹖
03/12 01:01, 21F

03/12 01:02, , 22F
右邊的俞斌寫過圍棋程式的﹐左邊不太會解釋啊
03/12 01:02, 22F
http://v.qq.com/page/q/0/v/q0019w6oaxv.html 重看了一下,左邊那位是地平線機器人CEO"余凱",右邊就是你提到的俞斌 余凱的說明都是依據學習模型之類的現代處理方法(有提到AlphaGo用CNN處理) 俞斌的話就還停留在比較舊式的圍棋程式想法,比較沒有現在ML的學習概念 ※ 編輯: reinhert (175.180.166.106), 03/12/2016 01:41:46
文章代碼(AID): #1MukgCAM (GO)
討論串 (同標題文章)
文章代碼(AID): #1MukgCAM (GO)