Minigo

Minigo是一套電腦圍棋軟體。

簡介 
Minigo是一套依照DeepMind在《自然》上對於AlphaGo Zero所發表的論文《》所實做出的開源電腦圍棋程式，也就是不使用人類棋譜與累積的圍棋知識，僅實做圍棋規則，使用單一類神經網路從自我對弈中學習（不像AlphaGo以人類角度思考，設計了Policy Network與Value Network）。

軟體是基於Brain Lee的MuGo繼續開發，使用Python與C++撰寫，並且透過TensorFlow實做類神經網路的部份。程式碼以Apache License 2.0釋出，訓練資料以公有领域（）釋出。

專案的目標包括了：

 提供使用TensorFlow、Kubernetes以及Google雲端平台實做强化学习（）的範例。
 盡可能重製論文裡所提到的方法，並提供開源的程式與工具。
 提供資料以及訓練成果，讓圍棋界、機器學習領域以及Kubernetes社群都能夠受益。

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

與Google及DeepMind的關聯 
這個計畫雖然是掛在TensorFlow的GitHub下（且TensowFlow是由Google研發出的軟體），而且主要的專案貢獻者Andrew Jackson與Tom Madams都是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個迭代（）後，團隊將訓練結果放到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論文所獨立實做出來的軟體，而Minigo專案取得Google贊助的計算資源，透過大量計算資源得到品質還不錯的訓練網路資料。因此Leela Zero的團隊與Minigo的團隊基於雙方的經驗，討論參數的調整能帶來的改善，以及雙方訓練資料共用的可能性。

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

相關連結 

 AlphaGo，所參考論文的電腦圍棋軟體。
 AlphaGo Zero，所參考論文的電腦圍棋軟體。
 Leela Zero，另外一套也是依照AlphaGo Zero所實做的開源電腦圍棋軟體。
 MuGo，由Brain Lee依照AlphaGo的論文所開發的電腦圍棋軟體。
 TensorFlow，Minigo所使用到的框架。
 電腦圍棋
 圍棋軟體

參考資料

註解

外部連結 
  

围棋软件
机器学习
游戏人工智能
人工智能应用
使用Apache许可证的软件
用C++編程的自由軟體
用Python編程的自由軟體