Minigo
Minigo是一套电脑围棋软件。
当前版本 |
|
---|---|
源代码库 | github |
编程语言 | Python、C++ |
类型 | 电脑围棋 |
许可协议 | Apache License 2.0[2] |
网站 | github |
简介
Minigo是一套依照DeepMind在《自然》上对于AlphaGo Zero所发表的论文《Mastering the game of Go without human knowledge[4]》所实做出的开源电脑围棋程序[5],也就是不使用人类棋谱与累积的围棋知识,仅实做围棋规则,使用单一人工神經网络从自我对弈中学习(不像AlphaGo以人类角度思考,设计了Policy Network与Value Network)。
软件是基于Brain Lee的MuGo继续开发[5],使用Python与C++撰写[5],并且透过TensorFlow实做人工神經网络的部分[5]。代码以Apache License 2.0发布[2],训练资料以公有领域(Public domain)发布[6]。
项目的目标包括了[5]:
- 提供使用TensorFlow、Kubernetes以及Google云端平台实做强化学习(英语:Reinforcement learning)的示例。
- 尽可能重制论文里所提到的方法,并提供开源的程序与工具。
- 提供资料以及训练成果,让围棋界、机器学习领域以及Kubernetes社群都能够受益。
除此之外,项目也希望借由独立另外实做,验证Leela Zero所产生的疑问[7]。
与Google及DeepMind的关系
这个项目虽然是挂在TensorFlow的GitHub下(且TensowFlow是由Google研发出的软件),而且主要的项目贡献者Andrew Jackson[8][注 1]与Tom Madams[注 2]都是Google员工[7],但官方一再强调这并非TensorFlow项目的一环[7],也不是DeepMind的AlphaGo官方版本[5],而是由独立的团队依照AlphaGo Zero的论文而实做出的版本[5][9]。
版本演进
虽然Google与DeepMind没有正式参与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)后,团队将训练结果放到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论文所独立实做出来的软件[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所使用到的框架。
- 电脑围棋
- 围棋软件
参考资料
- ^ Release 199. 2018年1月30日 [2018年7月3日].
- ^ 2.0 2.1 minigo/LICENSE at master · tensorflow/minigo. [2018-02-01]. (原始内容存档于2019-02-17).
- ^ Releases · 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).
- ^ 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).
- ^ minigo/fetch_dataset.sh at master · tensorflow/minigo. [2018-02-01]. (原始内容存档于2019-02-17).
- ^ 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).
- ^ 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).
- ^ 13.0 13.1 19x19 All Time Ranks. [2018-02-01]. (原始内容存档于2018-01-17).
- ^ Crosstable for somebot-199b. [2018-02-01]. (原始内容存档于2020-07-10).
注解
外部链接
- 官方网站 (英文)