淺談AlphaGo原理

原post > https://lihkg.com/thread/339275/page/1

 

見到AlphaGo先後打敗李世石同柯潔之後,我忽發其想,到底人類有冇可能打敗AlphaGo  跟住我就開始睇到底AlphaGo到底係咩一回事

利申:我連圍棋都未識捉

第一章:點解圍棋咁撚難

圍棋其實係所謂嘅perfect information game,意思係成盤棋完全冇運氣成份,只要你個運算能力夠勁,係可以完全計得出行邊步可以一定羸,咁但係到底要有幾勁?

1997年,當年IBM部深藍超級電腦(Deep Blue)就係用計哂成盤棋所有可能性嘅方法羸左個國際象棋(Chess)世界冠軍,而國際象棋一共係有10^120咁多種可能性,但到左20年後嘅今日依然係冇任何一部電腦可以用計哂所有可能性呢個方法(學術上叫Minimax)去玩圍棋,因為圍棋嘅可能性係10^761咁多 

屌你老母,咁到底有幾多?  
科學家話成個宇宙呀,都係得10^80咁都原子咋(我都唔知堅定流),咁你話10^761有幾多啦

如果大家都仲係對圍棋複雜性冇咩概念,可以睇下以下呢幅圖

上面一個咁撚簡單嘅3×3井字過三關都已經咁撚複雜,你每行一步棋,之後都有N咁多個可能性,咁你話19×19嘅圍棋係幾咁複雜啦

btw大家記住上面張圖係叫做樹狀結構(tree),由左睇到右,你每行一步棋叫一個行動(action),行完之後個盤棋個樣就叫做狀態(status),tree就係一個數據庫記底哂你每一個action會導致變成咩status

睇完上面對tree嘅描述可能大家會覺得好on9簡單複雜化 ,但事實係呢個概念好重要,如果連呢個概念都冇,我再寫落去都冇用

第二章:AlphaGo原理簡述

講左咁耐廢話依家講返正題,以現今科技黎到講圍棋係冇可能用Minimax去到玩,因為果棵tree會大撚到跟本冇可能做search,所以AlphaGo就用左不同嘅AI算法去到玩圍棋

但其實Google用咁多AI算法目的只有一個,就係將岩岩棵tree縮細到以佢地依家嘅運算能力可以運算到而又岩岩好羸到你班平凡嘅連登仔就得啦,唔洗多,羸你1/4子都係羸 

所以你見到其實所有AI都係羸你少少就夠,而果小小可能係人世間最遠嘅距離

AlphaGo主要係用左蒙特卡洛樹搜索(MCTS)呢種算法去search棵tree搵答案,同時用埋深度神經網絡(DNN)去盡量將棵tree縮細,令到佢可以係合理時間內可以搵到一步較好嘅棋

再簡單黎講就係,既然我冇可能搵到一步一定羸你既棋就算啦,我搵一步有最大機會羸你既棋

至於點搵一步最大機會會羸你既棋 咁就梗係不斷同人捉,記底哂棋盤,形成自己嘅棋譜 呢樣就係所謂嘅訓練(training)

睇到呢到你好可能會屌老母,講咁撚耐AlphaGo同普通連登仔有咩分別,咪又係咁學捉圍棋  冇錯呀!AI攪咁多野就係想研究下人到底係點去學習,足足攪左60-70年到依家都未去到一個BB仔嘅級數

第二章就到呢到,如果有人睇我會出多幾章講一講蒙特卡洛樹搜索(MCTS)同埋深度神經網絡(DNN)嘅原理,因為原來要打篇咁嘅野要好耐,冇人有興趣就無謂啦   

– By 旦哥跌落波波池

7/2017

Leave a Reply