09 · Wzmocnienie · 6 min czytania · aktualizacja
Uczenie TD, SARSA i Q-learning — jak uczyć się wartości bez czekania na koniec epizodu?
W skrócie
Metody TD poprawiają oszacowanie wartości po każdym kroku. Na śliskiej planszy, przy kroku 0,02, po 2000 epizodów TD(0) myli się o 0,37, a MC o 0,77.
Co to jest
Uczenie różnicami czasowymi (temporal-difference learning, TD) to rodzina metod uczenia ze wzmocnieniem, które szacują wartości stanów lub akcji z doświadczenia, bez modelu środowiska, i robią to po każdym kroku. Ich ogólną teorię przedstawił Richard Sutton w 1988 roku. Na nich stoją Q-learning, SARSA i metody aktor–krytyk.
Najprostsza wersja, TD(0), uczy się wartości V(s) ustalonej strategii. Po przejściu ze stanu s do s′ z nagrodą r porównuje dotychczasowe oszacowanie V(s) z celem r + γ·V(s′) i przesuwa V(s) w jego stronę: V(s) ← V(s) + α·(r + γ·V(s′) − V(s)). Nawias to błąd TD — różnica między tym, co agent przewidywał, a tym, co przewiduje krok później.
Alternatywą jest metoda Monte Carlo (MC): poczekać do końca epizodu, policzyć faktyczny zwrot G i przesunąć V(s) w stronę G. TD nie czeka. Korzysta z własnego oszacowania następnego stanu — mówi się, że „uczy się zgadywania ze zgadywania” (bootstrapping).
Mechanizm — dlaczego tak działa
Wartość stanu spełnia równanie Bellmana: V(s) to średnia z r + γ·V(s′). Cel TD jest więc pojedynczą próbką prawej strony tego równania. MC używa jako celu pełnego zwrotu — sumy wielu losowych nagród. Stąd podstawowy kompromis. Cel MC jest nieobciążony, ale ma dużą wariancję, bo zbiera losowość z całej reszty epizodu. Cel TD ma małą wariancję (jedna losowa nagroda i jedno przejście), ale jest obciążony, dopóki V(s′) jest błędne. Gdy oszacowania się poprawiają, obciążenie znika: w wersji tabelarycznej, przy odpowiednio malejących krokach, TD(0) zbiega do prawdziwych wartości.
TD ma też wadę widoczną na początku: informacja o nagrodzie na końcu epizodu cofa się tylko o jeden stan na każde przejście przez ten stan. MC przenosi ją od razu do wszystkich odwiedzonych stanów.
Do sterowania, czyli szukania dobrej strategii, uczy się wartości akcji Q(s, a). Są dwa główne warianty.
SARSA (Rummery i Niranjan, 1994, pod nazwą „modified connectionist Q-learning”; obecna nazwa, od piątki s, a, r, s′, a′, pochodzi od Suttona): cel to r + γ·Q(s′, a′), gdzie a′ to akcja, którą agent naprawdę wykona w następnym kroku — także losowa, eksploracyjna. SARSA jest więc on-policy: uczy się wartości tej strategii, którą faktycznie się porusza, razem z jej przypadkowymi ruchami. Przy stałym ε jej naturalnym celem jest najlepsza strategia ε-zachłanna (ε-greedy: z prawdopodobieństwem ε losowa akcja). Zbieżność, gdy eksploracja wygasa, wykazali Singh, Jaakkola, Littman i Szepesvári (2000).
Q-learning (Watkins, 1989): cel to r + γ·max Q(s′, ·), wartość najlepszej akcji, niezależnie od tego, co agent zrobi. Jest off-policy: zachowuje się według jednej strategii (eksplorującej), a uczy się wartości innej (zachłannej, optymalnej). Zbiega do Q*, jeśli każda para (s, a) jest odwiedzana nieskończenie często, a kroki odpowiednio maleją (Watkins i Dayan, 1992).
Różnica ujawnia się, gdy eksploracja jest kosztowna. Q-learning wycenia akcje tak, jakby agent nigdy się nie mylił. SARSA wlicza w cenę akcji także własne przyszłe pomyłki, więc omija miejsca, gdzie przypadkowy ruch jest groźny.
Na przykładzie
Ta sama śliska plansza 4 × 4 co w hasłach o MDP, iteracji wartości i gradiencie polityki: start w lewym dolnym rogu, cel +10, pułapka −10, krok −1, γ = 0,9, ruch zamierzony z prawdopodobieństwem 0,8. Sprawdzenie zgodności: nasze obliczenia dają te same wartości — strategia optymalna 0,0190, losowa −9,365, „w górę, potem w prawo” −3,130.
Przewidywanie. Strategia losowa (każda akcja po 25%), wartości zaczynają się od zera, epizod trwa średnio 19 kroków. Mierzymy błąd średniokwadratowy (RMS) na 14 polach względem dokładnych wartości, średnio ze 100 ziaren. Po 10 epizodach przy α = 0,1 MC myli się o 3,28, a TD o 5,97 — MC jest na początku szybsze, bo od razu przenosi zwroty do wszystkich stanów. Później TD dogania i wyprzedza MC przy tym samym α, bo jego cele są mniej rozrzucone (przy małym α dzieje się to dopiero po kilkuset epizodach). Po 2000 epizodów: α = 0,1 — TD 0,85, MC 1,67; α = 0,05 — 0,59 wobec 1,21; α = 0,02 — 0,37 wobec 0,77. Przy małym α oba się zbliżają: po 5000 epizodach TD z α = 0,01 ma 0,25, a najlepsze sprawdzone MC (α = 0,005) 0,37.
Sterowanie. SARSA i Q-learning, po 5000 epizodów, α = 0,1, ε = 0,1, 20 ziaren. Najpierw teoria, liczona dokładnie. Q-learning zmierza do Q: wartość najlepszej akcji na starcie 0,019. SARSA zmierza do wartości akcji najlepszej strategii ε-zachłannej: najlepsza akcja na starcie −0,731. W dwóch polach trzeciej kolumny te strategie się różnią: optymalna idzie w górę, ε-optymalna w prawo — dalej od pułapki. Strategia ε-zachłanna zbudowana na Q wpada w pułapkę w 7,4% epizodów i jest warta −0,924. Strategia ε-optymalna wpada w 3,8% i jest warta −0,798. Kto i tak eksploruje, ten lepiej wychodzi na strategii SARSA.
Nauczone wartości idą za teorią. Średnia wartość najlepszej akcji na starcie: Q-learning −0,011 (cel 0,019), SARSA −0,888 (cel −0,731). Natomiast nauczone strategie są zaszumione i w praktyce podobne. Strategia zachłanna jest warta średnio −0,160 w Q-learningu i −0,183 w SARSA, w żadnym z 20 przebiegów nie jest dokładnie optymalna. Średni zwrot z ostatnich 1000 epizodów treningu: −1,02 i −1,06, pułapka w 3,0% epizodów w obu metodach. Zysk z ostrożności SARSA jest tu mały i ginie w szumie. Wyraźnie widać go w klasycznym spacerze nad urwiskiem, opisanym w haśle o Q-learningu.
Jak to policzono
- Plansza identyczna jak w haśle o MDP: wiersze od góry, cel (wiersz 1, kolumna 4, +10), pułapka (wiersz 2, kolumna 2, −10), wejście na inne pole −1, ruch zamierzony 0,8, prostopadłe po 0,1, ruch w ścianę = zostaje, γ = 0,9. Kontrola: V*(start) = 0,018993; losowa −9,3648; „w górę, potem w prawo” −3,1297 (
numpy.linalg.solve). - Przewidywanie: strategia losowa, V^π od −9,402 do −1,086 na 14 polach. Start zawsze w lewym dolnym rogu, V = 0 na początku,
random.Random(seed), ziarna 0–99; akcjarandrange(4), ruch jednorandom()(zamierzony, prostopadły zgodnie z ruchem wskazówek zegara, przeciwnie). MC: każde odwiedziny, stałe α, aktualizacja po epizodzie od końca. Średnia długość epizodu 19,05. - RMS (średnia ze 100 ziaren) po 10 / 100 / 500 / 2000 epizodach — TD α = 0,2: 4,92 / 1,33 / 1,27 / 1,26; TD 0,1: 5,97 / 1,57 / 0,84 / 0,85; TD 0,05: 6,69 / 2,77 / 0,61 / 0,59; TD 0,02: 7,20 / 4,74 / 1,31 / 0,37; MC 0,1: 3,28 / 1,65 / 1,72 / 1,67; MC 0,05: 4,28 / 1,27 / 1,21 / 1,21; MC 0,02: 5,70 / 1,68 / 0,76 / 0,77; MC 0,01: 6,49 / 2,72 / 0,71 / 0,55. Osobny przebieg do 5000 epizodów: TD 0,01 — 0,25; TD 0,02 — 0,35; MC 0,005 — 0,37; MC 0,01 — 0,52.
- Sterowanie: protokół jak Q-learning w haśle o iteracji wartości (
random.Random(seed), ziarna 0–19,random() < 0,1→randrange(4), inaczejchoicespośród akcji z maksymalnym Q; Q = 0 na początku; limit 200 kroków; cel r przy wejściu w cel lub pułapkę). Jedno losowanie akcji na krok. SARSA: pierwsza akcja losowana na starcie epizodu, a′ tą samą regułą przed aktualizacją. Nasza implementacja Q-learningu daje średnio −0,160 (od −0,286 do 0,0065); hasło o iteracji wartości podaje −0,150 (od −0,299 do 0,0065). Wynik zależy od kolejności losowań: ten sam Q-learning z jednym dodatkowym, niewykorzystanym losowaniem akcji na początku epizodu daje −0,158. - Punkt stały SARSA: iteracja Q ← R + γ·P·[(1 − ε)·max Q + ε·średnia Q], 5000 przebiegów. Strategie zachłanne (P — prawo, G — góra): Q — P P P cel / G pułapka P G / P P G G / P P G G; ε-optymalna — … / P P P G / P P P G. Różnice: wiersz 3, kolumna 3 (Q góra 4,734, prawo 4,706) i wiersz 4, kolumna 3 (2,937 i 2,921). Pułapka: ε-zachłanna na Q* 7,45%, ε-optymalna 3,83%.
- Wyniki 20 przebiegów (średnia, zakres): wartość strategii zachłannej Q-learning −0,160 (−0,286…0,0065), SARSA −0,183 (−0,339…−0,0009); ε-zachłannej −1,005 i −1,031; zwrot z ostatnich 1000 epizodów −1,020 i −1,065; pułapka 3,02% i 3,04%; max Q(start) −0,011 i −0,888; średni błąd |max Q(start) − cel| względem Q* 0,15 i 0,91, względem punktu stałego SARSA 0,72 i 0,26.
Python 3.13,numpy 2.5.3.
W praktyce
- Uczenie TD wybierz, gdy epizody są długie lub nie mają końca — MC musi czekać na zwrot, TD uczy się po każdym kroku.
- Q-learning, gdy chcesz strategii optymalnej i możesz się mylić podczas nauki (symulator). SARSA, gdy agent uczy się w realnym świecie i błędy eksploracji kosztują.
- Krok α decyduje o kompromisie: duży szybko się uczy, ale zostaje na wysokim poziomie szumu (w przykładzie TD z α = 0,2 utknęło przy błędzie 1,26). Zmniejszaj α z czasem.
- Pośrednie warianty: TD(λ) i metody n-krokowe mieszają cele TD i MC; w głębokim RL często używa się celu n-krokowego.
- Gdzie się psuje: TD off-policy z aproksymacją funkcji (sieć neuronowa zamiast tabeli) może się rozbiegać — stąd sieci docelowe i bufory powtórek w DQN. Przy częściowej obserwowalności bootstrapping z błędnego stanu przenosi błąd dalej; MC jest wtedy odporniejsze.
Najczęstsze pytania
- Czym różni się TD od Monte Carlo?
- MC czeka do końca epizodu i uczy się z faktycznego zwrotu; TD uczy się po każdym kroku z nagrody i własnego oszacowania następnego stanu. MC ma cel nieobciążony, ale zaszumiony, TD — mniej zaszumiony, ale obciążony, dopóki oszacowania są złe.
- Co znaczy on-policy i off-policy?
- On-policy (SARSA) uczy się wartości tej strategii, według której agent działa, razem z eksploracją. Off-policy (Q-learning) działa według jednej strategii, a uczy się wartości innej — zwykle zachłannej. Dlatego Q-learning może uczyć się z cudzych lub starych doświadczeń.
- Dlaczego SARSA bywa ostrożniejsza?
- Bo w jej celu jest akcja naprawdę wykonana, czasem losowa. Pole obok pułapki dostaje niższą wartość, skoro losowy ruch może tam wpędzić. W przykładzie strategia, do której zmierza SARSA, przy ε = 0,1 wpada w pułapkę w 3,8% epizodów zamiast 7,4%.
- Czy TD ma coś wspólnego z mózgiem?
- Tak: aktywność neuronów dopaminowych u małp przypomina błąd TD — reaguje na nagrodę niespodziewaną, a po nauce na sygnał zapowiadający nagrodę. Opisali to Schultz, Dayan i Montague (1997).
Źródła
- Sutton, R. S. (1988). „Learning to predict by the methods of temporal differences”. Machine Learning, 3(1), 9–44. https://doi.org/10.1007/BF00115009
- Rummery, G. A., Niranjan, M. (1994). „On-line Q-learning using connectionist systems”. Raport techniczny CUED/F-INFENG/TR 166, Cambridge University Engineering Department. https://mi.eng.cam.ac.uk/reports/abstracts/rummery_tr166.html
- Watkins, C. J. C. H., Dayan, P. (1992). „Q-learning”. Machine Learning, 8(3–4), 279–292. https://doi.org/10.1007/BF00992698
- Singh, S., Jaakkola, T., Littman, M. L., Szepesvári, C. (2000). „Convergence results for single-step on-policy reinforcement-learning algorithms”. Machine Learning, 38(3), 287–308. https://doi.org/10.1023/A:1007678930559
- Sutton, R. S., Barto, A. G. (2018). Reinforcement Learning: An Introduction, 2nd ed., MIT Press, rozdz. 6 (Temporal-Difference Learning: TD(0), SARSA, Q-learning, przykład spaceru nad urwiskiem). http://incompleteideas.net/book/the-book-2nd.html
- Schultz, W., Dayan, P., Montague, P. R. (1997). „A neural substrate of prediction and reward”. Science, 275(5306), 1593–1599. PMID 9054347. https://pubmed.ncbi.nlm.nih.gov/9054347/
Czy to było pomocne?
Dzięki! To pomaga nam poprawiać Atlas.