Dlaczego REINFORCE w ogóle działa?

Aug 15 2020

Oto zrzut ekranu popularnego algorytmu gradientu polityki z książki Suttona i Barto -

Rozumiem matematyczne wyprowadzenie reguły aktualizacji - ale nie jestem w stanie zbudować intuicji, dlaczego ten algorytm ma działać w pierwszej kolejności. Naprawdę martwi mnie to, że zaczynamy od niewłaściwej polityki (tj. Nie znamy parametrów$\theta$ jeszcze) i używamy tej zasady do generowania odcinków i wykonywania kolejnych aktualizacji.

Dlaczego w ogóle REINFORCE powinno działać? W końcu odcinek, którego używa do aktualizacji gradientu, jest generowany przy użyciu strategii sparametryzowanej parametrami$\theta$ które nie zostały jeszcze zaktualizowane (odcinek nie jest generowany przy użyciu optymalnej polityki - nie da się tego zrobić).

Mam nadzieję, że moje obawy są jasne i proszę wszystkich o intuicję, dlaczego to działa! Podejrzewam, że w jakiś sposób , mimo że próbujemy odcinek z niewłaściwej polityki, po każdej aktualizacji zbliżamy się do właściwego (monotoniczna poprawa). Alternatywnie moglibyśmy zbliżyć się do optymalnej polityki (optymalny zestaw parametrów$\theta$) średnio.

Więc co tu się naprawdę dzieje?

Odpowiedzi

4 DavidIreland Aug 15 2020 at 21:16

Kluczem do działania WZMOCNIENIA jest sposób przesuwania parametrów $G \nabla \log \pi(a|s, \theta)$.

Zauważ, że $ \nabla \log \pi(a|s, \theta) = \frac{ \nabla \pi(a|s, \theta)}{\pi(a|s, \theta)}$. To sprawia, że ​​aktualizacja jest dość intuicyjna - licznik przesuwa parametry w kierunku, który daje największy wzrost prawdopodobieństwa, że ​​akcja zostanie powtórzona, biorąc pod uwagę stan, proporcjonalnie do zwrotów - łatwo to zauważyć, ponieważ jest to zasadniczo wznoszenie gradientowe krok. Mianownik kontroluje działania, które miałyby przewagę nad innymi działaniami, ponieważ byłyby wybierane częściej, przez odwrotne skalowanie w odniesieniu do prawdopodobieństwa podjęcia działania; wyobraź sobie, że byłyby wysokie nagrody, ale akcja w danym momencie$t$ ma niskie prawdopodobieństwo wyboru (np. 0,1), to pomnoży zwroty przez 10, prowadząc do większego kroku aktualizacji w kierunku, który zwiększyłby prawdopodobieństwo wybrania tej akcji najbardziej (co kontroluje licznik, jak wspomniano ).

To jest dla intuicji - zrozumieć, dlaczego to robi pracę, a potem myśleć o tym, co zrobiliśmy. Zdefiniowaliśmy funkcję celu,$v_\pi(s)$, że jesteśmy zainteresowani maksymalizacją przy zachowaniu naszych parametrów $\theta$. Znajdujemy pochodną tego celu w odniesieniu do naszych parametrów, a następnie wykonujemy wznoszenie gradientowe na naszych parametrach, aby zmaksymalizować nasz cel, tj.$v_\pi(s)$, więc jeśli będziemy nadal wykonywać wznoszenie gradientowe, wówczas nasze parametry polityki zbiegną się (ostatecznie) do wartości, które maksymalizują $v$ a zatem nasza polityka byłaby optymalna.