Pekiştirmeli Öğrenme Masa Oyunu Ajanı¶
Python Keras NumPy PyQt5 Deep Q-Learning
Problem¶
Masa oyunları, pekiştirmeli öğrenme algoritmaları için ideal bir test ortamı sağlar — açık kuralları, ayrık eylem uzayları ve ölçülebilir sonuçları vardır. Bu proje, bir ajanı 7×7 masa oyununu sıfırdan oynaması için eğitme zorluğuyla ilgilenir; insan tarafından sağlanan herhangi bir strateji bilgisi olmadan tamamen kendi kendine oynayarak öğrenir.
Yaklaşım¶
Ajan, optimal oynamayı öğrenmek için Deep Q-Learning (DQN) kullanır. Kurallar dışında oyun hakkında hiçbir bilgi olmadan başlayarak milyonlarca kendi kendine oynama bölümüyle gelişir.
Deep Q-Network¶
Bir sinir ağı, oyun durumlarını eylem değerlerine eşleyerek Q-değer fonksiyonunu yaklaşık olarak hesaplar. Ağ mimarisi yapılandırılabilir — oyunun karmaşıklığı için en iyi kapasiteyi bulmak amacıyla farklı derinlik ve genişliklerde deney yapılabilir.
Deneyim Tekrarı¶
Ajan, geçmiş deneyimleri (durum, eylem, ödül, sonraki durum) bir tekrar arabelleğinde saklar ve eğitim için rastgele mini-yığınlar örnekler. Bu, ardışık deneyimler arasındaki korelasyonu kırar ve öğrenmeyi stabilize eder.
Kendi Kendine Oynama Eğitimi¶
Ajan, kendi kopyalarına karşı oynar ve stratejisini sürekli geliştirir. Ajan güçlendikçe rakibi de güçlenir — sürekli artan bir zorluk eğrisi oluşturur.
Temel Özellikler¶
- Deep Q-Learning — deneyim tekrarı ve hedef ağlar ile
- Yapılandırılabilir sinir ağı — farklı mimarilerle deney yapma
- Kendi kendine oynama eğitim döngüsü — insan verisi olmadan sürekli gelişim
- Birden fazla oyun modu — Oyuncu vs Oyuncu, Oyuncu vs AI, AI vs AI
- PyQt5 arayüzü — etkileşimli oyun ve görselleştirme
- 7×7 tahta — özel oyun kuralları ile
Mimari¶
graph LR
A[Oyun Durumu] --> B[DQN]
B --> C[Eylem Başına Q-Değerleri]
C --> D[ε-Greedy Seçim]
D --> E[Eylem]
E --> F[Ortam Adımı]
F --> G[Ödül + Sonraki Durum]
G --> H[(Tekrar Arabelleği)]
H --> B
Teknoloji Yığını¶
| Bileşen | Teknoloji |
|---|---|
| PÖ Framework'ü | Özel DQN implementasyonu |
| Sinir Ağı | Keras |
| Arayüz | PyQt5 |
| Dil | Python |