Reward
- Makine Öğrenmesi kursu
- Uzman
- Ders 38/44
- 5 dk
Reward, ajanın eyleminin ne kadar iyi olduğunu gösteren sinyaldır.
Ödül ve getiri
Ajan tek adımlık ödülü değil, getiriyi (return) en büyük yapmaya çalışır. Gelecekteki ödüller bir indirim oranı γ ile azaltılır:
# G_t = r_t + γ r_{t+1} + γ² r_{t+2} + ...
G = sum(gamma ** k * r for k, r in enumerate(oduller))γ = 0 ise ajan yalnızca anlık ödülü önemser; γ → 1 ise uzak geleceği de neredeyse tam değerle hesaba katar. γ < 1 sonsuz bölümlerde getirinin sonlu kalmasını da sağlar.
Getiriyi geriye doğru hesaplamak
Her adımın getirisi bir sonrakinin getirisinden hesaplanabilir: G_t = r_t + γ G_{t+1}. Bölümün sonundan başa doğru tek geçişte tüm getiriler bulunur:
def getiriler(oduller, gamma):
G, sonuc = 0.0, []
for r in reversed(oduller):
G = r + gamma * G
sonuc.append(G)
return sonuc[::-1]Bu özyineleme, Q-learning ve tüm değer tabanlı yöntemlerin dayandığı Bellman denkleminin çekirdeğidir.
Uygulama İndirimli getiriler
Geriye doğru çalışan getiriler(oduller, gamma) fonksiyonunu yaz. Koridorda en iyi yolun ödülleri [-0.1, -0.1, -0.1, 1.0] için γ = 0.9 ile getirileri, ve γ = 0.0 ile ilk adımın getirisini np.round(..., 3) ile alt alta yazdır. Ardından ileri doğru formülle (sum(gamma ** k * r ...)) ilk getirinin aynı olduğunu np.isclose ile yazdır.
Başlangıç kodu
import numpy as np
oduller = [-0.1, -0.1, -0.1, 1.0]
# buraya yazÖrnek çözüm
import numpy as np
oduller = [-0.1, -0.1, -0.1, 1.0]
def getiriler(oduller, gamma):
G, sonuc = 0.0, []
for r in reversed(oduller):
G = r + gamma * G
sonuc.append(G)
return sonuc[::-1]
print(np.round(getiriler(oduller, 0.9), 3))
print(np.round(getiriler(oduller, 0.0)[0], 3))
ileri = sum(0.9 ** k * r for k, r in enumerate(oduller))
print(np.isclose(ileri, getiriler(oduller, 0.9)[0]))Beklenen çıktı
[0.458 0.62 0.8 1. ] -0.1 True
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 γ = 0.5 ve ödüller [0, 0, 4] ise ilk adımdaki getiri nedir?
- 2
- 0
- 1 Doğru cevap
- 4
Açıklama: 0 + 0.5·0 + 0.25·4 = 1.
2 Getiriyi bir sonrakinden hesapla.
G = r + ____ * G
G = r + gamma * G
Açıklama: G_t = r_t + γ G_{t+1}.
3 Eşleştir.
| Kavram | Anlamı |
|---|---|
γ = 0 |
Yalnızca anlık ödül |
γ → 1 |
Uzak gelecek önemli |
G_t |
İndirimli toplam |
Bellman |
G_t = r_t + γ G_{t+1} |