Alphago Zero Paper (Silver et al)를 기반으로하는 단순화되고 유연하며 댓글이 많고 댓글이 많으며 (희망적으로)자가 플레이 기반 강화 학습의 구현을 쉽게 이해하기 쉽습니다. 2 인 턴 기반 적대 게임과 선택한 딥 러닝 프레임 워크에 쉽게 채택 할 수 있도록 설계되었습니다. Pytorch와 Keras의 Othello 게임에 대한 샘플 구현이 제공되었습니다. 함께 제공되는 자습서는 여기에서 찾을 수 있습니다. 또한 Gobang 및 Tictactoe와 같은 다른 많은 게임에 대한 구현도 있습니다.
선택한 게임을 사용하려면 Game.py 및 NeuralNet.py 의 클래스를 서브 클래스하고 기능을 구현하십시오. Othello의 예제 구현은 othello/OthelloGame.py 및 othello/{pytorch,keras}/NNet.py 에서 찾을 수 있습니다.
Coach.py 에는 핵심 교육 루프와 MCTS.py 포함되어 있습니다. 자체 플레이의 매개 변수는 main.py 에 지정할 수 있습니다. 추가 신경망 매개 변수는 othello/{pytorch,keras}/NNet.py (Cuda 플래그, 배치 크기, 에포크, 학습 속도 등)에 있습니다.
Othello 모델 훈련을 시작하려면 :
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 (~ 80 개의 반복, 반복 당 100 회, 턴당 25 MCTS 시뮬레이션)에 대한 Pytorch 모델을 교육했습니다. 이것은 Nvidia Tesla K80에서 약 3 일이 걸렸습니다. 사전 처리 된 모델 (pytorch)은 pretrained_models/othello/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 버전이 제거되었지만 Commit 2AD461C 이전에는 찾을 수 있습니다.