CodeBlanks Logo Icon CodeBlanks

Policy

Policy, ajanın duruma göre eylem seçme stratejisidir.

Politika

Politika (π), ajanın davranış kuralıdır: her durumda hangi eylemi seçeceğini söyler.

  • Deterministik: π(s) = a, ör. bir tablo.
  • Stokastik: π(a | s) bir olasılık dağılımıdır; politika-gradyan yöntemleri bunu öğrenir.
politika = np.array([SAG, SAG, SAG, SAG, SAG])   # tablo: durum -> eylem
eylem = politika[durum]

RL'nin amacı, beklenen toplam ödülü en büyük yapan politikayı bulmaktır: π* = argmax_π E[G].

ε-açgözlü politika

Keşfi sağlamanın en yaygın yolu ε-açgözlü politikadır: ε olasılıkla rastgele eylem, aksi hâlde en iyi bilinen eylem seçilir. Eğitim ilerledikçe ε genellikle azaltılır:

def eps_acgozlu(Q, durum, eps):
    if rng.random() < eps:
        return int(rng.integers(Q.shape[1]))
    return int(np.argmax(Q[durum]))

2 eylemde ε = 0.2 ise en iyi eylem 0.8 + 0.2/2 = 0.9 olasılıkla seçilir; çünkü rastgele seçim de bazen en iyi eylemi bulur.

Uygulama ε-açgözlü seçim

eps_acgozlu(Q, durum, eps) fonksiyonunu yaz. Verilen Q tablosunda durum 0 için ε = 0, 0.2 ve 1.0 ile 10 000 seçim yap; en iyi eylemin seçilme oranını round(..., 2) ile aynı satırda yazdır. Ardından Q tablosundan açgözlü politikayı (her durumun argmax'ı) yazdır.

Başlangıç kodu

model.py
import numpy as np

rng = np.random.default_rng(0)
Q = np.array([[0.1, 0.5], [0.3, 0.6], [0.7, 0.2], [0.0, 0.9]])

# buraya yaz

Örnek çözüm

model.py
import numpy as np

rng = np.random.default_rng(0)
Q = np.array([[0.1, 0.5], [0.3, 0.6], [0.7, 0.2], [0.0, 0.9]])

def eps_acgozlu(Q, durum, eps):
    if rng.random() < eps:
        return int(rng.integers(Q.shape[1]))
    return int(np.argmax(Q[durum]))

oranlar = []
for eps in [0, 0.2, 1.0]:
    secim = [eps_acgozlu(Q, 0, eps) for _ in range(10_000)]
    oranlar.append(round(np.mean(np.array(secim) == 1), 2))
print(*oranlar)
print(Q.argmax(axis=1))

Beklenen çıktı

1.0 0.9 0.5
[1 1 0 1]

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Keşif ve sömürü (exploration–exploitation) ikilemi nedir?

  • Eğitim ve test verisi ayrımı
  • Öğrenme oranı seçimi
  • Ödülü normalleştirme
  • Bilinen en iyi eylemi seçmek ile yenilerini denemek arasındaki denge Doğru cevap

Açıklama: Hep bilineni seçen ajan daha iyisini hiç keşfedemez.

2 En iyi bilinen eylemi seç.

Soru
return int(np.____(Q[durum]))
Cevap
return int(np.argmax(Q[durum]))

Açıklama: argmax en yüksek Q değerinin eylemini verir.

3 Eşleştir.

Kavram Anlamı
π(s) = a Deterministik politika
π(a | s) Stokastik politika
ε Keşif olasılığı
argmax Q Sömürü

Uzman bölümündeki tüm dersler