Minigo

Minigo是一套依照DeepMind在《自然》上對於AlphaGo Zero所發表的論文《Mastering the game of Go without human knowledge》所實做出的開源計算機圍棋程式。

簡介

Minigo是一套計算機圍棋軟體。也就是不使用人類棋譜與累積的圍棋知識,僅實做圍棋規則,使用單一類神經網路從自我對弈中學習(不像AlphaGo以人類角度思考,設計了Policy Network與Value Network)。

軟體本身使用Python撰寫,並且通過TensorFlow實做類神經網路的部分。代碼以Apache License 2.0發布,訓練數據以公有領域(Public domain)發布。

項目的目標包括了:

•提供使用TensorFlow、Kubernetes以及Google雲平台實做強化學習(英語:Reinforcement learning)的示例。

•儘可能重製論文裡所提到的方法,並提供開源的程式與工具。

•提供數據以及訓練成果,讓圍棋界、機器學習領域以及Kubernetes社區都能夠受益。

除此之外,項目也希望藉由獨立另外實做,驗證Leela Zero所產生的疑問 。

關係

這個項目雖然是掛在TensorFlow的GitHub下(且TensowFlow是由Google研發出的軟體),而且主要的項目貢獻者Andrew Jackson是Google員工,但官方一再強調這並非TensorFlow項目的一環,也不是DeepMind的AlphaGo官方版本,而是由獨立的團隊依照AlphaGo Zero的論文而實做出的版本。

版本演進

雖然Google與DeepMind沒有正式參與Minigo項目,但Andrew Jackson使用的是Google所提供的20%時間,並且得到Google贊助提供硬體資源進行運算,供Minigo團隊確認程式正確性:

第一階段(2017年十月)

使用約1000 CPU cores(沒有GPU)跑兩周,訓練9x9棋盤,主要是確認程式實做的正確性。

第二階段(2017年十二月至2018年一月)

使用約1000 GPU跑四個禮拜,訓練19x19棋盤,使用20 blocks x 128 filters,在更大的規模上邊修正bug,邊對程式做出各類改善,並摸索論文裡沒有提到的細節要如何實做。在160個世代(generation)後,團隊將訓練結果放到KGS與CGOS上對弈,以somebot為名,後面的數字表示是哪個世代。最終大約跑了250個世代。

第三階段(2018年1月20日至2月1日)

在確認論文內不清楚的地方,嘗試後從錯誤中學到不少事情。

第四階段(2018年2月7日後)

合作

Leela Zero同樣也是依照AlphaGo Zero論文所獨立實做出來的軟體,而Minigo項目獲取Google贊助的計算資源,通過大量計算資源得到品質還不錯的訓練網路數據。因此Leela Zero的團隊與Minigo的團隊基於雙方的經驗,討論參數的調整能帶來的改善,以及雙方訓練數據共用的可能性。

成績

Minigo的第二階段在CGOS上以somebot開頭的名稱參與19x19的對戰,排名最高的賬號為somebot-199b,獲取約2600分的BayesElo成績。

相關詞條

熱門詞條

聯絡我們