Minigo
当前版本 |
|
---|---|
源代码库 | github |
编程语言 | Python、C++ |
类型 | 電腦圍棋 |
许可协议 | Apache License 2.0[2] |
网站 | github |
Minigo是一套電腦圍棋軟體。
簡介
Minigo是一套依照DeepMind在《自然》上對於AlphaGo Zero所發表的論文《Mastering the game of Go without human knowledge[3]》所實做出的開源電腦圍棋程式[4],也就是不使用人類棋譜與累積的圍棋知識,僅實做圍棋規則,使用單一類神經網路從自我對弈中學習(不像AlphaGo以人類角度思考,設計了Policy Network與Value Network)。
軟體是基於Brain Lee的MuGo繼續開發[4],使用Python與C++撰寫[4],並且透過TensorFlow實做類神經網路的部份[4]。程式碼以Apache License 2.0釋出[2],訓練資料以公有领域(Public domain)釋出[5]。
專案的目標包括了[4]:
- 提供使用TensorFlow、Kubernetes以及Google雲端平台實做强化学习(英語:Reinforcement learning)的範例。
- 盡可能重製論文裡所提到的方法,並提供開源的程式與工具。
- 提供資料以及訓練成果,讓圍棋界、機器學習領域以及Kubernetes社群都能夠受益。
除此之外,專案也希望藉由獨立另外實做,驗證Leela Zero所產生的疑問[6]。
與Google及DeepMind的關聯
這個計畫雖然是掛在TensorFlow的GitHub下(且TensowFlow是由Google研發出的軟體),而且主要的專案貢獻者Andrew Jackson[7][註 1]與Tom Madams[註 2]都是Google員工[6],但官方一再強調這並非TensorFlow專案的一環[6],也不是DeepMind的AlphaGo官方版本[4],而是由獨立的團隊依照AlphaGo Zero的論文而實做出的版本[4][8]。
版本演進
雖然Google與DeepMind沒有正式參與Minigo計畫,但Andrew Jackson使用的是Google所提供的20%時間[6],並且得到Google贊助提供硬體資源進行運算,供Minigo團隊確認程式正確性[4][9]:
- 第一階段(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日後至三月)
- 因為19x19的成果受限,改回使用9x9訓練,在大約一個禮拜的訓練後達到職業水準。
- v5(2018年三月至四月)
- 引擎部份改用C++重寫,以改善效能。
- v7a(2018年五月的第一周)
- v7(2018年5月16日至7月17日)
- v9(2018年7月19日至8月1日)
- 取得新的資源,使用600個TPU(v2)訓練。
- v10(2018年8月28日至9月14日)
- v11(2018年9月14日至9月17日)
- v12
- v13
- v14
- v15
合作
Leela Zero同樣也是依照AlphaGo Zero論文所獨立實做出來的軟體[10],而Minigo專案取得Google贊助的計算資源,透過大量計算資源得到品質還不錯的訓練網路資料。因此Leela Zero的團隊與Minigo的團隊基於雙方的經驗,討論參數的調整能帶來的改善,以及雙方訓練資料共用的可能性[11]。
成績
Minigo的第二階段在CGOS上以somebot
開頭的名稱參與19x19的對戰[12],排名最高的帳號為somebot-199b
[13],取得約2600分的BayesElo成績[12]。
相關連結
- AlphaGo,所參考論文的電腦圍棋軟體。
- AlphaGo Zero,所參考論文的電腦圍棋軟體。
- Leela Zero,另外一套也是依照AlphaGo Zero所實做的開源電腦圍棋軟體。
- MuGo,由Brain Lee依照AlphaGo的論文所開發的電腦圍棋軟體。
- TensorFlow,Minigo所使用到的框架。
- 電腦圍棋
- 圍棋軟體
參考資料
- ^ Release 199. 2018年1月30日 [2018年7月3日].
- ^ 2.0 2.1 minigo/LICENSE at master · tensorflow/minigo. [2018-02-01]. (原始内容存档于2019-02-17).
- ^ Mastering the game of Go without human knowledge. 自然 (期刊). 2017-10-18 [2018-02-01]. (原始内容存档于2018-04-12).
- ^ 4.0 4.1 4.2 4.3 4.4 4.5 4.6 4.7 tensorflow/minigo: An open-source implementation of the AlphaGoZero algorithm. [2018-02-01]. (原始内容存档于2020-11-09).
- ^ minigo/fetch_dataset.sh at master · tensorflow/minigo. [2018-02-01]. (原始内容存档于2019-02-17).
- ^ 6.0 6.1 6.2 6.3 An open-source implementation of the AlphaGoZero algorithm : cbaduk. 2018-01-30 [2018-02-01]. (原始内容存档于2018-09-04).
- ^ Contributors to tensorflow/minigo. [2018-02-01]. (原始内容存档于2019-02-17).
- ^ [Computer-go] MiniGo open sourced. 2018-01-29 [2018-02-14]. (原始内容存档于2020-01-28).
- ^ minigo/RESULTS.md at master · tensorflow/minigo. [2018-02-01]. (原始内容存档于2019-10-18).
- ^ gcp/leela-zero: Go engine with no human-provided knowledge, modeled after the AlphaGo Zero paper.. [2018-02-02]. (原始内容存档于2018-10-16).
- ^ Ideas from Minigo · Issue #785 · gcp/leela-zero. [2018-02-02]. (原始内容存档于2019-10-18).
- ^ 12.0 12.1 19x19 All Time Ranks. [2018-02-01]. (原始内容存档于2018-01-17).
- ^ Crosstable for somebot-199b. [2018-02-01]. (原始内容存档于2020-07-10).
註解
外部連結
- 官方网站 (英文)