من السهل فهم تنفيذ التعلم التعزيز القائم على اللعب الذاتية ، ومرونة للغاية ، وعلق و (نأمل) ، (نأمل) ، على أساس ورقة AlphaGo Zero (Silver et al). إنه مصمم ليكون من السهل تبنيه لأي لعبة عدوانية قائمة على الدوران وأي إطار تعليمي عميق من اختيارك. تم توفير تنفيذ عينة للعبة Othello في Pytorch و Keras. يمكن العثور على برنامج تعليمي مرافق هنا. لدينا أيضًا تطبيقات للعديد من الألعاب الأخرى مثل Gobang و Tictactoe.
لاستخدام لعبة من اختيارك ، والطابقات الفرعية في Game.py و NeuralNet.py وتنفيذ وظائفها. يمكن العثور على تطبيقات مثال لـ Othello في othello/OthelloGame.py و othello/{pytorch,keras}/NNet.py .
يحتوي Coach.py على حلقة التدريب الأساسية ويقوم MCTS.py بإجراء بحث Monte Carlo Tree. يمكن تحديد المعلمات للعب الذات في 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
لقد قمنا بتدريب نموذج Pytorch لـ 6x6 Othello (حوالي 80 تكرارًا ، و 100 حلقة لكل تكرار و 25 عملية محاكاة MCTS لكل منعطف). استغرق هذا حوالي 3 أيام على Nvidia Tesla K80. يمكن العثور على النموذج المسبق (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 ولكن يمكن العثور عليها قبل الالتزام 2AD461C.