基于Alphago零纸(Silver等人),简化,高度灵活的,评论和(希望)易于理解基于自我的强化学习的实现。它旨在易于用于任何基于两人的转弯对手游戏和您选择的任何深度学习框架。为Pytorch和Keras的Othello游戏提供了示例实现。随附的教程可以在这里找到。我们还为Gobang和Tictactoe等许多其他游戏提供了实施。
要使用您选择的游戏,请在Game.py and NeuralNet.py中分类并实施其功能。可以在othello/OthelloGame.py和othello/{pytorch,keras}/NNet.py中找到Othello的示例实现。
Coach.py包含核心训练环和MCTS.py执行蒙特卡洛树搜索。可以在main.py中指定自我播放的参数。其他神经网络参数位于othello/{pytorch,keras}/NNet.py (cuda标志,批处理大小,时代,学习率等)。
开始培训奥赛罗的模型:
python main.py在main.py中选择您的框架和游戏。
对于简单的环境设置,我们可以使用Nvidia-Docker。一旦您设置了Nvidia-Docker,我们就可以简单地运行:
./setup_env.sh
要设置一个(默认:pytorch)jupyter docker容器。我们现在可以打开一个新终端并输入:
docker exec -ti pytorch_notebook python main.py
我们训练了一个6x6 othello的Pytorch模型(〜80次迭代,每回合100次发作和25个MCT模拟)。这花费了大约3天的Nvidia Tesla K80。可以在pretrained_models/othello/pytorch/中找到预处理的模型(Pytorch)。您可以使用pit.py玩游戏。以下是模型在随机和贪婪的基线和迭代次数上的性能。 
可以在此处找到对我们算法的简明描述。
如果您发现这项工作有用,请随时引用它
@misc{thakoor2016learning,
title={Learning to play othello without human knowledge},
author={Thakoor, Shantanu and Nair, Surag and Jhunjhunwala, Megha},
year={2016},
publisher={Stanford University, Final Project Report}
}
虽然当前的代码相当可行,但我们可以从以下贡献中受益:
Game.py中的规格以及其神经网络这里已经植入了一些扩展。
注意:已删除Chainer和Tensorflow V1版本,但可以在提交2AD461C之前找到。