C/MLDL4RL : Reinforcement Learning Öncesi Sağlam Temel için Machine Learing ve Deep Learning Temelleri

3 Gün (18 Saat) Orta Sınıf Yapay Zeka ve Makine Öğrenimi


Reinforcement Learning (RL) öğrenmeye çalışıp da "Policy gradient nedir?", "Neden loss değil reward var?", "DQN'deki o network ne yapıyor?" gibi sorulara takılanlardan mısınız? Bu 3 günlük (18 saat) yoğun program tam size göre. Eğitim, RL'yi doğrudan anlatmak yerine, önce makine öğrenmesi ve derin öğrenmenin temel yapı taşlarını RL perspektifiyle kuruyor. Loss minimizasyonu ile reward maksimizasyonunun aynı optimizasyon mantığı olduğunden, policy gradient'in sezgisel temellerine, overfitting'ten non-stationarity'ye kadar tüm kritik konuları işliyoruz. Her modülün sonunda mutlaka "Peki bunun RL ile ne ilgisi var?" sorusunu cevaplıyoruz. Program boyunca Python, NumPy, Pandas, PyTorch ve OpenAI Gym ile çalışıyoruz. Son gün ise aynı problemi üç farklı yöntemle (Supervised Learning, Function Approximation ve basit bir RL simülasyonu) çözerek RL'in diğer yöntemlerden neden ve nasıl farklılaştığını bizzat deneyimliyorsunuz. Eğitim sonunda yalnızca temel ML/DL kavramlarına hakim olmakla kalmıyor, aynı zamanda DQN, PPO ve A2C gibi modern RL algoritmalarının altyapısını anlayarak bu algoritmaları kullanmaya veya geliştirmeye hazır hale geliyorsunuz. Amacımız, RL öğrenmeye "Bu network ne işe yarıyor?" sorusunu sormadan, doğru zihinsel modellerle başlamanızı sağlamak.


Eğitim İçeriği

Günlük Hedefler ve Kullanılacak Araçlar

Hedefler
  • Gün 1: Makine Öğrenimi Temel Düşünce Biçimini Oluşturmak
  • Gün 2: Derin Öğrenme Temelleri ve Sinir Ağları
  • Gün 3: Reinforcement Learning'e Doğru Son Hazırlık ve Framework Geçişi
Araçlar
  • Python 3.8+
  • NumPy (temel işlemler için)
  • Pandas (veri manipülasyonu için, kısa)
  • Matplotlib / Seaborn (görselleştirme için, kısa)
  • PyTorch (derin öğrenme için)
  • VSCode, Jupyter Notebook (interaktif kodlama için)
  • OpenAI Gym veya benzeri basit bir RL simülasyonu (son gün için)

Module 1: Model, Veri ve Öğrenme Nedir?

  • Feature, target, model kavramları (RL'de observation, action, policy)
  • Train / validation ayrımı
  • Regresyon vs sınıflandırma
  • Loss fonksiyonu nedir ve neden önemlidir?
  • RL Bağlantısı: Loss minimization = Reward maximization'ın aynısı (farklı yön)
  • Amaç:
    • Katılımcının "model = veri üzerinden bir fonksiyon öğrenir" zihinsel modelini kurması
    • Bir problemi doğru şekilde makine öğrenmesi problemine dönüştürebilmesi
    • RL'deki ödül maksimizasyonu ile loss minimizasyonu arasında bağlantı kurabilmesi
    Kazanımlar:
    • Girdi-çıktı ilişkisini doğru kurabilme
    • Loss fonksiyonunu doğru seçebilme (regresyon → MSE, sınıflandırma → Cross-Entropy)
    • Basit bir modelin neyi öğrendiğini yorumlayabilme
    • "RL'de loss olmaz, reward vardır" ama optimizasyon mantığının aynı olduğunu söyleyebilme

Module 2: Gradient Descent ve Optimizasyon

  • Loss yüzeyi ve optimum arayışı
  • Gradient nedir? (sezgisel - temel matematik anlatım)
  • Learning rate ve etkileri
  • Batch, Stochastic, Mini-Batch gradient descent
  • RL Bağlantısı: Policy gradient'de de aynı mantık, sadece loss yerine reward var
  • Amaç:
    • Modelin "nasıl öğrendiğini" anlamak
    • Learning rate gibi temel hiperparametrelerin etkisini kavramak
    • RL'deki policy gradient'a zihinsel hazırlık yapmak
    Kazanımlar:
    • Loss fonksiyonunu yorumlayabilme
    • Gradient'in yönünü sezgisel olarak anlayabilme (temel türev bilgisi ile desteklenir.)
    • Learning rate'in çok yüksek veya çok düşük olduğunda ne olduğunu tahmin edebilme
    • Policy gradient'ın da benzer bir optimizasyon süreci olduğunu bilme

Module 3: Overfitting, Underfitting ve Regularization

  • Underfitting vs overfitting
  • Bias-variance tradeoff (sezgisel, türetsiz)
  • Train vs validation, test performans farkı
  • Regularization (L1, L2) ve Dropout (kısa)
  • Early stopping
  • RL Bağlantısı: RL'de overfitting farklıdır (policy overfitting), ama validation mantığı benzerdir
  • Amaç:
    • Modelin "ezberleme vs öğrenme" farkını anlamak
    • Overfitting'i teşhis edebilmek
    • RL'deki overfitting problemine hazırlık yapmak
    Kazanımlar:
    • Overfitting durumunu validation set ile tespit edebilme
    • Model karmaşıklığını ayarlayabilme
    • Regularization'ın ne zaman gerekli olduğunu söyleyebilme
    • Dropout'un ne işe yaradığını kısaca açıklayabilme

Module 4: Sinir Ağları ve Derin Öğrenme Temelleri

  • Nöron, katman, ağ yapısı
  • Aktivasyon fonksiyonları (ReLU, Sigmoid, Tanh) - neden ReLU popüler?
  • Forward pass (girdiden çıktıya hesaplama)
  • RL Bağlantısı: Bu network, policy veya value fonksiyonunu temsil edecek
  • Amaç:
    • Sinir ağlarını "black box" olmaktan çıkarmak
    • Bir ağın nasıl hesaplama yaptığını anlamak
    • RL'deki network yapılarına zihinsel hazırlık yapmak
    Kazanımlar:
    • Basit bir sinir ağının forward pass'ini adım adım takip edebilme
    • Aktivasyon fonksiyonlarının neden gerekli olduğunu açıklayabilme
    • ReLU'nun neden popüler olduğunu (vanishing gradient'i çözdüğünü) bilme
    • Dying ReLU sorununu duymuş olma

Module 5: Backpropagation ve Öğrenme Süreci

  • Backpropagation nedir? (sezgisel, temel matematik anlatım)
  • Zincir kuralı ve ağırlık güncelleme mantığı
  • Gradient'in ağ içinde nasıl aktığı
  • Vanishing gradient problemi (derin ağlar neden zor öğrenir?)
  • Exploding gradient problemi (ağır güncellemeler neden sorun olabilir?)
  • Learning rate'in etkisi (çok büyük vs çok küçük)
  • RL Bağlantısı: RL'deki instability'nin bir nedeni gradient flow problemidir.
  • Amaç:
    • Sinir ağlarının "nasıl öğrendiğini" anlamak (türev bilmeden)
    • Derin ağların neden bazen öğrenemediğini kavramak
    • RL'deki stabilite sorunlarına hazırlık yapmak
    Kazanımlar:
    • Gradient'in ağın sonundan başına doğru aktığını bilme ve zincir kuralını sezgisel olarak anlayabilme
    • Vanishing gradient'in ve exploding gradient'in ne olduğunu ve ne zaman ortaya çıktığını söyleyebilme
    • Türev hesaplamadan, "küçük değişimin etkisi" olarak gradient'i sezebilme

Module 6: Feature Engineering ve Feature Selection

  • State representation = feature engineering
  • Normalizasyon / standardizasyon (gradient descent için neden şart?)
  • Anlamlı feature tasarımı prensipleri
  • RL Bağlantısı: RL'de state tasarımı, algoritmadan daha önemli olabilir
  • Amaç:
    • Girdi temsilinin model başarısını nasıl etkilediğini somut bir örnekle göstermek
    • RL'de state tasarımına doğrudan hazırlık yapmak
    Kazanımlar:
    • Ham veriyi anlamlı feature'lara dönüştürebilme
    • Normalizasyonun gradient descent üzerindeki etkisini açıklayabilme
    • RL'de "state tasarımı" ile "feature engineering"in aynı şey olduğunu söyleyebilme
    • Kötü feature'ların modeli nasıl öldürdüğünü gözlemleyebilme

Module 7: NumPy'dan PyTorch'a Geçiş

  • RL dünyasında PyTorch standart olması nedeniyle tensör işlemlerine giriş
  • NumPy vs PyTorch: benzerlikler ve farklar
  • Manual gradient (NumPy) → autograd (PyTorch)
  • Basit bir modelin PyTorch ile yazılması
  • Critical: .detach() ne zaman gerekir? (kısa)
  • Amaç:
    • Framework geçişinde kopma yaşanmaması
    • PyTorch ile model kurabilme ve eğitebilme
    • RL araçlarını (SB3, RLlib) kullanmaya hazır hale gelme
    Kazanımlar:
    • NumPy'de yazdığı kodu PyTorch'a çevirebilme
    • torch.nn.Linear, torch.relu, torch.optim kullanabilme
    • Training loop'u PyTorch ile yazabilme
    • Autograd'ın ne işe yaradığını bilme (detaylı değil, sezgisel)

Module 8: Function Approximation

  • Tablo (tabular) yöntemlerin sınırları (örnek: 1000x1000 grid → 1M state ile tablo tutamayız)
  • Neden sinir ağlarına ihtiyaç duyarız?
  • Lineer model vs sinir ağı karşılaştırması
  • RL Bağlantısı: DQN = Q-learning + function approximation
  • Amaç:
    • RL'deki DQN'nin temel mantığını anlamaya hazırlık
    • "Büyük state space'te tablo tutamayız" fikrini oturtmak
    • Lineer modelin yetersiz kaldığı durumları görmek
    Kazanımlar:
    • Aynı problemi lineer model ve NN ile çözüp farkı gözlemleyebilme
    • Function approximation ihtiyacını açıklayabilme
    • DQN'in neyi çözdüğünü (tabular → NN) söyleyebilme

Module 9: Training Dynamics (Loss ve Reward Eğrileri)

  • Loss eğrileri neden dalgalanır? (örnek: noisy data, model kapasitesi, learning rate)
  • Reward eğrileri neden dalgalanır? (örnek: exploration, stochastic environment)
  • RL'de neden stabilite sorunları yaşanır? (örnek: non-stationarity, bootstrapping)
  • RL'de reward'un neden daha gürültülü olduğunu göstermek (örnek: reward = feedback, loss = error)
  • Bootstrapping nedir? (örnek: DQN'de target network'ün eski değerleriyle öğrenme)
  • Non-stationarity nedir?
  • Distribution shift problemi
  • RL Bağlantısı: RL'de data policy ile değişir → non-stationary
  • Amaç:
    • RL'deki stabilite problemlerine zihinsel hazırlık
    • "Model neden bir öğrenir bir unutur?" sorusuna cevap
    • Non-stationarity kavramını somut örnekle oturtmak
    Kazanımlar:
    • Eğitim sırasında loss dalgalanmalarını yorumlayabilme
    • Data distribution değiştiğinde modelin neden bozulduğunu açıklayabilme
    • RL'de non-stationarity problemini kendi cümleleriyle ifade edebilme

Module 10: Value ve Policy Network Mantığı

  • İki temel RL yaklaşımı: Value-based (DQN) vs Policy-based (PPO, A2C gibi)
  • Value Function nedir? (state value, state-action value)
  • Policy Function nedir? (State'den direkt action'a giden bir fonksiyon)
  • Value network'ün amacı: state-action value (Q) öğrenmek
  • Policy network'ün amacı: doğrudan iyi bir policy öğrenmek
  • Actor-Critic mimarisi: Actor = policy, Critic = value
  • RL Bağlantısı: DQN = value-based, PPO/A2C = policy-based networkleri modern RL algoritmatlarının temelini oluşturur
  • Amaç:
    • RL'de kullanılan network'lerin ne işe yaradığını anlamak
    • RL eğitimine "bu network'ler ne yapıyor?" sorusuyla gelmemesini sağlamak
    • Actor-Critic mimarisine zihinsel hazırlık yapmak
    Kazanımlar:
    • Bir state'in value'sunu tahmin eden network yazabilme
    • Policy network ile value network arasındaki farkı söyleyebilme
    • Actor-Critic'te actor'ün policy, critic'in value olduğunu bilme

Module 11: Aynı Problemi Farklı Yöntemlerle Çözme (Kritik Köprü - Hazır RL Simülasyonu)

  • Yöntem 1 - Supervised Learning: Eticaretli veri ile öğrenme (doğru action biliniyor)
  • Yöntem 2 - Function Approximation: Value tahmini (doğru action bilinmiyor, value tahmin ediliyor)
  • Yöntem 3 - RL (Hazır Simülasyon): Reward ile öğrenme (doğru action bilinmiyor, deneme-yanılma)
  • Kritik Fark: Supervised'de loss'u biliyoruz, RL'de sadece reward'ı biliyoruz
  • Amaç:
    • RL'in diğer yöntemlerden farkını yaşayarak hissetmek
    • "Neden RL zor?" sorusunun cevabını bulmak
    • RL eğitimine hazır olduklarını hissetmek
    Kazanımlar:
    • Supervised'de loss'u bildiğimizi, RL'de ise doğru action'ı bilmediğimizi açıklayabilme
    • RL'in neden daha karmaşık olduğunu ifade edebilme
    • Reward tasarımının önemini kavrayabilme
    • RL eğitimine "hazırım" diyebilme

Öncesinde Önerilenler

Sonrasında Önerilenler