11/19讀書筆記(2)

1、蒙特卡洛搜索算法和基于深度學習的模式識別促成了AlphaGo的成就。

據各方研究來看,AG不是自己想出棋著來,而是學習了人類高手的千萬盤棋局(這就是大數據)。它記錄下每個棋局中的每個局面,把上百萬個局面當作輸入進行訓練,通過一個多層神經網絡來預測人類高手會走出的下一著。經過巧妙的神經網絡設計與訓練,這個多層神經網建模了人類高手的“棋感”——對于當前局面,已知以往下棋歷史中的勝率。在實際下棋時,計算機可以通過視覺識別記錄下棋局,然后和以往的棋局數據比較,找到相同的模式(局面),再檢索不同局面往后發展下去,根據以往下棋史中的勝率高低選出一些高質量的候選點供走子,而不必每個候選點都去嘗試一遍,從而極大地減少系統運算量,不至于讓系統“殫精竭慮”而死。這就像人類,不會窮盡所有候選點,而是根據經驗和感覺選擇某些點。選出幾個點之后,人類還是要比較、計算哪個點更好。對于機器來說,這個計算就交給蒙特卡洛搜索算法。

蒙特卡洛樹形搜索是對以往決策樹算法的優化。對于以往的決策樹算法,即便給了一個高質量的候選點,對于接下來的選擇,它同樣要進行窮舉,在每個要選擇的地方做一次分支,同樣會遇到可選路徑數量的指數爆炸。

蒙特卡洛方法就體現了概率學的精妙。假設在某個棋局局面下,深度學習網絡給出了三個候選落子辦法A、B、C,以這三個點為根節點,分別往下走子,可以想象成三個樹,每棵樹還有無數分支。蒙特卡洛搜索不去窮盡所有分支,而是派出300萬只螞蟻分別從A、B、C出發,每個點100萬只,飛速向樹梢爬(也就是往下黑白棋交替走子直到決出勝負,基本上走200步就會分出勝負),總有部分螞蟻走到最高點(也就是決出勝負,假設螞蟻走到終點的情況代表黑子勝,沒走到終點的情況代表白子勝)。

假設從A點出發的100萬只螞蟻有30萬只到達終點,B的為50萬只,C為40萬只,系統就認為黑子走B點勝率更高,就會選擇B點。這就是概率學的取樣算法,相比逐項窮舉法,極大地縮減了計算量。

CPU芯片和GPU(圖形處理器)芯片同時進行神經網絡計算與蒙特卡洛樹形搜索,模擬海量的終盤局面,這是人類計算能力無法相比的。由于采用深度學習建模了人類高手的棋感,看上去人工智能擁有了人類的大局觀,而這個大局觀恰恰蘊含在人類高手的千萬盤對弈數據里。

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容