Skip to content

RedEye1605/ChessAI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

3 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐ŸŽฏ Chess RL dengan Adaptive Optimization

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.

๐Ÿ“‹ Daftar Isi

๐ŸŽฎ Tentang Proyek

Proyek ini bertujuan untuk:

  1. Meningkatkan Stabilitas Training - Mengatasi masalah ketidakstabilan gradien dan overfitting dalam RL
  2. Adaptive Optimization - Menerapkan teknik optimisasi yang menyesuaikan diri dengan dinamika pelatihan
  3. Agen Catur yang Kuat - Menciptakan agen yang dapat bermain catur dengan strategi yang efektif
  4. Generalisasi - Mengembangkan framework yang dapat diterapkan ke domain RL lainnya

โœจ Fitur Utama

๐Ÿง  Neural Network Architecture

  • Policy-Value Network dengan Residual Blocks
  • Layer Normalization untuk stabilitas
  • Attention mechanisms (optional)

๐Ÿ“ˆ Adaptive Optimization

  • Learning Rate Warmup & Cosine Annealing
  • Gradient Clipping (Global Norm, Per-Parameter, Adaptive)
  • Dynamic Clip Range Adjustment
  • Entropy Scheduling

๐ŸŽฏ PPO Algorithm

  • Proximal Policy Optimization dengan stability enhancements
  • Generalized Advantage Estimation (GAE)
  • Self-play training mechanism

๐ŸŽจ Visualisasi

  • Web interface untuk melihat AI bermain catur
  • Real-time game visualization
  • Training progress dashboard

๐Ÿ“Š Evaluasi

  • Stockfish integration untuk benchmarking
  • ELO rating estimation
  • Comprehensive metrics tracking

๐Ÿš€ Instalasi

Prasyarat

  • Python 3.9+
  • CUDA (untuk GPU training, optional)

Setup Lokal

# 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

Setup Stockfish (untuk evaluasi)

# Windows - download dari https://stockfishchess.org/download/
# Letakkan stockfish.exe di folder project atau tambahkan ke PATH

# Linux:
sudo apt-get install stockfish

๐Ÿ’ป Penggunaan

Training

# 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

# 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

Bermain Melawan AI

# Mode interaktif di terminal
python scripts/play.py --checkpoint checkpoints/chess_v27_final.pt

# Mode visual (web interface)
python scripts/web_server.py

Visualisasi Web

# Jalankan web server
python scripts/web_server.py

# Buka browser di http://localhost:5000

โ˜๏ธ Training di Google Colab

  1. Buka notebook notebooks/colab_training.ipynb
  2. Atau gunakan VS Code dengan Colab Extension:
    • Install Colab Extension
    • Buka notebook file
    • Sign in ke Google
    • Select Kernel > Colab > New Colab Server

Quick Start Colab

# 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 cuda

๐Ÿ“ Struktur Proyek

chess/
โ”œโ”€โ”€ 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

โš™๏ธ Konfigurasi

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 scheduler
  • training.total_timesteps: Total training steps

๐Ÿ“ˆ Evaluasi

Metrik yang Diukur

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

tensorboard --logdir logs

๐Ÿค Kontribusi

Kontribusi sangat diterima! Silakan buat issue atau pull request.

๐Ÿ“œ Lisensi

MIT License - Lihat LICENSE untuk detail.

๐Ÿ™ Acknowledgments

About

A hybrid Chess AI trained using a combination of Supervised Learning, Reinforcement Learning, and Stockfish knowledge distillation. Features a custom SE-ResNet neural network architecture and a modern web interface.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors