基於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之前找到。