Strona głównaArtykułyUczenie Maszynowe

Uczenie ze Wzmocnieniem: Uczenie Agenta przez Wypróbowywanie i Błędy

Pętla agent-środowisko, równanie Bellmana i Q-learning – to trzy idee stojące u podstaw każdego systemu uczenia ze wzmocnieniem, od prostego zadania rozwiązywania labiryntu po AlphaGo.

mysimulator teamZaktualizowano — czerwiec 2026≈ 11 min czytania▶ Otwórz symulację

Pętla: agent, środowisko, nagroda

Uczenie przez wzmacnianie nie polega na przykładach z etykietowaniem w taki sposób, jak uczenie nadzorowane. Nie ma zbioru danych "poprawnych" ruchów do naśladowania. Zamiast tego znajduje się agent siedzący wewnątrz środowiska i pętla, która powtarza się za każdym razem, gdy wystąpi kropka: agent obserwuje aktualny stan, wybiera działanie, a środowisko odpowiada nagrodą i nowym stanem. Nic w tej pętli nie mówi agentowi, które działanie było najlepsze — odkrywa jedynie to, co się wydarzyło, nigdy co by się wydarzyło, gdyby wybrał inaczej.

Strategia agenta nazywana jest polityką, zapisywany jako π(s) — mapowanie ze stanów do działań. Całą celem uczenia przez wzmacnianie jest znalezienie polityki π* maksymalizującej całkowitą nagrodę gromadzoną w czasie i znalezienie jej wyłącznie poprzez próbę i błąd, a nie poprzez otrzymywanie odpowiedzi.

demo na żywo · powiązana symulacja● LIVE

Procesy decyzyjne markowskie i zniżony zwrot

Formalnym obiektem pod tym pętlą jest proces decyzyjny markowski: przestrzeń stanów, przestrzeń akcji, prawdopodobieństwa przejścia, funkcja nagrody oraz czynnik dyskontowy γ. Nazwa pochodzi od właściwości markowskiej – następny stan zależy tylko od aktualnego stanu i działania, a nie od historii, która do niego doprowadziła. To pojedyncze założenie sprawia, że całe problem jest rozwiązywalne: agent nigdy nie musi zapamiętywać, jak dotarł w jakimś miejscu, tylko gdzie się znajduje.

Ponieważ nagroda w danej chwili jest warości bardziej niż ta sama nagroda później, zwroty są zniżkowane:

G_t = r_t + γ·r_(t+1) + γ²·r_(t+2) + ... = Σ_k γ^k · r_(t+k) Przy γ = 0.99, nagroda w 100 kroków w przyszłość jest warości jedynie około 0.37 tej samej nagrody, która jest dostępna w danej chwili. γ bliskie 0 sprawia, że agent jest krótkowzroczny; γ bliskie 1 sprawia, że planuje na długo, ale wymaga znacznie więcej danych przed osiadaniem się szacunków wartości.

G_t = r_t + γ·r_(t+1) + γ²·r_(t+2) + ... = Σ_k γ^k · r_(t+k)

Wartości funkcji i równanie Bellmana

Dwie powiązane wielkości wykonują całą pracę. Funkcja wartości stanu V(s) to oczekiwany, zniżkowy zwrot rozpoczynający się w stanie s i podążający za polityką π. Funkcja wartości działania Q(s, a) to oczekiwany, zniżkowy zwrot rozpoczynający się w stanie s, podejmujący działanie a, i kontynuujący zgodnie z polityką π. Jeśli znasz optymalną Q*(s, a) dla każdej pary stan-działanie, optymalna polityka wypada bez wysiłku – zawsze wybieraj działanie o najwyższym wartości Q.

Wkład Richarda Bellmana polegał na zauważeniu, że Q* jest samokonsystentny: wartość bycia w stanie s i podejmowania działania a równoważy się z natychmiastową nagrodą plus zniżkowaną wartością zachowywania się optymalnie z dowolnego następnego stanu.

Równanie optymalności Bellmana: Q*(s, a) = E[ r + γ · max_a' Q*(s', a') ] // "wartość (s,a) to nagroda, którą otrzymujesz teraz, // plus zniżkowana wartość gry idealnie od s' w dalej"

Bellman optimality equation:
Q*(s, a) = E[ r + γ · max_a' Q*(s', a') ]

// "the value of (s,a) is the reward you get now,
//  plus the discounted value of playing perfectly from s' onward"

Uczenie się ze wzmocnieniem: przekształcanie równania w algorytm

Uczenie się ze wzmocnieniem zachodzi, gdy stosuje się równanie Bellmana z wykorzystaniem próbnych doświadczeń zamiast znanego modelu środowiska. Po każdym przejściu (s, a, r, s′) aktualna szacowana wartość jest dostosowywana w kierunku celu Bellmana przez współczynnik uczenia α:

Q(s,a) ← Q(s,a) + α · [ r + γ · max_a' Q(s',a') − Q(s,a) ] \_____________ błąd TD ____________/ Wyraz w nawiasach to błąd temporal-difference (TD) – jak bardzo błędny jest aktualny szacunek w stosunku do celu Bellmana jednego kroku. Ponieważ uczenie się ze wzmocnieniem jest model-free, nie musi znać prawdopodobieństw przejścia środowiska ani funkcji nagrody; musi jedynie być w stanie działać i obserwować wynik. W przypadku małej, dyskretnej siatki, takiej jak labirynt, wartości Q żyją w prostym stole indeksowanym przez (stan, akcja); dla ciągłych lub o wysokiej wymiarowości stanów, stół jest zastępowany przez przybliżacz funkcji, taki jak sieć neuronowa – Głęboki Sieć Wzmocnienia, stabilizowany z użyciem bufora odtwarzania przeszłych przejść i sieci docelowej z wolno aktualizującym się współczynnikiem, aby cel uczenia się nie przesuwał pod nogami agenta w każdym kroku.

Q(s,a) ← Q(s,a) + α · [ r + γ · max_a' Q(s',a') − Q(s,a) ]
                        \_____________ TD error ____________/

Eksploracja kontra wykorzystywanie

Wyłącznie chciwy agent zawsze podejmuje działanie o najwyższej aktualnej wartości Q. Na wczesnym etapie treningu te szacunki są jedynie przypuszczalnymi, dlatego ślepy chciwość może uwięzić agenta w niezmienionym schemacie, który nigdy nie kwestionuje. Standardowym rozwiązaniem jest eksploracja ε-chciwa: z prawdopodobieństwem ε podejmuje się działanie wybrane losowo, a w przeciwnym razie wybiera się działanie chciwe. ε zazwyczaj zaczyna się od 1,0 (większość przypadków losowych, aby zbadać przestrzeń) i jest stopniowo zmniejszane do wartości bliskich 0,05, gdy wartości Q stają się wiarygodne.

function selectAction(Q, state, epsilon):
  if random() < epsilon:
    return randomAction()          // explore
  return argmax_a Q[state][a]      // exploit

Jak to działa w symulacji labiryntu tutaj

Symulacja na tej stronie wykorzystuje tabularne uczenie Q na planszy z labiryntem w czasie rzeczywistym: każdy komórka jest stanem, każde ruchy działaniem, a nagroda to mała kara za postęp oraz duża premia za dotarcie do celu. Trzy suwaki, które można przeciągać – ε, α i γ – to dokładnie trzy powyższe wielkości, więc obserwowanie zmian zachowania agenta w miarę ich przesuwania to obserwacja na żywo kompromisu między eksploracją a wykorzystaniem, kompromisu dotyczącego współczynnika uczenia się oraz horyzontu planowania. Przesuń ε do zera i agent zamarznie w polityce, którą aktualnie posiada, niezależnie od tego, czy jest dobra, czy zła; zwiększ γ w kierunku 1 i zacznie podejmować dłuższe, bardziej skomplikowane ścieżki, które się opłacają dalej w przyszłości.

Frequently asked questions

Jakie jest różnica między uczeniem się przez wzmacnianie Q-learning a oparte na modelu?

Q-learning jest metodą bezwiedną (model-free): nigdy nie szacuje prawdopodobieństw przejść stan-akcja ani funkcji nagrody, jedynie próbuje transycji (stan, akcja, nagroda, następny stan) i aktualizuje wartości Q bezpośrednio. Metody oparte na modelu najpierw uczą się lub otrzymują model środowiska, a następnie planują w nim, co może być bardziej efektywne pobieranie próbek, ale wiąże się z ryzykiem planowania na podstawie błędnego modelu.

Jeśli celem jest działanie w sposób maksymalnie egoistyczny, dlaczego agent eksploruje?

Wczesne szacunki wartości Q są niepewne, więc działanie wyłącznie w sposób maksymalnie egoistyczny na samym początku może sparaliżować agenta w średniej polityce, której nigdy nie zrewiduje. Eksploracja epsilon-greedy wymusza okazjonalne losowe działania, dzięki czemu agent próbuje całego przestrzeni stanów i akcji; gdy szacunki się poprawiają, wartość epsilon jest zmniejszana (annealed) a polityka zbliża się do polityki maksymalnie egoistycznej.

Dlaczego zniżkowany współczynnik przyszłych nagród (gamma) jest używany zamiast liczenia ich równo?

Współczynnik dyskontowy gamma poniżej 1 ogranicza nieskończoną sumę przyszłych nagród do skończonej wartości, odzwierciedla rozsądne preferencje dla nagrody wczesniej niż później i kontroluje, jak daleko agent efektywnie planuje. Gamma blisko 0 sprawia, że agent jest krótkowzroczny; gamma blisko 1 sprawia, że ocenia on nagrody oddalone o prawie tak samo mocno jak natychmiastowe, co wymaga więcej danych do wiarygodnego oszacowania.

Wypróbuj na żywo

Wszystko powyżej działa bezpośrednio w Twojej przeglądarce — otwórz the simulation i zmieniaj parametry podczas działania. Nic nie jest instalowane ani przesyłane na serwer, cały model działa w jednej karcie.

▶ Otwórz symulację the simulation

Co znalazłeś?

Dodaj kroki odtworzenia (opcjonalnie)