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

外部链接