ML Atlas

09 · Wzmocnienie · 4 min czytania · Interaktywne · aktualizacja

Jak działa Q-learning i czym jest funkcja Q?

W skrócie

Q-learning uczy agenta, ile warta jest każda akcja w każdym stanie, poprawiając oszacowania po każdym kroku. Znajduje strategię optymalną mimo eksploracji.

Co to jest

Q-learning to algorytm uczenia ze wzmocnieniem, w którym agent uczy się funkcji Q(s, a): oczekiwanej sumy przyszłych nagród, jeśli w stanie s wykona akcję a, a potem będzie działał optymalnie. Gdy funkcja Q jest znana, strategia jest trywialna — w każdym stanie wybierz akcję o najwyższej wartości Q. Algorytm zaproponował Christopher Watkins w 1989 roku.

Intuicja: uczysz się poruszać po nowym mieście. Nie dostajesz mapy, tylko po każdym kroku informację, czy było dobrze, czy źle, a cel nagradza dopiero na końcu. Z czasem zapisujesz w głowie tabelkę: „z tego skrzyżowania w prawo — blisko do celu, w lewo — korek”. Q-learning buduje dokładnie taką tabelkę, poprawiając ją po każdym kroku.

Mechanizm — dlaczego tak działa

Kluczem jest równanie Bellmana: wartość akcji to natychmiastowa nagroda plus zdyskontowana wartość najlepszej akcji w stanie, do którego trafimy. Zapisane jako reguła uczenia:

Q(s, a) ← Q(s, a) + α · [r + γ · max_a′ Q(s′, a′) − Q(s, a)]

Wyrażenie w nawiasie to błąd różnicy czasowej (TD): różnica między tym, co właśnie zaobserwowaliśmy (nagroda r plus oszacowanie przyszłości), a tym, czego się spodziewaliśmy. α to współczynnik uczenia, a γ (od 0 do 1) — współczynnik dyskontowania, który mówi, jak bardzo liczą się nagrody odległe w czasie.

Dlaczego to działa, skoro poprawiamy oszacowanie za pomocą innego oszacowania (bootstrapping)? Bo nagrody r są prawdziwe. Informacja o nagrodzie przy celu w każdym przebiegu przesuwa się o krok wstecz — od stanu przy celu do jego poprzedników, potem do ich poprzedników. Watkins i Dayan (1992) udowodnili, że przy tabelarycznej reprezentacji, odpowiednio malejącym α i nieskończenie częstym odwiedzaniu każdej pary stan–akcja Q-learning zbiega do optymalnej funkcji Q.

Najważniejsza cecha to uczenie poza strategią (off-policy). W celu używamy max — wartości najlepszej akcji — niezależnie od tego, co agent naprawdę zrobi w następnym kroku. Agent może więc eksplorować (np. ε-zachłannie: w 10% ruchów losowo), a mimo to uczy się wartości strategii optymalnej, bez eksploracji. Jego bliski krewny SARSA w celu używa akcji faktycznie wykonanej, więc uczy się wartości strategii z eksploracją — razem z jej błędami.

Ograniczenia: tabela ma po jednej komórce na parę stan–akcja, więc przy milionach stanów (obraz z gry, robot) trzeba ją zastąpić siecią neuronową — to deep Q-learning (DQN). Wtedy gwarancje zbieżności znikają i potrzebne są triki stabilizujące: bufor powtórek i sieć docelowa. Operator max systematycznie zawyża wartości przy zaszumionych oszacowaniach, co poprawia Double Q-learning.

Na przykładzie

Klasyczny „spacer nad urwiskiem” z podręcznika Suttona i Barto: siatka 4 × 12, start w lewym dolnym rogu, cel w prawym dolnym, a między nimi wzdłuż dolnej krawędzi urwisko. Każdy krok kosztuje −1, upadek −100 i powrót na start. Najkrótsza droga to 13 kroków tuż nad urwiskiem. Uczymy 500 epizodów, ε = 0,1, α = 0,5, γ = 1, i powtarzamy 50 razy z różnymi ziarnami.

Q-learning we wszystkich 50 przebiegach znajduje trasę optymalną: 13 kroków wzdłuż krawędzi (mediana: od 39. epizodu zachłanna trasa jest już optymalna), a Q(start) wynosi dokładnie −13. SARSA wybiera bezpieczniejszą trasę dalej od urwiska — w 41 z 50 przebiegów ma 17 lub 19 kroków. Paradoks pojawia się w trakcie treningu: w ostatnich 100 epizodach Q-learning zbiera średnio −50,2 na epizod, a SARSA −27,6. Q-learning idzie najkrótszą drogą tuż nad przepaścią, więc losowy ruch eksploracyjny spycha go w dół w 25% epizodów; SARSA spada tylko w 5%. Q-learning uczy się najlepszej strategii, SARSA — najlepszej przy założeniu, że czasem się potknie.

Ta ilustracja działa w przeglądarce z włączonym JavaScriptem: Q-learning na planszy 5×5 z dołem i celem: przy α = 0,3, γ = 0,9, ε = 0,1 zachłanna polityka znajduje najkrótszą drogę (8 ruchów) po 33 epizodach, a przy α = 0,05 potrzeba ok. 150–500 epizodów.

W praktyce

  • Tabelaryczny Q-learning to kilkanaście linijek NumPy: tablica Q = np.zeros((n_states, n_actions)) i reguła aktualizacji po każdym kroku. Środowiska testowe daje biblioteka gymnasium (np. CliffWalking-v0, FrozenLake-v1).
  • Typowe wartości: α 0,1–0,5, γ 0,9–0,99, ε zaczynające od 1 i malejące do 0,01–0,1.
  • Inicjalizacja Q powyżej realnych wartości („optymistyczna”) zachęca do eksploracji nieznanych akcji.
  • Dla dużych przestrzeni stanów: DQN w PyTorch lub gotowe implementacje (np. Stable-Baselines3) z buforem powtórek i siecią docelową.
  • Oceniaj strategię zachłanną (ε = 0) osobno od nagród zbieranych podczas treningu — to dwie różne liczby.
  • Typowy błąd: za szybkie wygaszanie ε — agent przestaje eksplorować, zanim nagroda z celu zdąży się rozpropagować.

Najczęstsze pytania

Czym różni się Q-learning od SARSA?
Q-learning w aktualizacji używa wartości najlepszej akcji w następnym stanie (off-policy), więc uczy się strategii optymalnej niezależnie od eksploracji. SARSA używa akcji faktycznie wykonanej (on-policy), więc uczy się strategii uwzględniającej przypadkowe ruchy — zwykle ostrożniejszej. Różnicę dobrze widać w zadaniu ze spacerem nad urwiskiem.
Co oznacza litera Q w Q-learningu?
Q od angielskiego „quality” — jakość akcji w danym stanie. Funkcja Q(s, a) mówi, jak dobra jest akcja a w stanie s, mierząc to oczekiwaną sumą przyszłych, zdyskontowanych nagród.
Czym jest deep Q-learning (DQN)?
To Q-learning, w którym tabelę zastępuje sieć neuronowa przyjmująca stan (np. obraz z ekranu) i zwracająca wartości Q wszystkich akcji. Mnih i współpracownicy pokazali w 2015 roku, że DQN uczy się grać w wiele gier Atari na poziomie porównywalnym z ludźmi, bezpośrednio z pikseli.

Źródła

  • Watkins C. J. C. H., „Learning from Delayed Rewards”, rozprawa doktorska, University of Cambridge, 1989.
  • Watkins C. J. C. H., Dayan P., „Q-learning”, Machine Learning 8, 1992.
  • Sutton R. S., Barto A. G., „Reinforcement Learning: An Introduction”, 2nd ed., MIT Press 2018, rozdz. 6 (Temporal-Difference Learning), przykład 6.6 (Cliff Walking).
  • Mnih V. i in., „Human-level control through deep reinforcement learning”, Nature 518, 2015.
  • van Hasselt H., „Double Q-learning”, Advances in Neural Information Processing Systems 23 (NIPS 2010).

Zobacz też