淺談AlphaGo原理

245 回覆
971 Like 18 Dislike
2017-07-29 20:12:53
神經元個位唔太明
我明白x0*y0+x1*y1...........呢個位
咁一個神經原做呢樣野 咁其他神經元呢?
2017-07-29 20:13:28
神經元個位唔太明
我明白x0*y0+x1*y1...........呢個位
咁一個神經做呢樣野 咁其他神經元呢?
2017-07-29 20:15:52
lm

如果兩個alpha go 捉,會有咩結果?


係AlphaGo訓練過程中係有兩個AlphaGo捉呢個環節
最後贏左果個就係你見到果個AlphaGo

咁見到嗰個alpha go 同 一樣既 alphago捉會點


呢個好問題 以下係我估計嘅情況
由於training目的係減少error rate,假設兩個相同AlphaGo互屌做訓練
個error rate會一路降低到冇得再低,之後就係兩個AlphaGo應該都係50%勝率

以上斷9估,有冇其他巴打解答下

應該唔係50% 因為alphago執白子勝率較高 (以自戰棋譜嚟睇)

其實alphago個project完之前 deepmind佢地出左50局alphago打alphago既譜.
https://deepmind.com/research/alphago/alphago-vs-alphago-self-play-games/
2017-07-29 20:20:10
Lm
2017-07-29 21:00:04
各位巴打,由於聽日有野做,星期一又要返工
唔想大家等成個星期先有文睇,所以決定一陣寫埋最後一章大結局
就係寫DNN點同MCTS結合產生AlphaGO
因此決定將原本想寫嘅NN細節全部唔寫啦,直接去睇大結局啦
2017-07-29 21:05:05
好勁
lm
2017-07-29 21:48:19
幾好睇

但係咁組係
2017-07-29 22:02:43
大結局之架構篇

上一章講左咩係NN,咁DNN係咩黎
DNN其實基本原理同NN一9樣,只不過係神經元比較多同埋個結構同NN唔同
我知道我咁講又會有人出黎屌我錯撚哂 但為左令大家更易明成件事唯有比人繼續屌

廢話唔講咁多,比大家睇下唔同嘅神經網絡結構先

Neural Network(NN)


Convolutional Neural Network(CNN)


Recurrent Neural Network(RNN)


CNN同RNN就係所謂嘅DNN啦,其中AlphaGo係會用到CNN,有興趣可以自己google下CNN嘅細節

NN同CNN比較簡單黎講就係NN比較快但冇咁準確,CNN比較準確但係慢好撚多,因為好多神經元

入正題,AlphaGo一共由4 套神經網絡組成
Rollout Policy Network (普通NN)

SL Policy Network (CNN 用 Supervised Learning 方式學習,用黎做 Classification)

RL Policy Network (CNN 用 Reinforcement Learning 方式學習,都係用黎做Classification)

Value Network (CNN用 Supervised Learning 方式學習,用黎做Regression)

咩係Supervised Learning?
咩係Reinforcement Learning?

呢D下一章訓練篇會講

咁到底每一個Network有咩9野用? 請大家好好記住,重點黎

Rollout Policy Network由於係NN,所以計結果好快,但唔準確,用作快速落棋之用

SL Policy Network,結果準確,係決定行邊一步棋嘅重要因素之一,要記住係之一唔係唯一

RL Policy Network,用黎生成訓練數據(training Data)比Value Network用黎做訓練(training)

Value Network,用黎計某一個局面下我到底有幾大機會贏,記住!Value Network同SL Policy Network好好好撚唔同

s=state(狀態)
a=action(行動)

SL Policy Network係用黎計下一個行動(a)落邊個位最好
Value Network系用黎計某一個局面(s)下我嘅勝率有幾高
2017-07-29 22:13:17
留名
2017-07-29 22:32:27
唔係電腦人真係睇唔明
但眼見你已經用一個好顯淺既手法去寫呢件事出黎已經好有心
2017-07-29 22:34:34
大結局之訓練篇

Rollout Policy Network

輸入:依家個棋局係咩樣
輸出:棋盤上所有可以落嘅位,每個位一個分數,高代表係好棋
結構:NN
訓練方式:Supervised Learning
訓練數據:人類高手棋譜

SL Policy Network

輸入:依家個棋局係咩樣
輸出:棋盤上所有可以落嘅位,每個位一個分數,高代表係好棋
結構:CNN
訓練數據:人類高手棋譜
訓練方式:Supervised Learning

咩係Supervised Learning?
姐係你睇棋譜,如果遇到某一種情況,棋譜會有教你下一步係點行,假設棋譜教你嘅方法去行係100%正確咁去做訓練,如果單純用SL Policy Network去捉棋,結果出黎會係人類高手行為

RL Policy Network

輸入:依家個棋局係咩樣
輸出:棋盤上所有可以落嘅位,每個位一個分數,高代表係好棋
結構:CNN
訓練數據:由兩個SL Policy Network不斷互屌產生嘅數據
訓練方式:Reinforcement Learning

咩係Reinforcement Learning?
簡單黎講就係訓練過程中目標唔係下步棋好唔好,而係最後要贏!
Supervised Learning係講緊如果係某一局面,行某一步係最好
Reinforcement Learning係講緊我不斷行,行左幾百步之後,輸撚左,代表呢幾百步都唔係太好

如果直接用RL Policy Network捉棋,結果係比人類高手更高手

Value Network

輸入:依家個棋局係咩樣
輸出:一個分數,我嘅贏面有幾大
結構:CNN
訓練數據:由兩個 (SL Policy Network + RL Policy Network)不斷互屌產生嘅數據
訓練方式:Supervised Learning

呢個Value Network係同黎避免有人亂咁落棋,咁岩落中AlphaGo未見過嘅局面,因為訓練數據入面包含左一少部分隨機因素
防止你盲拳打死老師傅

訓練數據產生詳情
首先由1至450隨機選擇一個數(U),假設U=101

1) 由兩個SL Policy Network互屌U-1個回合先
2) 去到U果個回合大家亂咁落一棋,咁依家個局面就係Su
3) 由Su開始用兩個RL Policy Network又再不斷互屌,直到分出勝負

咁樣就產生左一條訓練數據,數據大概係表達緊係Su情況下最後係贏定輸,呢個都係Value Network目的,計算某一局面下勝率有幾多

根據產面方法種複幾萬次,就會有幾萬條訓練數據,用黎比Value Network訓練

訓練篇完
2017-07-29 22:36:53
神經元個位唔太明
我明白x0*y0+x1*y1...........呢個位
咁一個神經做呢樣野 咁其他神經元呢?

求解
2017-07-29 22:38:06
神經元個位唔太明
我明白x0*y0+x1*y1...........呢個位
咁一個神經做呢樣野 咁其他神經元呢?

求解


寫埋個大結局覆你
2017-07-29 22:42:22
連登開始高質
2017-07-29 23:02:07
lm
2017-07-29 23:07:26
lm
2017-07-29 23:08:40
lm
2017-07-29 23:36:15
最終章之捉棋

攪撚左成日就係為左教我捉棋,人類真係無聊到極點
依家我已經係圍棋世界冠軍,下一步就係食哂你班毒撚D女
by AlphaGo

AlphaGo係由DNN同MCTS組成,依家巴打們都都已經對DNN同MCTS有初步了解,上兩章都產生左4套神經網絡,你時候黎個大結合捉設盤棋啦

MCTS有四個步驟,用呢四個步驟就可以決定行邊步棋啦



a) Selection
係Selection呢個環節,主要你簡當前局面下選擇邊一步棋去Expansion
Q = 行呢步棋嘅總得分
u(P) = 到底呢一步棋有幾值得探索嘅分數

Q + u(P) 最大果個我地就行落去睇睇咩環境,記住係睇下咩環境咋,唔係真係行棋嫁

Q點計?
Q 主要由Value Network計出黎
u(P) 主要係由SL Policy Network計出黎,因為值唔值得探索落去,某程度上同呢步棋得分高低有關係

咁u(P)有咩用?簡單黎講就係之前唔知邊章所講咁,要平衡返到底用死最高分好定探索下新大陸好

如果一步棋Q好撚高但u(P)極低,同另一步棋係Q中等u(P)高,AlphaGo會走去睇下後者咩環境

講多次,依家係探索緊,未真正落棋!


呢個位我已經盡力講到最簡單,唔明問啦

b) Expansion
假設我係Selection選擇好左一步棋,咁我就入去果步棋睇睇之後個局面係咩樣,不斷重覆Selection直到去到樹底,姐係之後概棋從未探索咁就進入下一個步驟

c) Evaluation
呢個步驟係計分,主要計兩個分
V = 用Value Network計依家呢個局面贏面有幾高
R = 用Rollout Policy Network快速模擬捉棋捉到尾,睇下贏定輸

有左呢兩個值就可以用呢兩個值黎計出呢一個狀態(S)下Q係幾多
咁到底係點計呀屌你
唔好問啦,有條公式加減乘除咁計出黎囉

d) Backup
計左最底個Q之後就將V同R傳返上每一個曾經Expansion過嘅地方,然後每個地方都更新個Q值

重複a至d唔知將多次之後,當有一步棋Q+u(P)我值大過某特定值,就代表棵tree已經順利產成左,有哂信心贏硬你啦,我就搵Q+u(P)最大果步落

冇撚得輸啦

大結局
2017-07-29 23:42:02
神經元個位唔太明
我明白x0*y0+x1*y1...........呢個位
咁一個神經做呢樣野 咁其他神經元呢?

求解


假設
a神經元個output係 Ya = x0*w0a + x1 * w1a + x2 * w2a
b神經元個output係 Yb = x0*w0b + x1 * w1b + x2 * w2b
c神經元個output係 Yc = x0*w0c + x1 * w1c + x2 * w2c

記住每個W都係唔同值,一開波其求比個random值落去

假設係兩層神經網絡

d神經元個個input = a, b, c 個output

Yd = x0 * w0d + Ya * Wad + Yb * Wbd + Yc * Wcd

Yd就係結果

假設冇Activation Function
2017-07-29 23:45:42
留名
2017-07-29 23:47:00
想問吓點解開局要諗咁耐
常見開局都係幾種,應該可以秒落

甚至第一步都要等


係tree searching嘅角度,第一步係最多野要計,因為每一步會爆下面N咁多個可能性出黎,因為係樹頂
相反如果玩到中後期,已經差唔多去到樹底,冇咩其他可能性,咁就冇咩計,好快計到

仲係唔明睇返井字過三關圖可能你會有新領誤
2017-07-29 23:48:39
黎明
2017-07-29 23:51:03
咁樓主有無方法研究到勁過alphago既野?

然後轉手賣比中國,打贏美國,我諗住你即刻變有錢大人物


AlphaGo已經係Google覺得冇咩用,放個原理出黎比我地D平常人睇下
人地個Lab入而個科技快係快出面10幾年
如果我真係走去攪個勁過AlphaGo出黎挑戰,只會比Google係Lab求其拎樣野出黎撚我狗
2017-07-29 23:51:49
聽過有人話其實啲algorithm唔係咩新野
只係computing power勁咗先實現到以前啲 algorithm

真定假?
吹水台自選台熱 門最 新手機台時事台政事台World體育台娛樂台動漫台Apps台遊戲台影視台講故台健康台感情台家庭台潮流台美容台上班台財經台房屋台飲食台旅遊台學術台校園台汽車台音樂台創意台硬件台電器台攝影台玩具台寵物台軟件台活動台電訊台直播台站務台黑 洞