Enhancing Stability in Chess Reinforcement Learning with Adaptive Optimization
Proyek ini mengembangkan agen catur menggunakan Reinforcement Learning (RL) dengan fokus pada stabilitas pelatihan melalui teknik optimisasi adaptif.
- Tentang Proyek
- Fitur Utama
- Instalasi
- Penggunaan
- Training di Google Colab
- Visualisasi
- Struktur Proyek
- Konfigurasi
- Evaluasi
Proyek ini bertujuan untuk:
- Meningkatkan Stabilitas Training - Mengatasi masalah ketidakstabilan gradien dan overfitting dalam RL
- Adaptive Optimization - Menerapkan teknik optimisasi yang menyesuaikan diri dengan dinamika pelatihan
- Agen Catur yang Kuat - Menciptakan agen yang dapat bermain catur dengan strategi yang efektif
- Generalisasi - Mengembangkan framework yang dapat diterapkan ke domain RL lainnya
- Policy-Value Network dengan Residual Blocks
- Layer Normalization untuk stabilitas
- Attention mechanisms (optional)
- Learning Rate Warmup & Cosine Annealing
- Gradient Clipping (Global Norm, Per-Parameter, Adaptive)
- Dynamic Clip Range Adjustment
- Entropy Scheduling
- Proximal Policy Optimization dengan stability enhancements
- Generalized Advantage Estimation (GAE)
- Self-play training mechanism
- Web interface untuk melihat AI bermain catur
- Real-time game visualization
- Training progress dashboard
- Stockfish integration untuk benchmarking
- ELO rating estimation
- Comprehensive metrics tracking
- Python 3.9+
- CUDA (untuk GPU training, optional)
# Clone repository
cd chess
# Buat virtual environment
python -m venv venv
# Aktivasi virtual environment
# Windows:
venv\Scripts\activate
# Linux/Mac:
source venv/bin/activate
# Install dependencies
pip install -r requirements.txt# Windows - download dari https://stockfishchess.org/download/
# Letakkan stockfish.exe di folder project atau tambahkan ke PATH
# Linux:
sudo apt-get install stockfish# Training dengan konfigurasi default
python scripts/train.py
# Training dengan konfigurasi custom
python scripts/train.py --config config/custom.yaml
# Training dengan GPU
python scripts/train.py --device cuda
# Training v27 (latest version)
python scripts/train_v27.py# Evaluasi model
python scripts/evaluate.py --checkpoint checkpoints/chess_v27_final.pt
# Evaluasi melawan Stockfish
python scripts/evaluate.py --checkpoint checkpoints/chess_v27_final.pt --stockfish# Mode interaktif di terminal
python scripts/play.py --checkpoint checkpoints/chess_v27_final.pt
# Mode visual (web interface)
python scripts/web_server.py# Jalankan web server
python scripts/web_server.py
# Buka browser di http://localhost:5000- Buka notebook
notebooks/colab_training.ipynb - Atau gunakan VS Code dengan Colab Extension:
- Install Colab Extension
- Buka notebook file
- Sign in ke Google
- Select Kernel > Colab > New Colab Server
# Di Colab cell pertama
!git clone https://github.com/username/chess-rl.git
%cd chess-rl
!pip install -r requirements.txt
# Mulai training
!python train.py --device cudachess/
โโโ config/ # File konfigurasi
โ โโโ default.yaml # Konfigurasi default
โ โโโ colab.yaml # Konfigurasi untuk Colab
โโโ src/ # Source code utama
โ โโโ core/ # Domain & business logic
โ โโโ environment/ # Chess environment
โ โโโ models/ # Neural network
โ โโโ optimization/ # Adaptive optimizer
โ โโโ algorithms/ # PPO implementation
โ โโโ training/ # Training loop
โ โโโ stability/ # Stability monitoring
โ โโโ evaluation/ # Evaluasi & Stockfish
โ โโโ visualization/ # Web interface
โโโ scripts/ # Entry point scripts
โ โโโ train.py # Training script
โ โโโ train_v27.py # Training v27 (latest)
โ โโโ evaluate.py # Evaluation script
โ โโโ play.py # Interactive play
โ โโโ web_server.py # Web interface server
โโโ data/ # Training data
โ โโโ supervised_data.npz
โ โโโ opening_book.pkl
โโโ notebooks/ # Jupyter notebooks
โโโ tests/ # Unit tests
โโโ checkpoints/ # Model saves
โโโ deployment/ # Deployment files
โโโ logs/ # Training logs
โโโ archive/ # Legacy files (not in git)
โโโ docs/ # Documentation
โโโ requirements.txt # Dependencies
Semua hyperparameter dapat dikonfigurasi melalui file YAML di folder config/.
Parameter penting:
network.num_residual_blocks: Kedalaman network (default: 10)ppo.learning_rate: Learning rate (default: 3e-4)ppo.clip_range: PPO clip range (default: 0.2)adaptive_optimization.lr_scheduler: Tipe LR schedulertraining.total_timesteps: Total training steps
| Metrik | Deskripsi |
|---|---|
| Win Rate | Persentase kemenangan |
| ELO Rating | Estimasi kekuatan rating |
| Policy Loss | Loss dari policy network |
| Value Loss | Loss dari value network |
| Entropy | Exploration level |
| Gradient Norm | Stabilitas training |
tensorboard --logdir logsKontribusi sangat diterima! Silakan buat issue atau pull request.
MIT License - Lihat LICENSE untuk detail.