看板 GO 關於我們 聯絡資訊
※ 引述《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
ginstein: AlphaGo 沒有弱點了?找出下法的弱點不能稱為找bug? 03/12 00:00
nnlisalive: 我覺得輸出結果不是設計師所預期的就是BUG了 03/12 00:02
Bug部分下面很多大大推文已經詳細解釋了這不能稱作Bug的原因了 所以Google現在也在測這套系統實際上能發揮到什麼地步 也就是Model本身的能耐到底能到達什麼程度就是了
tookouw: 在訓練模式中,model本身是可以回饋自己修改自己的函數 03/12 00:08
tookouw: 所以如果都輸入某人的棋譜,這函式就會有某人的風格 03/12 00:09
tlm: 輸出結果當然不見得是設計師預期 不然AG就只有黃世傑的棋力 03/12 00:11
arnold3: 電腦的計算能力跟心理素質確定比人類強 其他地方可未必 03/12 00:11
tookouw: AG在這個回饋機制中不斷的修正自己的函數群 就會變"強" 03/12 00:12
ddavid: 要統稱為bug也不是不可,但這個案例的問題在於你很難評估 03/12 00:18
ddavid: 這所謂的「bug」到底是好的或壞的 03/12 00:18
ddavid: 過去我們都說bug是壞東西要debug,但這類演算法的輸出原本 03/12 00:19
ddavid: 就不是原設計者可以預期的,因此不管是人想不到的好手或是 03/12 00:20
ddavid: 真的爛下法都會因此被你統稱為bug,結果就是即便你抓到了 03/12 00:20
ddavid: 這些「bug」也會因為你無法分辨是好bug還是壞bug而仍然難 03/12 00:20
ddavid: 以利用 03/12 00:21
blackwindy: 簡單來說 你所謂的bug只會發生在code本身有沒有寫錯 03/12 00:29
blackwindy: 這種架構下 邏輯是不會出錯的 而且現在已經驗證可以打 03/12 00:30
blackwindy: 因為他的架構太複雜 輸出具有不可預測性 03/12 00:31
blackwindy: 只能直接上線測看看到底有沒有用 03/12 00:31
blackwindy: 換個說法 做這東西就是拿來下棋 強度? 不知道 03/12 00:32
paperbattle: RL在這十幾年來 常常做為訓練board game AI的手段 03/12 00:51
saranggeyo: 左邊那個博士說的什麼啊﹐還alphago自動改程序﹖ 03/12 01:01
saranggeyo: 右邊的俞斌寫過圍棋程式的﹐左邊不太會解釋啊 03/12 01:02
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