Minigo

Minigo是一套电脑围棋软件。

Minigo
当前版本
  • 199 (2018年1月30日)[1]
编辑维基数据链接
源代码库github.com/tensorflow/minigo
编程语言PythonC++
类型电脑围棋
许可协议Apache License 2.0[2]
网站github.com/tensorflow/minigo

简介

Minigo是一套依照DeepMind在《自然》上对于AlphaGo Zero所发表的论文《Mastering the game of Go without human knowledge[4]》所实做出的开源电脑围棋程序[5],也就是不使用人类棋谱与累积的围棋知识,仅实做围棋规则,使用单一人工神經网络从自我对弈中学习(不像AlphaGo以人类角度思考,设计了Policy Network与Value Network)。

软件是基于Brain Lee的MuGo继续开发[5],使用PythonC++撰写[5],并且透过TensorFlow实做人工神經网络的部分[5]。代码以Apache License 2.0发布[2],训练资料以公有领域Public domain)发布[6]

项目的目标包括了[5]

  • 提供使用TensorFlowKubernetes以及Google云端平台实做强化学习(英语:Reinforcement learning)的示例。
  • 尽可能重制论文里所提到的方法,并提供开源的程序与工具。
  • 提供资料以及训练成果,让围棋界、机器学习领域以及Kubernetes社群都能够受益。

除此之外,项目也希望借由独立另外实做,验证Leela Zero所产生的疑问[7]

与Google及DeepMind的关系

这个项目虽然是挂在TensorFlowGitHub下(且TensowFlow是由Google研发出的软件),而且主要的项目贡献者Andrew Jackson[8][注 1]与Tom Madams[注 2]都是Google员工[7],但官方一再强调这并非TensorFlow项目的一环[7],也不是DeepMindAlphaGo官方版本[5],而是由独立的团队依照AlphaGo Zero的论文而实做出的版本[5][9]

版本演进

虽然GoogleDeepMind没有正式参与Minigo项目,但Andrew Jackson使用的是Google所提供的20%时间[7],并且得到Google赞助提供硬件资源进行运算,供Minigo团队确认程序正确性[5][10]

第一阶段(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论文所独立实做出来的软件[11],而Minigo项目获取Google赞助的计算资源,透过大量计算资源得到质量还不错的训练网络资料。因此Leela Zero的团队与Minigo的团队基于双方的经验,讨论参数的调整能带来的改善,以及双方训练资料共享的可能性[12]

成绩

Minigo的第二阶段在CGOS上以somebot开头的名称参与19x19的对战[13],排名最高的账号为somebot-199b[14],获取约2600分的BayesElo成绩[13]

相关链接

  • AlphaGo,所参考论文的电脑围棋软件。
  • AlphaGo Zero,所参考论文的电脑围棋软件。
  • Leela Zero,另外一套也是依照AlphaGo Zero所实做的开源电脑围棋软件。
  • MuGo,由Brain Lee依照AlphaGo的论文所开发的电脑围棋软件。
  • TensorFlow,Minigo所使用到的框架。
  • 电脑围棋
  • 围棋软件

参考资料

  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. ^ Releases · tensorflow/minigo. [2018-02-01]. (原始内容存档于2019-02-17). 
  4. ^ Mastering the game of Go without human knowledge. 自然 (期刊). 2017-10-18 [2018-02-01]. (原始内容存档于2018-04-12). 
  5. ^ 5.0 5.1 5.2 5.3 5.4 5.5 5.6 5.7 tensorflow/minigo: An open-source implementation of the AlphaGoZero algorithm. [2018-02-01]. (原始内容存档于2020-11-09). 
  6. ^ minigo/fetch_dataset.sh at master · tensorflow/minigo. [2018-02-01]. (原始内容存档于2019-02-17). 
  7. ^ 7.0 7.1 7.2 7.3 An open-source implementation of the AlphaGoZero algorithm : cbaduk. 2018-01-30 [2018-02-01]. (原始内容存档于2018-09-04). 
  8. ^ Contributors to tensorflow/minigo. [2018-02-01]. (原始内容存档于2019-02-17). 
  9. ^ [Computer-go] MiniGo open sourced. 2018-01-29 [2018-02-14]. (原始内容存档于2020-01-28). 
  10. ^ minigo/RESULTS.md at master · tensorflow/minigo. [2018-02-01]. (原始内容存档于2019-10-18). 
  11. ^ gcp/leela-zero: Go engine with no human-provided knowledge, modeled after the AlphaGo Zero paper.. [2018-02-02]. (原始内容存档于2018-10-16). 
  12. ^ Ideas from Minigo · Issue #785 · gcp/leela-zero. [2018-02-02]. (原始内容存档于2019-10-18). 
  13. ^ 13.0 13.1 19x19 All Time Ranks. [2018-02-01]. (原始内容存档于2018-01-17). 
  14. ^ Crosstable for somebot-199b. [2018-02-01]. (原始内容存档于2020-07-10). 

注解

  1. ^ Andrew Jackson在GitHub上的账号是amj
  2. ^ Tom Madams在GitHub上的账号是tommadams

外部链接