REINFORCE neden hiç çalışıyor?

Aug 15 2020

İşte Sutton ve Barto'nun kitabındaki popüler politika gradyan algoritmasının bir ekran görüntüsü:

Güncelleme kuralının matematiksel olarak türetilmesini anlıyorum - ancak bu algoritmanın neden ilk etapta çalışması gerektiğine dair bir önsezi oluşturamıyorum. Beni asıl rahatsız eden şey, yanlış bir politikayla başlamamız (yani parametreleri bilmiyoruz)$\theta$ henüz) ve bu politikayı bölümler oluşturmak ve ardından güncellemeler yapmak için kullanıyoruz.

REINFORCE neden hiç çalışmalı? Sonuçta, gradyan güncellemesi için kullandığı bölüm, parametrelere göre parametrik hale getirilmiş politika kullanılarak oluşturulur.$\theta$ henüz güncellenmemiş olanlar (bölüm en uygun politika kullanılarak oluşturulmamış - bunu yapabilmemizin bir yolu yok).

Umarım endişem açıktır ve sizden bunun neden işe yaradığına dair biraz önsezi sağlamanızı rica ediyorum! Bir şekilde , yanlış politikadan bir bölüm örneklememize rağmen, her güncellemeden sonra doğru olana yaklaştığımızdan şüpheleniyorum (monoton iyileştirme). Alternatif olarak, optimal politikaya (optimal parametre setine) yaklaşabiliriz.$\theta$) ortalamada.

Peki, burada gerçekten neler oluyor?

Yanıtlar

4 DavidIreland Aug 15 2020 at 21:16

GÜÇLENDİRME çalışmasının anahtarı, parametrelerin doğru kayma şeklidir. $G \nabla \log \pi(a|s, \theta)$.

Bunu not et $ \nabla \log \pi(a|s, \theta) = \frac{ \nabla \pi(a|s, \theta)}{\pi(a|s, \theta)}$. Bu, güncellemeyi oldukça sezgisel hale getirir - pay parametreleri, duruma göre, geri dönüşlerle orantılı olarak, eylemin tekrarlanma olasılığındaki en yüksek artışı veren yöne kaydırır - bunu görmek kolaydır çünkü esasen bir gradyan yükselmesidir. adım. Payda, yapılan eylemin olasılığına göre ters ölçeklendirerek, daha sık seçilecekleri için diğer eylemlere göre avantaj sağlayacak eylemleri kontrol eder; yüksek mükafatlar olup olmadığını hayal edin, ancak o zamanki aksiyon$t$ düşük seçilme olasılığına (ör. 0.1) sahipse, bu, getirileri 10 ile çarpacak ve bu eylemin en çok seçilme olasılığını artıracak yönde daha büyük bir güncelleme adımına yol açacaktır (bu, payın kontrol ettiği şeydir. ).

Bu sezgi içindir - neden işe yaradığını görmek için , sonra ne yaptığımızı düşünün. Nesnel bir işlev tanımladık,$v_\pi(s)$, parametrelerimize saygı duyarak maksimize etmek istediğimizi $\theta$. Bu hedefin türevini parametrelerimize göre buluruz ve daha sonra hedefimizi maksimize etmek, yani maksimize etmek için parametrelerimiz üzerinde gradyan yükselişi gerçekleştiririz.$v_\pi(s)$Bu nedenle, gradyan çıkışı yapmaya devam edersek, politika parametrelerimiz (sonunda) maksimize eden değerlere yakınsar. $v$ ve bu nedenle politikamız en uygun olacaktır.