Policy
- Makine Öğrenmesi kursu
- Uzman
- Ders 37/44
- 5 dk
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
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
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ç.
return int(np.____(Q[durum]))
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ü |