Bu proje, Model-Based RL yaklaşımını Pendulum-v1 ortamında uygular ve Model-Free (PPO) baseline ile karşılaştırır.
Ortamın dinamiklerini bir sinir ağıyla öğrenmek ve bu modeli planlama için kullanarak:
- Sample efficiency'yi artırmak
- Model-based ve model-free yaklaşımları karşılaştırmak
- Dynamics model tahminlerini görselleştirmek
- Dynamics Model:
f_θ(s_t, a_t) → s_{t+1}şeklinde bir MLP ile ortam dinamiklerini öğrenir - CEM Planner: Cross-Entropy Method ile learned model üzerinde planlama yapar
- MPC Strategy: Her adımda yeniden planlama yaparak en iyi aksiyonu seçer
- PPO (Proximal Policy Optimization): Standard policy gradient yöntemi ile karşılaştırma
# Sanal ortam oluştur
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
# Bağımlılıkları yükle
pip install -r requirements.txtpython scripts/train_dynamics.pyRandom policy ile veri toplar ve dynamics model'i eğitir.
python scripts/train_model_based.pyLearned dynamics + CEM planner ile agent'ı eğitir.
python scripts/train_ppo.pyPPO algoritmasını eğitir (karşılaştırma için).
python scripts/evaluate.pyHer iki yaklaşımı karşılaştırır ve metrikleri gösterir.
python scripts/visualize_model.pyDynamics model'in tahmin doğruluğunu görselleştirir.
Model-Based-RL/
├── config/ # Hyperparameter konfigürasyonları
├── src/
│ ├── environments/ # Ortam wrapper'ları
│ ├── models/ # Neural network modelleri
│ ├── agents/ # Agent implementasyonları
│ ├── planners/ # CEM planner
│ ├── data/ # Replay buffer ve data collection
│ └── utils/ # Visualization, logging, metrics
├── scripts/ # Eğitim ve değerlendirme scriptleri
├── notebooks/ # Jupyter analiz notebooks
└── results/ # Sonuçlar, loglar, grafikler
- Sample Efficiency: Model-based yaklaşım daha az sample ile öğrenebilir
- Final Performance: Her iki yaklaşım benzer final performance gösterebilir
- Training Time: Model-based planning daha yavaş olabilir
- Learning curves (episode rewards)
- Dynamics model prediction errors
- True vs predicted trajectories
- Action distributions
config/pendulum_config.yaml: Model-based agent hyperparametersconfig/ppo_config.yaml: PPO baseline hyperparameters
- Pendulum ortamı continuous action space kullanır
- State: [cos(θ), sin(θ), θ_dot]
- Action: torque ∈ [-2, 2]
- Reward: penalize açı ve açısal hız
MIT License