ML Atlas

09 · Wzmocnienie · 5 min czytania · aktualizacja

Gradient polityki i REINFORCE — jak uczyć strategię bezpośrednio?

W skrócie

REINFORCE poprawia strategię w stronę akcji, po których zwrot był wysoki. Na śliskiej planszy 4 × 4 z linią bazową dochodzi średnio do −0,05 (optimum 0,019).

Co to jest

Metody gradientu polityki uczą strategię wprost. Zamiast liczyć wartości stanów i akcji, a potem wybierać najlepszą akcję (jak iteracja wartości czy Q-learning), trzymają strategię jako funkcję z parametrami θ, np. tabelę liczb przepuszczoną przez softmax albo sieć neuronową. Strategia π_θ(a | s) zwraca prawdopodobieństwo każdej akcji. Parametry przesuwa się metodą gradientu tak, by rósł oczekiwany zwrot J(θ).

REINFORCE to najprostszy taki algorytm, opisany przez Ronalda Williamsa w 1992 roku. Agent rozgrywa cały epizod według bieżącej strategii, liczy zwrot G_t od każdego kroku do końca, a potem dla każdej podjętej akcji zwiększa jej prawdopodobieństwo proporcjonalnie do G_t. Akcje, po których działo się dobrze, stają się częstsze; po których źle — rzadsze.

Zaleta: strategia może być losowa i ciągła (np. kąt skrętu kierownicy), a uczenie działa bez modelu środowiska. Wada: oszacowania gradientu są bardzo zaszumione, więc uczenie bywa wolne i niestabilne.

Mechanizm — dlaczego tak działa

wzmacniaj akcje, po których zwrot był wysokistrategia π_θlosuje akcjeepizodzwrot Gθ += α·G·∇log π_θGradient w polu startowym, strategia losowa:w prawo0,099w górę−0,031Bez modelu przejść: wystarczą epizodyi pochodna logarytmu własnej strategii.
Schemat: wzmacniaj akcje, po których zwrot był wysoki

Kłopot polega na tym, że J(θ) zależy od θ przez losowanie akcji, a środowiska nie da się różniczkować. Pomaga tożsamość z funkcją wyniku (score function): ∇π = π · ∇log π. Dzięki niej gradient średniej da się zapisać jako średnią czegoś, co agent może policzyć sam: ∇J(θ) = E[Σ_t γ^t · G_t · ∇log π_θ(a_t | s_t)]. Do tego wystarczą zebrane epizody i pochodna logarytmu własnej strategii. Model przejść nie jest potrzebny.

Twierdzenie o gradiencie polityki (Sutton, McAllester, Singh i Mansour, 2000) mówi to samo dokładnie: gradient to suma po stanach, ważona tym, jak często strategia je odwiedza, z wartości akcji Q^π(s, a) razy ∇π. REINFORCE zastępuje nieznane Q^π obserwowanym zwrotem G_t — jest więc nieobciążony, ale bardzo wariancyjny.

Dla strategii softmax na tabeli θ[s, a] pochodna logarytmu jest prosta: ∇log π(a | s) to wektor „1 dla wybranej akcji minus prawdopodobieństwa wszystkich akcji”. Krok uczenia: θ[s] += α · γ^t · G_t · (e_a − π(· | s)).

Linia bazowa (baseline). Od G_t można odjąć dowolną liczbę b(s) zależną tylko od stanu, bo średnio E[∇log π] = 0 — gradient pozostaje nieobciążony. Gdy b(s) przybliża wartość stanu, aktualizacja mówi „ta akcja była lepsza lub gorsza niż zwykle”, zamiast „zwrot był duży”. Wariancja maleje, czasem wielokrotnie. Gdy b(s) uczy się sam (krytyk), dostajemy metody aktor–krytyk.

Gdzie to się psuje. Gradient prowadzi do maksimum lokalnego, nie globalnego. Softmax może się nasycić: gdy prawdopodobieństwo jednej akcji dojdzie do 0,999, jej gradient prawie znika i strategia utyka, nawet jeśli jest zła. Wysoka wariancja wymaga małych kroków i wielu epizodów. Krok zbyt duży potrafi zniszczyć dobrą strategię jednym zaszumionym gradientem — stąd metody ograniczające zmianę strategii w jednym kroku, jak PPO.

Na przykładzie

Ta sama śliska plansza 4 × 4 co w hasłach o MDP i iteracji wartości: start w lewym dolnym rogu, cel +10, pułapka −10, krok −1, γ = 0,9, ruch zamierzony z prawdopodobieństwem 0,8. Strategia optymalna jest tam warta 0,019, a zupełnie losowa (każda akcja 25%) −9,36.

Najpierw sprawdzenie wzoru. Przy θ = 0 (strategia losowa) liczymy dokładny gradient J różnicami skończonymi i z twierdzenia o gradiencie polityki — różnią się najwyżej o 3·10⁻¹⁰. W polu startowym gradient dla akcji „w prawo” wynosi 0,099, a dla „w górę” −0,031: już losowa strategia „wie”, że prawo jest lepsze. Średnia z oszacowań REINFORCE po 100 000 epizodach daje 0,095, z linią bazową V^π — 0,100. Na wszystkich 64 parametrach największy błąd to 0,023 bez linii bazowej i 0,006 z nią. Całkowita wariancja pojedynczego oszacowania spada z 310 do 24,5, czyli 12,7 razy.

Teraz uczenie: 20 przebiegów z różnymi ziarnami, krok α = 0,05. Wartość wyuczonej strategii (liczona dokładnie) po 1000 epizodów: bez linii bazowej średnio −0,97 (odch. std. 0,71), z wyuczoną linią bazową −0,54 (0,58). Po 10 000 epizodów: −0,39 (0,57) wobec −0,053 (0,051).

Uczciwie: typowy przebieg wygląda w obu wersjach podobnie — mediana −0,042 bez linii bazowej i −0,039 z nią, obie blisko optimum. Różnica tkwi w porażkach. Bez linii bazowej 6 z 20 przebiegów utknęło poniżej −0,5 (najgorszy −1,71); w 5 z nich strategia na starcie wybiera „w górę”, wzdłuż lewej krawędzi obok pułapki, z prawdopodobieństwem co najmniej 0,994 i gradient prawie jej już nie rusza. Z linią bazową najgorszy przebieg to −0,22. Żaden wariant nie dał dokładnie 0,019: softmax nigdy nie jest w pełni deterministyczny, a resztki losowości kosztują.

Jak to policzono
  • Plansza identyczna jak w haśle o MDP (wiersze od góry, cel w wierszu 1 i kolumnie 4, pułapka w wierszu 2 i kolumnie 2, wejście na inne pole −1, ruch w ścianę = zostaje). Wartości strategii losowej liczone dokładnie: numpy.linalg.solve(I − 0,9·P_π, R_π); strategia losowa −9,365, optymalna 0,0190.
  • Strategia: softmax z tabeli θ[16 × 4], start θ = 0. Losowanie akcji i ruchu: random.Random(seed), jedno random() porównywane z kumulowanymi prawdopodobieństwami (ruch: zamierzony, prostopadły zgodnie z ruchem wskazówek zegara, przeciwnie). Limit 200 kroków na epizod.
  • Gradient przy θ = 0: różnice centralne z h = 10⁻⁵ i wzór d_γ(s)·π(a|s)·(Q^π(s, a) − V^π(s)) zgodne do 2,9·10⁻¹⁰; pole startowe (góra, prawo, dół, lewo): −0,031; 0,099; −0,025; −0,043. Oszacowanie Monte Carlo: 100 000 epizodów, random.Random(1), limit 1000 kroków (najdłuższy epizod miał 181, średnio 19,0). Na epizod Σ_t 0,9^t·G_t·∇log π, z linią bazową Σ_t 0,9^t·(G_t − V^π(s_t))·∇log π. Suma wariancji 64 składowych: 310,4 i 24,5.
  • Uczenie: ziarna 0–19, 10 000 epizodów, α = 0,05, aktualizacja θ[s] += α·0,9^t·δ·(e_a − π(·|s)), δ = G_t (bez linii bazowej) albo δ = G_t − w[s], w[s] += 0,1·δ (z linią bazową, w startuje od zera). Średnia (odch. std.) po 200, 1000, 2000, 5000, 10 000 epizodów — bez: −4,07 (2,48); −0,97 (0,71); −0,66 (0,65); −0,47 (0,60); −0,39 (0,57); z: −1,99 (0,79); −0,54 (0,58); −0,37 (0,57); −0,12 (0,23); −0,053 (0,051).
  • Po 10 000 epizodach: bez linii bazowej od −1,713 do −0,0002, mediana −0,042, 6 przebiegów poniżej −0,5; z linią bazową od −0,224 do −0,008, mediana −0,039. Strategia zachłanna (najbardziej prawdopodobna akcja w każdym polu) dokładnie optymalna w 4 z 20 przebiegów bez linii bazowej i w 1 z 20 z nią.

W praktyce

  • Gradient polityki wybierz, gdy akcje są ciągłe albo bardzo liczne, gdy potrzebna jest strategia losowa, albo gdy łatwiej sparametryzować strategię niż wartości.
  • Zawsze odejmuj linię bazową; najprostsza to średni zwrot z ostatnich epizodów, lepsza — wyuczona wartość stanu.
  • Normalizuj zwroty w porcji epizodów (średnia 0, odchylenie 1) i używaj małych kroków; zbyt duży krok potrafi zepsuć strategię nieodwracalnie.
  • Dodaj premię za entropię strategii, by softmax nie nasycił się przedwcześnie.
  • Raportuj wyniki z kilku ziaren, z rozrzutem: jak w przykładzie, średnia potrafi ukryć kilka przebiegów, które utknęły.
  • Biblioteki: stable-baselines3 (A2C, PPO), w modelach językowych trl — tam PPO jest krokiem RLHF, w którym model językowy to strategia, a odpowiedź to akcja.

Najczęstsze pytania

Czym różni się gradient polityki od Q-learningu?
Q-learning uczy się wartości akcji i dopiero z nich wybiera akcję, zwykle zachłannie. Gradient polityki uczy samej strategii, wartości są najwyżej pomocą (linia bazowa, krytyk). Q-learning potrafi wykorzystać stare doświadczenia z innej strategii; klasyczny REINFORCE potrzebuje świeżych epizodów z bieżącej.
Dlaczego linia bazowa nie psuje gradientu?
Bo średnia ∇log π po akcjach losowanych z π wynosi zero: prawdopodobieństwa sumują się do 1, więc ich zmiany sumują się do 0. Odjęcie liczby niezależnej od akcji zmienia więc tylko rozrzut oszacowań, nie ich średnią.
Co ma REINFORCE wspólnego z PPO i RLHF?
PPO (Schulman i in., 2017) to gradient polityki z krytykiem i z ograniczeniem, jak bardzo strategia może się zmienić w jednym kroku. W RLHF w ten sposób dostraja się model językowy do modelu nagrody. Zasada jest ta sama: zwiększać prawdopodobieństwo odpowiedzi ocenionych lepiej niż oczekiwano.
Czy gradient polityki znajduje strategię optymalną?
Gwarantuje tylko dojście w okolicę maksimum lokalnego przy odpowiednio malejącym kroku. W przykładzie 6 z 20 przebiegów bez linii bazowej utknęło w strategii wyraźnie gorszej, choć planszę rozwiązuje dokładnie kilkadziesiąt przebiegów iteracji wartości.

Źródła

Zobacz też

Uczenie ze wzmocnieniem InteraktywneUczenie ze wzmocnieniem to uczenie z nagród za własne działania, bez poprawnej odpowiedzi. Na planszy 5 × 5 agent po 100 epizodach idzie do celu w 8 ruchach.Proces decyzyjny Markowa (MDP)MDP opisuje zadanie agenta: stany, akcje, prawdopodobieństwa przejść, nagrody i dyskonto. Na planszy 4 × 4 z poślizgiem prosta polityka jest warta −3,13.Równanie Bellmana i iteracja wartościIteracja wartości powtarza równanie Bellmana, aż wartości przestaną się zmieniać. Na śliskiej planszy 4 × 4 zbiega w 33 przebiegach do strategii wartej 0,019.Q-learning InteraktywneQ-learning uczy agenta, ile warta jest każda akcja w każdym stanie, poprawiając oszacowania po każdym kroku. Na planszy 5 × 5 po 100 epizodach dochodzi do celu.Softmax InteraktywneSoftmax zamienia wektor logitów na rozkład prawdopodobieństwa: każdy wynik podnosi do e^z i dzieli przez sumę, więc wyjścia są dodatnie i sumują się do 1.Gradient i spadek gradientu InteraktywneSpadek gradientu przesuwa wagi małymi krokami pod prąd gradientu straty. Na danych Breast Cancer strata spada z 0,693 do 0,054 po 1000 krokach.RLHF i DPO — uczenie z preferencji InteraktywneRLHF i DPO dostrajają LLM na porównaniach odpowiedzi ocenionych przez ludzi. W zabawce przy β = 0,05 model ucieka do długiej, pochlebczej odpowiedzi.Problem wielorękiego bandyty InteraktywneWieloręki bandyta: grać na opcji, która dotąd działała najlepiej, czy sprawdzać inne? W 200 przebiegach Thompson ma żal 32,2, ε-zachłanna 37,9, UCB1 67,2.