跳至內容

Minigo

本頁使用了標題或全文手工轉換
維基百科,自由的百科全書
Minigo
目前版本
  • 199(2018年1月30日)[1]
編輯維基數據鏈結
原始碼庫github.com/tensorflow/minigo
程式語言PythonC++
類型電腦圍棋
許可協定Apache License 2.0[2]
網站github.com/tensorflow/minigo

Minigo是一套電腦圍棋軟體。

簡介

[編輯]

Minigo是一套依照DeepMind在《自然》上對於AlphaGo Zero所發表的論文《Mastering the game of Go without human knowledge[3]》所實做出的開源電腦圍棋程式[4],也就是不使用人類棋譜與累積的圍棋知識,僅實做圍棋規則,使用單一類神經網路從自我對弈中學習(不像AlphaGo以人類角度思考,設計了Policy Network與Value Network)。

軟體是基於Brain Lee的MuGo繼續開發[4],使用PythonC++撰寫[4],並且透過TensorFlow實做類神經網路的部份[4]。程式碼以Apache License 2.0釋出[2],訓練資料以公有領域Public domain)釋出[5]

專案的目標包括了[4]

除此之外,專案也希望藉由獨立另外實做,驗證Leela Zero所產生的疑問[6]

與Google及DeepMind的關聯

[編輯]

這個計畫雖然是掛在TensorFlowGitHub下(且TensowFlow是由Google研發出的軟體),而且主要的專案貢獻者Andrew Jackson[7][註 1]與Tom Madams[註 2]都是Google員工[6],但官方一再強調這並非TensorFlow專案的一環[6],也不是DeepMindAlphaGo官方版本[4],而是由獨立的團隊依照AlphaGo Zero的論文而實做出的版本[4][8]

版本演進

[編輯]

雖然GoogleDeepMind沒有正式參與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)後,團隊將訓練結果放到KGSCGOS上對弈,以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]

相關連結

[編輯]

參考資料

[編輯]
  1. ^ Release 199. 2018年1月30日 [2018年7月3日]. 
  2. ^ 2.0 2.1 minigo/LICENSE at master · tensorflow/minigo. [2018-02-01]. (原始內容存檔於2019-02-17). 
  3. ^ Mastering the game of Go without human knowledge. 自然 (期刊). 2017-10-18 [2018-02-01]. (原始內容存檔於2018-04-12). 
  4. ^ 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). 
  5. ^ minigo/fetch_dataset.sh at master · tensorflow/minigo. [2018-02-01]. (原始內容存檔於2019-02-17). 
  6. ^ 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). 
  7. ^ Contributors to tensorflow/minigo. [2018-02-01]. (原始內容存檔於2019-02-17). 
  8. ^ [Computer-go] MiniGo open sourced. 2018-01-29 [2018-02-14]. (原始內容存檔於2020-01-28). 
  9. ^ minigo/RESULTS.md at master · tensorflow/minigo. [2018-02-01]. (原始內容存檔於2019-10-18). 
  10. ^ gcp/leela-zero: Go engine with no human-provided knowledge, modeled after the AlphaGo Zero paper.. [2018-02-02]. (原始內容存檔於2018-10-16). 
  11. ^ Ideas from Minigo · Issue #785 · gcp/leela-zero. [2018-02-02]. (原始內容存檔於2019-10-18). 
  12. ^ 12.0 12.1 19x19 All Time Ranks. [2018-02-01]. (原始內容存檔於2018-01-17). 
  13. ^ Crosstable for somebot-199b. [2018-02-01]. (原始內容存檔於2020-07-10). 

註解

[編輯]
  1. ^ Andrew Jackson在GitHub上的帳號是amj
  2. ^ Tom Madams在GitHub上的帳號是tommadams

外部連結

[編輯]