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.
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 bibliotekagymnasium(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).