Dlaczego algorytm iteracji polityki jest zbieżny z optymalną funkcją polityki i wartości?


10

Czytałem notatki z wykładu Andrew Ng na temat uczenia się przez wzmacnianie i próbowałem zrozumieć, dlaczego iteracja polityki jest zbieżna z funkcją optymalnej wartości i optymalną polityką .Vπ

Przypomnijmy, że iteracja zasad to:

Initialize π randomlyRepeat{Let V:=Vπ \for the current policy, solve bellman's eqn's and set that to the current VLet π(s):=argmaxaAsPsa(s)V(s)}

Dlaczego algorytm zachłanny prowadzi do optymalnej polityki i funkcji optymalnej wartości? (Wiem, że zachłanne algorytmy nie zawsze to gwarantują lub mogą utknąć w lokalnych optymach, więc chciałem tylko zobaczyć dowód na jego optymalność algorytmu).

Wydaje mi się również, że iteracja polityki jest czymś analogicznym do klastrowania lub spadku gradientu. Do klastrowania, ponieważ przy obecnym ustawieniu parametrów optymalizujemy. Podobne do opadania gradientu, ponieważ po prostu wybiera wartość, która wydaje się zwiększać jakąś funkcję. Te dwie metody nie zawsze są zbieżne z optymalnymi maksimami i próbowałem zrozumieć, w jaki sposób ten algorytm różni się od poprzednich, o których wspomniałem.


Oto moje dotychczasowe myśli:

Powiedzmy, że zaczynamy od zasady , a następnie po pierwszym kroku, dla tej ustalonej zasady mamy:π1

Vπ1(s)=R(s)+γsPsπ1(s)(s)Vπ1(s)

V(1):=Vπ1(s)

Gdzie V ^ {(1)} jest funkcją wartości dla pierwszej iteracji. Następnie po drugim kroku wybieramy nowe zasady aby zwiększyć wartość . Teraz, przy nowej polityce , jeśli zrobimy drugi krok algorytmu, zachowa się następująca nierówność:π2Vπ1(s)π2

R(s)+γsPsπ1(s)(s)Vπ1(s)R(s)+γsPsπ2(s)(s)Vπ1(s)

Ponieważ wybieramy w drugim kroku, aby zwiększyć funkcję wartości w poprzednim kroku (tj. Poprawić . Jak dotąd jasne jest, że wybranie może tylko zwiększyć V ^ {(1)}, bo tak właśnie wybieramy . Jednak moje zamieszanie pojawia się w kroku powtarzania, ponieważ gdy powtórzymy i wrócimy do kroku 1, faktycznie zmieniamy wszystko całkowicie, ponieważ ponownie obliczamy dla nowej zasady . Co daje:π2V(1)π2π2V2π2

Vπ2(s)=R(s)+γsPsπ2(s)(s)Vπ2(s)

ale to NIE jest:

Vπ1(s)=R(s)+γsPsπ2(s)(s)Vπ1(s)

Co wydaje się być problemem, ponieważ wybrano do poprawy , a nie tej nowej . Zasadniczo problem polega na tym, że gwarantuje poprawę wykonując w zamian z gdy funkcja wartości to . Ale w kroku powtarzania zmieniamy na , ale nie widzę, jak to gwarantuje, że funkcja wartości poprawia się monotonicznie przy każdym powtórzeniu, ponieważ obliczono, aby poprawić funkcję wartości, gdy funkcje wartości pozostają na poziomieπ2V(1)Vπ2pi2R(s)+γsPsπ1(s)(s)Vπ1(s)π2pi1Vπ1Vπ1Vπ2π2Vπ1, ale krok 1 zmienia na (co jest złe, ponieważ poprawiłem tylko poprzednią funkcję wartości, którą mieliśmy).Vπ1Vπ2π2


1
Tylko uwaga: chciwość nie oznacza, że ​​algorytm nie znajdzie ogólnie optymalnego rozwiązania.
Regenschein,

1
Iteracja wartości to algorytm programowania dynamicznego, a nie chciwy. Obie mają pewne podobieństwa, ale istnieją różnice. Spójrz na stackoverflow.com/questions/13713572/... .
francoisr

@francoisr nikt mi tego nigdy nie powiedział. Może dlatego było to dla mnie (niepotrzebnie) tajemnicze. Znam DP całkiem dobrze. W każdym razie dzięki! :)
Pinokio

Odpowiedzi:


4

Wydaje mi się, że brakuje ci części z tego samego powodu, dla którego możemy zamówić . Zasadniczo taka jest definicja jednej polityki, która jest lepsza od innej - że jej funkcja wartości jest większa lub równa we wszystkich stanach. Zagwarantowałeś to wybierając akcje maksymalizujące - żadna wartość stanu nie może być gorsza niż poprzednio, a jeśli tylko jeden wybór akcji zmienił się, aby wybrać lepszą akcję maksymalizującą, to już wiesz (ale być może nie obliczałeś), że dla tego stanu będzie wyższy niż był dla .Vπ2Vπ1π2π1Vπ2(s)Vπ1(s)

Kiedy zdecydujemy się zmaksymalizować wyniki w celu wygenerowania , nie wiemy, jakie będą nowe dla dowolnego stanu, ale wiemy, że .π2Vπ2(s)s:Vπ2(s)Vπ1(s)

Dlatego powrót do pętli i obliczenie dla nowej zasady ma takie same lub wyższe wartości niż wcześniej, a jeśli chodzi o ponowne zaktualizowanie zasad, .Vπ2π3π2π1


4

Najpierw zobaczmy, dlaczego działa algorytm iteracji zasad. Ma dwa kroki.

Etap oceny polityki:

vn=rdn+γPdnvn jest ogólną formą wektorową układu równań liniowych.

Tutaj terminy są natychmiastowymi nagrodami i odpowiadającymi im rzędami macierzy przejścia.rdn,Pdn

Warunki te zależą od politykiΠn

Rozwiązując powyższy układ równań, możemy znaleźć wartościvn

Krok poprawy polityki:

Załóżmy, że udało nam się znaleźć nową polisę taką, żeΠn+1

rdn+1+γPdn+1vnrdn+γPdnvnrdn+1[IγPdn+1]vnsay this is eqn. 1

Teraz, w oparciu o nowe zasady , możemy znaleźć , powiedzmy, że to jest równanie 2.Πn+1vn+1=rdn+1+γPdn+1vn+1

Pokażemy, że ;vn+1vn

tzn. zasadniczo dla wszystkich stanów, nowo wybrana polityka daje lepszą wartość w porównaniu do poprzedniej politykiΠn+1Πn

Dowód:

Z równania 2 mamy,

[IγPdn+1]vn+1=rdn+1

Od, mamy1&2

vn+1vn

Zasadniczo wartości rosną monotonicznie z każdą iteracją.

Ważne jest, aby zrozumieć, dlaczego Interakcja między politykami nie utknie na poziomie lokalnym.

Polityka to nic innego jak przestrzeń działań państwa.

Na każdym etapie iteracji zasad staramy się znaleźć co najmniej jedno działanie stanu, które różni się między i i sprawdzamy, czy . Tylko jeśli warunek jest spełniony, obliczymy rozwiązanie nowego układu równań liniowych.Πn+1Πnrdn+1+γPdn+1vnrdn+γPdnvn

Załóżmy, że i są odpowiednio globalnym i lokalnym optimum.ΠΠ#

Implikuje,vv#

Załóżmy, że algorytm utknął na lokalnym optimum.

W takim przypadku krok poprawy polityki nie zatrzyma się na lokalnej optymalnej przestrzeni działania stanu , ponieważ w istnieje co najmniej jedno działanie stanu, które jest inne niż i daje wyższą wartość porównaniu doΠ#ΠΠ#vv#

lub innymi słowy

[IγPd]v[IγPd]v#

rd[IγPd]v#

rd+γPdv#v#

rd+γPdv#rd#+γPd#v#

W związku z tym iteracja zasad nie kończy się na lokalnym optimum

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.