Sederhana, sangat fleksibel, berkomentar, dan (semoga) mudah dipahami implementasi pembelajaran penguatan berbasis mandiri berdasarkan kertas Alphago Zero (Silver et al). Ini dirancang agar mudah diadopsi untuk permainan permusuhan berbasis dua pemain dan kerangka pembelajaran yang mendalam dari pilihan Anda. Implementasi sampel telah disediakan untuk permainan Othello di Pytorch dan Keras. Tutorial yang menyertainya dapat ditemukan di sini. Kami juga memiliki implementasi untuk banyak game lain seperti Gobang dan Tictactoe.
Untuk menggunakan permainan pilihan Anda, subkelas kelas di Game.py dan NeuralNet.py dan mengimplementasikan fungsinya. Contoh implementasi untuk othello dapat ditemukan di othello/OthelloGame.py dan othello/{pytorch,keras}/NNet.py .
Coach.py berisi loop pelatihan inti dan MCTS.py melakukan pencarian pohon Monte Carlo. Parameter untuk permainan mandiri dapat ditentukan dalam main.py Parameter jaringan saraf tambahan ada di othello/{pytorch,keras}/NNet.py (bendera cuda, ukuran batch, zaman, tingkat pembelajaran dll.).
Untuk memulai melatih model untuk Othello:
python main.py Pilih kerangka kerja dan permainan Anda di main.py
Untuk pengaturan lingkungan yang mudah, kita dapat menggunakan nvidia-docker. Setelah Anda mengatur Nvidia-Docker, kami kemudian dapat menjalankan:
./setup_env.sh
Untuk mengatur wadah Jupyter Docker (default: Pytorch). Kami sekarang dapat membuka terminal baru dan masuk:
docker exec -ti pytorch_notebook python main.py
Kami melatih model Pytorch untuk 6x6 Othello (~ 80 iterasi, 100 episode per iterasi dan 25 simulasi MCT per giliran). Ini memakan waktu sekitar 3 hari di Nvidia Tesla K80. Model pretrained (pytorch) dapat ditemukan di pretrained_models/othello/pytorch/ . Anda dapat memainkan permainan melawannya menggunakan pit.py Di bawah ini adalah kinerja model terhadap dasar acak dan serakah dengan jumlah iterasi. 
Deskripsi singkat tentang algoritma kami dapat ditemukan di sini.
Jika Anda menemukan pekerjaan ini bermanfaat, jangan ragu untuk mengutipnya sebagai
@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}
}
Sementara kode saat ini cukup fungsional, kami dapat mengambil manfaat dari kontribusi berikut:
Game.py , bersama dengan jaringan saraf merekaBeberapa ekstensi telah diterapkan di sini.
Catatan: Versi Chainer dan TensorFlow V1 telah dihapus tetapi dapat ditemukan sebelum melakukan 2AD461C.