阿爾法圍棋是怎樣戰勝世界頂尖棋手的(修改版) |
送交者: 歲月河山 2017年07月13日13:44:38 於 [靈機一動] 發送悄悄話 |
阿爾法圍棋是怎樣戰勝世界頂尖棋手的(修改版) 阿爾法圍棋橫掃圍棋界當今頂尖高手。四比一贏韓國的李世石九段,升級Master後,快棋全勝六十位中韓日三國一流高手。其後,在三番滿棋中,三比零完勝世界等級分最高的柯潔。隨後,又輕取中國五位世界冠軍組合。聶衛平說,阿爾法圍棋的棋力有二十段。 那麼,阿爾法圍棋是怎樣戰勝世界當今頂尖棋手的呢!根據我對圍棋的理解,以及從文獻上對阿爾法圍棋的了解,談談阿爾法圍棋的算法。 圍棋盤面361個點,如果窮盡所有對策可能性,數量級是361!。這是現代計算機無法承受的。對方走了一步棋後,阿爾法圍棋有360中可能的選擇,阿爾法圍棋應用啟發式(heuristic)算法只選擇250種可能性,也假設對手只選擇250種可能性,算步深度12步。如果用樹結構表示,這個樹有250^12個葉子。這個數也很大。阿爾法圍棋應用Monte Carlo隨機算法在250^12個葉子中隨機選取一個子集。然後,對這個子集進行估價。 所謂估價,就是對子集中,每個葉子所代表的棋形進行評估。這與人類棋手的審局是類似的。找到價值最大的葉子,回溯到樹根,就找到了當前最佳一手。 估價的模型是通過深度學習獲得的。其實深度學習就是指多層神經網絡。多層神經網絡的每一層的每一個邊都有一個權重。每一層都是線性函數。但是多層綜合起來就是非線性函數。多層神經網絡的本質是多變量高階多項式。輸入節點的個數要與問題特徵的維數相等。輸出節點的個數要與目標的維數相等。估價模型的特徵是根據圍棋知識把盤面中決定價值的特徵找出來。例如,棋子連接模樣中的點數,子力的厚薄(氣數),征子環境,等等,當然最簡單的是每個子的坐標。如果用每個子的坐標做特徵,問題會變得很複雜。 用訓練數據求出權重。訓練數據采自實戰對局。用最後盤面點數,推出每一步的價值。這樣就得到了一系列特徵集合價值對(特徵集合,實測價值)。把特徵集合帶入多層神經網絡得到價值 優化目標 Sum(價值-實測價值), 得到所有權重。 這就是多變量高階多項式擬合。當然棋手越強,越客觀。訓練數據越多,模型越客觀。 千古無同局,不能期待當前棋形能在訓練數據中找到,但可以把當前棋形分解成特徵集合,用特徵集合查表的形式(插值)得到棋形的價值。當然,這個算法是很複雜的,應該是阿爾法圍棋的核心算法。 在對策組合上,即便是阿爾法圍棋考慮250^12個葉子的十分之一,也比人類棋手考慮得多。經過學習,估價模型返回的值也比人類客觀。所以,阿爾法圍棋當然要戰勝世界頂尖圍棋高手。 |
|
|
|
實用資訊 | |