Přeskočit na obsah
coden

Markovovy rozhodovací procesy: stavy, akce, odměny a Bellmanovy rovnice

MDP na mřížkovém světě s útesem, výnos a diskont, hodnotová funkce a Bellmanova rovnice, hodnotová iterace a iterace strategie napsané od nuly, jak diskont, klouzání a cena kroku mění optimální chování, a kontrola simulací.

11 minut Matěj Žalmánek 2026-10-16

Série Základy AI Díl 78 z 83
  1. Mapa umělé inteligence: co je co a jak to do sebe zapadá
  2. Stručná historie umělé inteligence: od Turinga po jazykové modely
  3. Data, model, trénink, inference: základní pojmy na jednom příkladu
  4. Jak číst matematický zápis: symboly, indexy, sumy a kvantifikátory
  5. Množiny a relace: stavebnice, ze které se skládají definice v AI
  6. Funkce a zobrazení: proč je každý model v AI funkce
  7. Logika a důkazy: pravidla, podle kterých se v AI uvažuje
  8. Grafy a stromy: struktura, na které stojí hledání i neuronové sítě
  9. Lineární algebra pro strojové učení: vektory, matice a proč AI hlavně násobí
  10. Derivace, gradient a řetízkové pravidlo: jak model zjistí, kterým směrem se učit
  11. Gradientní sestup: jak se model učí
  12. Co je pravděpodobnost: od hodu kostkou ke Kolmogorovovým axiomům
  13. Podmíněná pravděpodobnost a Bayesova věta: jak změnit odhad, když se dozvíte něco nového
  14. Náhodná veličina a distribuční funkce: jedna funkce, která o rozdělení řekne všechno
  15. Funkce hustoty a pravděpodobnostní funkce: proč má spojitá veličina v bodě pravděpodobnost nula
  16. Střední hodnota, rozptyl a kovariance: kde rozdělení leží, jak je široké a co s čím souvisí
  17. Přehled pravděpodobnostních rozdělení: Bernoulli, binomické, Poisson, rovnoměrné, normální a exponenciální
  18. Zákon velkých čísel a centrální limitní věta: proč se průměry chovají tak předvídatelně
  19. Statistika a odhady parametrů: maximální věrohodnost, MAP a intervaly spolehlivosti
  20. Teorie informace: entropie, křížová entropie a KL divergence — odkud se berou ztrátové funkce
  21. Prohledávání stavového prostoru: BFS, DFS, UCS a A* s animacemi
  22. Hry a protivník: minimax, alfa-beta ořezávání a Monte Carlo tree search
  23. Splňování omezujících podmínek: backtracking, propagace omezení a AC-3 na sudoku a mapě krajů
  24. Logika a znalostní systémy: dopředné a zpětné řetězení, rezoluce a expertní systémy
  25. Plánování: STRIPS, svět kostek, heuristiky z relaxace a plánování v AI agentech
  26. Lokální hledání a simulované žíhání: obchodní cestující přes krajská města
  27. Genetické algoritmy: populace, křížení, mutace a výběr na batohu na výlet
  28. Evoluční strategie a genetické programování: od pravidla jedné pětiny po Keplerův zákon
  29. Optimalizace mravenčí kolonií: jak feromonová stopa najde krátkou cestu
  30. Optimalizace hejnem částic: setrvačnost, vlastní zkušenost a zkušenost hejna
  31. Neuroevoluce: evoluce vah i tvaru neuronových sítí a algoritmus NEAT
  32. Fuzzy množiny a funkce příslušnosti: jak zapsat „trochu teplo“
  33. Fuzzy logika a pravděpodobnost: proč „trochu teplo“ neznamená „pravděpodobně teplo“
  34. Fuzzy logika: t-normy, implikace a pravidla KDYŽ–PAK
  35. Fuzzy řízení: Mamdani a Sugeno od ventilátoru po kyvadlo na vozíku
  36. Fuzzy shlukování: algoritmus fuzzy c-means a body mezi shluky
  37. Neuro-fuzzy systémy (ANFIS): fuzzy pravidla, která se učí z dat
  38. Markovovy řetězce: přechodová matice, stacionární rozdělení a PageRank
  39. Skryté Markovovy modely: Viterbiho algoritmus a nepoctivé kasino
  40. Bayesovské sítě: proč je tráva mokrá a co z toho plyne pro postřikovač
  41. Kalmanův filtr: jak z nepřesných měření odhadnout, kde auto je a jak rychle jede
  42. Druhy strojového učení: s učitelem, bez učitele, s částečným učitelem a další
  43. Přeučení a regularizace: proč model, který zná data nazpaměť, selže
  44. Vyhodnocení modelu: křížová validace, F1 a křivka ROC
  45. Shlukování a snížení dimenze: k-means, PCA a t-SNE
  46. Klasifikace a regrese: dvě úlohy učení s učitelem
  47. Lineární regrese: nejmenší čtverce geometricky i maticově
  48. Polynomiální a nelineární regrese: jak přímku ohnout
  49. Logistická regrese: sigmoida, šance a křížová entropie
  50. Vícetřídní klasifikace a softmax: od dvou tříd k mnoha
  51. Naivní Bayesův klasifikátor: spamový filtr, který funguje lépe, než by měl
  52. Ztrátové funkce: co přesně model minimalizuje
  53. Rozhodovací stromy a k nejbližších sousedů: modely bez vzorců
  54. Ansámbly: náhodný les a gradient boosting
  55. SVM a jádrový trik: nejširší hranice a jak ji ohnout
  56. Signál a vzorkování: proč platí Nyquistův teorém
  57. Fourierova transformace: rozklad signálu na frekvence
  58. Filtry a konvoluce: vyhlazení, hrany a odstranění šumu
  59. Zvuk a řeč: spektrogram, melová škála a MFCC
  60. Obraz jako signál: pixely, barvy, konvoluce a hrany
  61. Perceptron a umělý neuron: nejjednodušší neuronová síť a co neumí
  62. Neuronová síť od nuly: zpětné šíření chyby krok za krokem
  63. Aktivace, inicializace a normalizace: drobnosti, na kterých hluboká síť stojí
  64. Konvoluční sítě: jak síť poznává obrázky
  65. Rekurentní sítě: paměť pro posloupnosti a mizející gradient
  66. LSTM a GRU: brány, které rozhodují, co si síť zapamatuje
  67. Autoenkodéry: síť, která se učí data stlačit a zase rozbalit
  68. Embeddingy a word2vec: jak se slovo stane vektorem
  69. Mechanismus pozornosti: jak se model naučí, kam se dívat
  70. Transformery a velké jazykové modely: architektura krok za krokem
  71. Tokenizace: jak se text rozseká na kousky pro model
  72. Předtrénování a škálování: proč větší model a víc dat funguje
  73. Doladění a RLHF: jak se z doplňovače textu stane asistent
  74. Prompty, kontext a RAG: jak modelu dát správné informace
  75. Variační autoenkodéry (VAE): nové obrázky ze spojitého latentního prostoru
  76. Generativní adversariální sítě (GAN): padělatel proti detektivovi
  77. Difúzní modely: jak se z čistého šumu stane obrázek
  78. Markovovy rozhodovací procesy: stavy, akce, odměny a Bellmanovy rovnice
  79. Q-learning a DQN: učení hodnoty akcí od tabulky po neuronovou síť
  80. Policy gradient a PPO: učení přímo strategie
  81. Jak funguje AI agent: jazykový model ve smyčce s nástroji
  82. Programování s AI agenty: zadání, testy a kontrola
  83. Vyhodnocení a bezpečnost AI systémů: jak měřit a jak hlídat

Celá osnova série 83 z 83 témat hotovo

Co si odnesete
  • Jak se úloha posilovaného učení popíše jako MDP.
  • Co je hodnota stavu a jak ji spočítá Bellmanova rovnice.
  • Proč drobnosti v odměnách a diskontu úplně změní chování agenta.

Co se hodí znát předem: Markovovy řetězce: přechodová matice, stacionární rozdělení a PageRank, Střední hodnota, rozptyl a kovariance: kde rozdělení leží, jak je široké a co s čím souvisí, Druhy strojového učení: s učitelem, bez učitele, s částečným učitelem a další

Dosud se modely v sérii učily z příkladů se správnou odpovědí, nebo hledaly strukturu v datech. Posilované učení je třetí cesta: agent jedná, svět mu za to dává odměny a tresty a agent má přijít na to, jak jednat, aby jich nasbíral co nejvíc. Než se pustíme do učení, potřebujeme jazyk, kterým takovou úlohu přesně popíšeme. Tím je Markovův rozhodovací proces. V tomhle dílu ho postavíme na malém světě s útesem a spočítáme nejlepší chování přesně — za předpokladu, že pravidla světa známe.

Navazuje na díly Markovovy řetězce, Střední hodnota a Druhy strojového učení.

1. Agent, prostředí, odměna

Definice — Markovův rozhodovací proces (MDP)

Nechť

  1. S je konečná neprázdná množina (množina stavů),
  2. A je konečná neprázdná množina (množina akcí),
  3. P : S × A × S → [0, 1], (s, a, s′) ↦ P(s′ | s, a), je funkce taková, že ∑s′ ∈ S P(s′ | s, a) = 1 pro všechna s ∈ S a a ∈ A (přechodové pravděpodobnosti — pro každou dvojici (s, a) je P(· | s, a) rozdělení na S),
  4. R : S × A × S → ℝ je funkce (odměna za přechod z s akcí a do s′),
  5. γ ∈ [0, 1) je číslo (diskontní faktor).

Markovův rozhodovací proces (MDP) je pětice

(S, A, P, R, γ).

Průběh procesu: v časech t = 0, 1, 2, … je agent ve stavu st ∈ S, zvolí akci at ∈ A, svět ho přesune do stavu st+1 a agent dostane odměnu rt+1 = R(st, at, st+1). Stavy st a akce at jsou náhodné veličiny a platí Markovova vlastnost: pro každé t ∈ ℕ0 a všechna s0, …, st−1, s, s′ ∈ S, a0, …, at−1, a ∈ A, pro která má podmínka kladnou pravděpodobnost,

P(st+1 = s′ | st = s, at = a, st−1, at−1, …, s0, a0) = P(s′ | s, a).

Další stav tedy závisí jen na současném stavu a akci, ne na historii — stejně jako u Markovova řetězce, jen přechod navíc ovlivňuje volba agenta. Stav s ∈ S je koncový, právě když P(s | s, a) = 1 a R(s, a, s) = 0 pro každé a ∈ A: kdo do něj vstoupí, už v něm zůstane a nic dalšího nedostane — tím se modeluje konec epizody (u nás útes a oba cíle).

Laicky řečeno

Desková hra s kostkou: víte, na jakém jste políčku (stav), vyberete tah (akce), kostka rozhodne, kam se doopravdy posunete (přechod), a za některá políčka dostanete body (odměna). Na tom, jak jste se na políčko dostali, nezáleží — důležité je jen, kde stojíte teď.

Náš svět je mřížka 6 × 5. Agent začíná vlevo (S), může jít nahoru, doprava, dolů nebo doleva. Celý spodní řádek je útes: kdo do něj spadne, dostane −10 a hra končí. Kousek od startu je malý cíl za +1, daleko vpravo velký cíl za +10. Dvě zdi zavírají kratší cestu nahoru. A podlaha může klouzat: s pravděpodobností p agent místo zamýšleného směru uklouzne do jednoho ze dvou kolmých směrů.

P(s′ | s, a) = (1 − p) · [s′ = krok ve směru a] + p/2 · [s′ = krok kolmo vlevo] + p/2 · [s′ = krok kolmo vpravo]

P(s′ | s, a)
s jakou pravděpodobností skončí agent po akci a v poli s′ — celé rozdělení, ne jen „kam to má jít“, protože hodnota tahu se bude počítat jako průměr přes všechna možná místa dopadu
(1 − p) · […]
zamýšlený pohyb — dostane většinu pravděpodobnosti; s p = 0 zbude jen tenhle člen a svět je deterministický
p/2 · […]
uklouznutí do strany, rovným dílem vlevo i vpravo — díky němu je pole vedle útesu nebezpečné, i když jdeme podél něj, a ne do něj
[podmínka] je 1, když podmínka platí, jinak 0. Narazí-li pohyb do zdi nebo okraje, je s′ = s a příslušné členy se sečtou — součet přes všechna s′ je vždy 1. Rozdělení (0,8; 0,1; 0,1) (tj. p = 0,2) má i klasický mřížkový svět z učebnice Russella a Norviga.
Příklad — krok doprava podél útesu

Agent stojí na poli vpravo od startu (nad ním je zeď, pod ním útes) a zvolí „doprava“, p = 0,2:

  • 0,8 — další pole vpravo,
  • 0,1 — útes (odměna −10, konec),
  • 0,1 — pole vpravo od startu (uklouzne nahoru do zdi a zůstane na místě),

dohromady 0,8 + 0,1 + 0,1 = 1 (barvy podle vzorce výše: zamýšlený krok a uklouznutí do strany). Očekávaná okamžitá odměna tohoto tahu je 0,8 · 0 + 0,1 · (−10) + 0,1 · 0 = −1: v průměru každý desátý takový krok skončí pádem.

2. Výnos, diskont a strategie

Definice — výnos a strategie

Nechť (S, A, P, R, γ) je MDP a r1, r2, … ∈ ℝ jsou odměny, které agent postupně dostane. Výnos z času t ∈ ℕ0 je diskontovaný součet budoucích odměn

Gt = ∑k=0∞ γk rt+k+1 = rt+1 + γ rt+2 + γ² rt+3 + …

(řada konverguje, viz větu níže; po vstupu do koncového stavu jsou všechny další odměny 0).

Strategie (policy) je pravidlo, podle kterého agent volí akci podle současného stavu:

  1. deterministická strategie je funkce π : S → A; agent v čase t volí at = π(st);
  2. stochastická strategie je funkce π : A × S → [0, 1], (a, s) ↦ π(a | s), taková, že ∑a ∈ A π(a | s) = 1 pro každé s ∈ S; agent volí akci náhodně s P(at = a | st = s, historie) = π(a | s).

Deterministická strategie je zvláštní případ stochastické s π(a | s) = 1, právě když a = π(s). Pevná strategie π udělá z MDP Markovův řetězec na S s přechodovými pravděpodobnostmi pss′ = ∑a ∈ A π(a | s) P(s′ | s, a). Cílem je strategie s co největším očekávaným výnosem (přesně v definici hodnotové funkce níže).

Laicky řečeno

Diskont γ říká, kolik je odměna zítra méně než dnes. S γ = 0,9 má odměna za deset kroků váhu 0,9¹⁰ ≈ 0,35, s γ = 0,5 jen 0,001. Malé γ dělá agenta netrpělivým, γ blízko 1 trpělivým. Strategie je pak prostě tahák: „na tomhle políčku jdi doprava, na tamtom nahoru“.

Gt = rt+1 + γ · Gt+1

Gt
výnos od teď do konce — číslo, které chce agent mít co největší
rt+1
odměna hned za příští krok — jediná, kterou dostane bez čekání, proto bez diskontu
γ
diskont — všechno, co přijde později, se zlevní o jeden činitel γ; tím se „později“ převádí na „méně“
Gt+1
výnos od příštího kroku — tatáž veličina o krok dál; rekurze, ze které za chvíli vyroste Bellmanova rovnice
Stačí vytknout γ ze všech členů kromě prvního: rt+1 + γ (rt+2 + γ rt+3 + …).
Věta — s γ < 1 je výnos vždy konečný

Nechť (S, A, P, R, γ) je MDP s γ ∈ [0, 1) a Rmax = maxs, s′ ∈ S, a ∈ A |R(s, a, s′)| (maximum existuje, protože S i A jsou konečné). Pak pro každou strategii, každé t ∈ ℕ0 a každý průběh procesu řada Gt absolutně konverguje a

|Gt| ≤ Rmax (1 + γ + γ² + …) = Rmax/1 − γ,

i kdyby epizoda nikdy neskončila.

Důkaz. Každá odměna je rt+k+1 = R(st+k, at+k, st+k+1), takže |rt+k+1| ≤ Rmax. Trojúhelníková nerovnost dá |Gt| ≤ ∑k ≥ 0 γk |rt+k+1| ≤ Rmax ∑k ≥ 0 γk a geometrická řada s kvocientem 0 ≤ γ < 1 má součet 1/1 − γ. ∎

U nás Rmax = 10 a γ = 0,9, takže |G| ≤ 10/0,1 = 100. Bez ceny za krok je to ještě mnohem méně: nenulovou odměnu dá jen vstup do cíle nebo útesu, a to nejvýš jednou za epizodu, takže |G| ≤ 10. Proto γ = 1 jde použít jen tam, kde epizoda jistě skončí.

Příklad — výnos nejkratší cesty k velkému cíli

Na pevné podlaze vede nejkratší cesta k cíli +10 přes 6 kroků. Prvních pět kroků dá odměnu 0, šestý (vstup do cíle) +10. S γ = 0,9:

G0 = 0 + 0,9 · 0 + 0,9² · 0 + 0,9³ · 0 + 0,9⁴ · 0 + 0,9⁵ · 10 = 0,59049 · 10 = 5,9049.

Na pevné podlaze se nic náhodného neděje, takže tohle je přímo hodnota startu — a výpočet hodnotovou iterací v oddílu o strategiích dá skutečně 5,90. Malý cíl +1 by i za 3 kroky dal jen 0,9² · 1 = 0,81.

3. Hodnota a Bellmanovy rovnice

Definice — hodnotová funkce a Bellmanova rovnice optimality

Nechť (S, A, P, R, γ) je MDP s γ ∈ [0, 1), π strategie a Eπ značí střední hodnotu při chování podle π. Hodnotová funkce strategie π je funkce Vπ : S → ℝ a hodnota akce je funkce Qπ : S × A → ℝ,

Vπ(s) = Eπ[Gt | st = s],   Qπ(s, a) = Eπ[Gt | st = s, at = a]

(díky Markovově vlastnosti nezávisí na t). Vπ(s) je tedy očekávaný výnos, když agent začne v s a řídí se π; u Qπ(s, a) první akci a určíme sami a teprve potom se agent řídí π. Optimální hodnoty jsou

V*(s) = maxπ Vπ(s),   Q*(s, a) = maxπ Qπ(s, a)   pro všechna s ∈ S, a ∈ A,

a strategie π* je optimální, právě když Vπ*(s) = V*(s) pro všechna s ∈ S. (U konečného MDP s γ < 1 maxima existují a existuje optimální deterministická strategie.)

Platí (Richard Bellman, 1957):

  1. Bellmanova rovnice pro deterministickou strategii π: pro všechna s ∈ S Vπ(s) = ∑s′ ∈ S P(s′ | s, π(s)) [R(s, π(s), s′) + γ Vπ(s′)];
  2. Bellmanova rovnice optimality: pro všechna s ∈ S a a ∈ A Q*(s, a) = ∑s′ ∈ S P(s′ | s, a) [R(s, a, s′) + γ V*(s′)],   V*(s) = maxa ∈ A Q*(s, a), a V* je jediná funkce S → ℝ, která tyto rovnice splňuje;
  3. každá deterministická strategie π* s π*(s) ∈ argmaxa ∈ A Q*(s, a) pro všechna s ∈ S je optimální.
Laicky řečeno

Hodnota políčka = co z něj nejlépe vytěžím. A to se dá spočítat rekurzivně: z každého tahu dostanu okamžitou odměnu plus (trochu zlevněnou) hodnotu políčka, kam mě tah zavede — zprůměrovanou přes to, kam mě kostka může hodit. Vyberu tah, kde to vyjde nejvíc.

V*(s) = maxa ∑s′ P(s′ | s, a) [R(s, a, s′) + γ V*(s′)]

V*(s)
nejlepší očekávaný výnos z pole s — to, co hledáme; stojí na obou stranách, takže rovnice je podmínka, kterou musí hodnoty splnit všechny najednou
maxa
volba agenta — akci si vybírá sám, a tak bere tu nejlepší; tady se rovnice „optimality“ liší od rovnice pro pevnou strategii π, kde místo maxima stojí π(s)
∑s′ P(s′ | s, a) […]
průměr přes to, kam agenta svět skutečně hodí — o tom agent nerozhoduje, proto střední hodnota, ne maximum
R(s, a, s′)
okamžitá odměna za tenhle přechod (+1, +10, −10 nebo cena kroku)
γ
diskont — budoucnost je o krok dál, proto jeden činitel γ (stejně jako ve vzorci Gt = rt+1 + γ Gt+1)
V*(s′)
nejlepší výnos z místa dopadu — celá budoucnost shrnutá do jednoho čísla, takže se nemusí procházet všechny dlouhé cesty
Výraz za maximem je Q*(s, a): hodnota akce a v poli s, když se potom už hraje nejlépe.
Příklad — Bellmanova rovnice na startu (klouzání 20 %, γ = 0,9)

Hotové optimální hodnoty sousedů startu: pole nad startem V* = 3,325, pole vpravo V* = 2,260, start sám V* = 2,854; útes je koncový (hodnota 0, odměna −10). Dosadíme do pravé strany pro každou akci (barvy podle Bellmanovy rovnice výše):

  • ↑: 0,8 · (0 + 0,9 · 3,325) + 0,1 · (0 + 0,9 · 2,260) + 0,1 · (0 + 0,9 · 2,854) = 2,854,
  • →: 0,8 · (0 + 0,9 · 2,260) + 0,1 · (−10 + 0,9 · 0,000) + 0,1 · (0 + 0,9 · 3,325) = 0,926,
  • ↓: 0,8 · (−10 + 0,9 · 0,000) + 0,1 · (0 + 0,9 · 2,854) + 0,1 · (0 + 0,9 · 2,260) = −7,540,
  • ←: 0,8 · (0 + 0,9 · 2,854) + 0,1 · (0 + 0,9 · 3,325) + 0,1 · (−10 + 0,9 · 0,000) = 1,354,

Výsledky jsou Q*(start, a). Největší (maxa) je ↑ s 2,854, a to je přesně V*(start) — rovnice platí (rozdíl v poslední číslici je zaokrouhlení). Akce „nahoru“ má cenu i přes 10% šanci, že agent uklouzne doleva, narazí na okraj a zůstane na startu: proto se V*(start) objevuje i vpravo. Akce „dolů“ vede z 80 % do útesu a vyjde hluboko záporná.

4. Hodnotová iterace

Definice — hodnotová iterace

Bellmanův operátor MDP (S, A, P, R, γ) je zobrazení B, které každé funkci V : S → ℝ přiřadí funkci BV : S → ℝ,

(BV)(s) = maxa ∈ A ∑s′ ∈ S P(s′ | s, a) [R(s, a, s′) + γ V(s′)].

Hodnotová iterace je algoritmus:

  • vstup: MDP (S, A, P, R, γ) s γ ∈ [0, 1) a tolerance ε > 0;
  • výstup: přibližné optimální hodnoty V : S → ℝ a deterministická strategie π : S → A.
  1. Polož V0(s) = 0 pro všechna s ∈ S a k = 0.
  2. Spočítej Vk+1 = BVk, tj. Vk+1(s) = maxa ∑s′ P(s′ | s, a) [R(s, a, s′) + γ Vk(s′)] pro všechna s ∈ S.
  3. Je-li maxs ∈ S |Vk+1(s) − Vk(s)| < ε, pokračuj krokem 4; jinak zvyš k o 1 a vrať se ke kroku 2.
  4. Vrať V = Vk+1 a π(s) ∈ argmaxa ∑s′ P(s′ | s, a) [R(s, a, s′) + γ V(s′)] pro každé s ∈ S.

Pro γ < 1 je B kontrakce v maximové normě: pro všechny U, V : S → ℝ platí maxs |(BU)(s) − (BV)(s)| ≤ γ · maxs |U(s) − V(s)|. Protože BV* = V* (Bellmanova rovnice optimality), plyne odtud maxs |Vk(s) − V*(s)| ≤ γk · maxs |V0(s) − V*(s)|: chyba klesá aspoň jako γk a algoritmus pro každé ε > 0 skončí. Koncové stavy mají podle definice MDP Vk = 0 v každém kole, proto je pseudokód níže vůbec nepřepočítává.

Laicky řečeno

V prvním kole znají hodnotu jen políčka hned vedle cílů. V druhém se informace posune o políčko dál, ve třetím o další. Jako když se zpráva šíří od souseda k sousedovi — po pár kolech ví každé políčko, kam se vyplatí jít.

# hodnotová iterace
V = 0 ve všech stavech
opakuj:
    pro každý nekoncový stav s:
        pro každou akci a:
            Q[a] = ∑ přes s′ ( P(s′ | s, a) · (R(s, a, s′) + γ · V(s′)) )
        V_nové(s) = max(Q)
    změna = max přes s |V_nové(s) − V(s)|
    V = V_nové
dokud změna ≥ 10⁻⁶
π(s) = akce s největším Q[a] (spočteným z konečného V)
Příklad — první tři kola (klouzání 20 %, γ = 0,9)

Sledujeme dvě pole v prostředním řádku: A hned vlevo od velkého cíle +10 a B o pole dál, hned vpravo od malého cíle +1. Nad B je zeď, nad A volno, pod oběma obyčejná podlaha.

kolo kVk(A)nejlepší akce v AVk(B)nejlepší akce v B
18,000→0,800←
28,000→5,832→
39,166→6,343→

Kolo 1 (všude V0 = 0): z A vede krok doprava s pravděpodobností 0,8 do cíle, tedy 0,8 · 10 = 8,000. Z B zatím nic dalekého vidět není, nejlepší je krok doleva k malému cíli: 0,8 · 1 = 0,800.

Kolo 2: z B doprava se dojde do A, které už má hodnotu 8: 0,8 · 0,9 · 8 = 5,76, k tomu 0,1 · 0,9 · 0,8 = 0,072 za uklouznutí nahoru (zeď, zůstane v B s V1 = 0,8) a 0 za uklouznutí dolů — celkem 5,832 (barvy podle Bellmanovy rovnice v předchozím oddílu; nová hodnota Vk+1 má barvu V*). Nejlepší akce v B se překlopila z ← na →: informace o velkém cíli doputovala o pole dál.

maxs |Vk+1(s) − Vk(s)| ≤ γk · maxs |V1(s) − V0(s)|

max |Vk+1 − Vk|
největší změna v kole k + 1 — to, co výpočet sleduje a podle čeho se zastaví; v grafu níže zelená (γ = 0,9) a modrá (γ = 0,99) čára
γk
každé kolo zmenší rozdíl dvou odhadů aspoň γ-krát (kontrakce); po k kolech tedy γk-krát — proto pomalá konvergence pro γ blízko 1
max |V1 − V0|
velikost první změny; s V0 = 0 je to největší očekávaná odměna za jeden krok, u nás nejvýš 10 — odtud čárkovaná mez 10 · γk v grafu
Plyne z kontrakce: |Vk+1 − Vk| = |BVk − BVk−1| ≤ γ |Vk − Vk−1|, kde B je jedno kolo iterace (Bellmanův operátor); a tak dál až k prvnímu kolu. Například pro γ = 0,9 a k = 50 je mez 10 · 0,9⁵⁰ ≈ 0,05.
10-610-410-2100 020406080 iterace k (pořadí) max |V_k+1 − V_k| (odměna, log.)
Hodnotová iterace na kluzké podlaze (p = 0,2): největší změna hodnoty v každé iteraci γ = 0,9 (50 iterací)γ = 0,99 (77 iterací) 10 · γ^k

S γ = 0,9 se hodnoty ustálí (změna pod 10⁻⁶) po 50 iteracích, s γ = 0,99 po 77. Chyba klesá rychleji, než zaručuje mez γk — ta platí vždy, ale u konkrétního světa bývá pesimistická. Čím blíž je γ k jedné, tím dál do budoucnosti se musí informace rozšířit a tím déle výpočet trvá.

5. Co změní diskont, klouzání a cena kroku

Teď to nejzajímavější. Stejný svět, jen jiná nastavení — a optimální strategie vypadá úplně jinak.

→ 5,3 → 5,9 → 6,6 → 7,3 → 8,1 ↓ 9,0 ↑ 4,8 ↑ 5,9 → 9,0 ↓ 10,0 ↓ 5,3 +1 → 9,0 → 10,0 +10 → 5,9 S → 6,6 → 7,3 ↑ 8,1 ↑ 9,0 ↑ 10,0 −10−10−10−10−10−10 podlaha neklouže → 4,3 → 5,0 → 5,7 → 6,5 → 7,5 ↓ 8,4 ↑ 3,8 ↑ 5,0 ↓ 8,5 ↓ 9,6 ↑ 3,3 +1 → 8,2 → 9,5 +10 ↑ 2,9 S ↑ 2,3 → 4,2 ↑ 7,0 ↑ 8,4 ↑ 9,6 −10−10−10−10−10−10 klouzání 20 %
Bez klouzání a s klouzáním (γ = 0,9): hodnoty polí, optimální akce a nejpravděpodobnější cesta

Na pevné podlaze vede nejkratší cesta k velkému cíli těsně podél útesu: 6 kroků a hodnota startu 5,90. Když podlaha klouže, okraj útesu je nebezpečný — každý krok tam znamená šanci 10 % spadnout. Optimální strategie proto obejde zdi horem: 10 kroků místo 6, ale do útesu spadne jen 0,7 % epizod. Kdybychom na kluzké podlaze použili riskantní strategii, spadl by agent v 30 % případů a hodnota startu by klesla na 0,64 místo 2,85.

→ 0,1 → 0,2 ↓ 0,4 → 0,8 ↓ 1,8 ↓ 3,7 ↑ 0,0 ↓ 0,9 ↓ 4,0 ↓ 8,6 ↑ 0,0 +1 → 3,6 → 8,4 +10 ↑ 0,0 S ↑ 0,1 ↑ 0,9 ↑ 1,7 ↑ 3,9 ↑ 8,6 −10−10−10−10−10−10 γ = 0,5, klouzání 20 % → −1,3 → 0,0 → 1,4 → 3,1 → 4,9 ↓ 6,7 ↑ −2,4 ↓ 0,7 ↓ 7,0 ↓ 9,3 ↑ −3,3 +1 → 6,5 → 9,0 +10 → −2,9 S → −0,9 → 1,5 ↑ 4,4 ↑ 6,7 ↑ 9,2 −10−10−10−10−10−10 γ = 0,9, klouzání 20 %, krok −1
Netrpělivý agent a agent, kterého každý krok stojí

S γ = 0,5 je velký cíl tak daleko, že se nevyplatí — +10 za 10 kroků má dnes váhu jen 10 · 0,5¹⁰ ≈ 0,01. Agent jde opatrně horem k malému cíli. Když naopak každý krok stojí −1, vyplatí se riskovat: agent jde k velkému cíli po okraji útesu a v 27 % epizod spadne. Dlouhá bezpečná cesta by ho stála víc, než je průměrná ztráta pádem.

γklouzáníkrokcesta vedeV(start)simulacepádkroků
0,90 %0k +105,905,900,0 %6,0
0,920 %0k +102,852,840,7 %13,1
0,520 %0k +10,010,010,0 %9,5
0,920 %−1k +10−2,86−2,9026,9 %6,0
0,50 %−1k +1−1,25−1,250,0 %3,0

Sloupec „simulace“ je kontrola: průměrný výnos z 10 000 epizod podle nalezené strategie, s náhodným klouzáním. Průměrný výnos se od vypočtené hodnoty startu liší nejvýš o pár setin — Bellmanova rovnice opravdu počítá očekávaný výnos.

Ponaučení pro skutečné aplikace: chování agenta neurčuje jen „co je cílem“, ale i drobnosti jako diskont a cena za krok. Kdo navrhuje odměny, navrhuje chování — i to, které nechtěl.

6. Iterace strategie

Definice — iterace strategie

Iterace strategie (Ronald Howard, 1960) je algoritmus:

  • vstup: MDP (S, A, P, R, γ) s γ ∈ [0, 1) a počáteční deterministická strategie π0 : S → A;
  • výstup: optimální deterministická strategie π a její hodnotová funkce Vπ = V*.
  1. Polož i = 0.
  2. Vyhodnocení: spočítej Vπi : S → ℝ jako (jediné) řešení soustavy |S| lineárních rovnic V(s) = ∑s′ ∈ S P(s′ | s, πi(s)) [R(s, πi(s), s′) + γ V(s′)],   s ∈ S.
  3. Zlepšení: pro každé s ∈ S zvol πi+1(s) ∈ argmaxa ∈ A Qπi(s, a), kde Qπi(s, a) = ∑s′ P(s′ | s, a) [R(s, a, s′) + γ Vπi(s′)]; je-li πi(s) mezi maximy, ponech πi+1(s) = πi(s).
  4. Je-li πi+1 = πi (tj. πi+1(s) = πi(s) pro všechna s ∈ S), zastav a vrať π = πi; jinak zvyš i o 1 a vrať se ke kroku 2.

Že je vrácená strategie optimální a že algoritmus vždy skončí, říká věta o zlepšení strategie níže.

Laicky řečeno

Vezmu nějaký tahák, poctivě spočítám, jak dobře s ním dopadnu z každého políčka, a pak tahák opravím všude, kde by jiný tah vyšel líp. Opakuji. Tahák se zlepšuje každým kolem a po pár kolech se už nezmění.

# iterace strategie
π = „všude nahoru“
opakuj:
    # vyhodnocení: V^π řešením soustavy (u nás opakovaným dosazováním)
    V = 0
    opakuj, dokud se V mění o víc než 10⁻⁹:
        V(s) = ∑ přes s′ ( P(s′ | s, π(s)) · (R + γ · V(s′)) )   pro každé s
    # zlepšení: v každém stavu nejlepší akce podle V^π
    π_nová(s) = argmax přes a  ∑ přes s′ ( P(s′ | s, a) · (R + γ · V(s′)) )
    změněných = počet stavů, kde π_nová(s) ≠ π(s)
    π = π_nová
dokud změněných > 0
Věta — o zlepšení strategie

Nechť (S, A, P, R, γ) je MDP s γ ∈ [0, 1), π : S → A deterministická strategie a π′ : S → A deterministická strategie taková, že π′(s) ∈ argmaxa ∈ A Qπ(s, a) pro všechna s ∈ S. Pak

  1. Vπ′(s) ≥ Vπ(s) pro všechna s ∈ S;
  2. je-li Qπ(s, π(s)) = maxa ∈ A Qπ(s, a) pro všechna s ∈ S (zlepšení nemá co změnit, π′ = π), pak Vπ splňuje Bellmanovu rovnici optimality, Vπ = V* a π je optimální;
  3. jinak existuje s ∈ S s Vπ′(s) > Vπ(s).

Náčrt důkazu. Z volby π′ je Vπ(s) = Qπ(s, π(s)) ≤ Qπ(s, π′(s)) = E[r + γ Vπ(s′)]. Do Vπ(s′) dosadíme tutéž nerovnost, pak znovu… Po rozvinutí zbude očekávaný výnos strategie, která hraje π′ ve všech krocích, tedy Vπ′(s). ∎

Deterministických strategií je konečně mnoho — u nás 4 akce v 19 nekoncových polích, tedy 419 ≈ 2,7 · 1011. Žádná se nemůže opakovat (každé kolo hodnotu zlepší, nebo skončí), takže iterace strategie skončí vždy. Ve skutečnosti stačí kol překvapivě málo: u nás 6.

Na kluzké podlaze s γ = 0,9, se strategií „všude nahoru“ na začátku:

koloV(start) strategiekroků vyhodnocenízměněných akcí
10,03667
20,111377
30,161418
40,491513
52,85421
62,85770

Po 6 kolech je strategie stejná jako z hodnotové iterace. Kol je málo, ale každé obsahuje celé vyhodnocení (u nás desítky až stovky průchodů světem). Který z obou postupů je rychlejší, záleží na úloze; v praxi se kombinují.

7. Když pravidla světa neznáme

Všechno výše předpokládá, že známe P a R — umíme se „podívat do pravidel“. To je plánování (dynamické programování). Ve skutečném posilovaném učení je agent hozen do světa, jehož pravidla nezná: musí zkoušet, sbírat zkušenosti a odhadovat hodnoty z nich. Bellmanova rovnice ale zůstává srdcem téměř všech metod — jen se místo přesného průměru přes P použije vzorek z jednoho skutečného kroku. To je Q-learning, téma dalšího dílu.

Stejný rámec popisuje robota, který se učí chodit, řízení zásob ve skladu, doporučovací systém i jazykový model učený z lidských preferencí v dílu o RLHF — tam je stavem dosavadní text, akcí další token a odměnou hodnocení odpovědi.

8. Shrnutí

  • MDP = stavy, akce, náhodné přechody, odměny a diskont; další stav závisí jen na současném stavu a akci.
  • Hodnota stavu je očekávaný diskontovaný výnos; optimální hodnoty splňují Bellmanovu rovnici.
  • Hodnotová iterace opakuje Bellmanovu rovnici; chyba klesá aspoň jako γk (u nás 50 iterací pro γ = 0,9).
  • Klouzání přesune cestu dál od útesu (pád 0,7 % místo 30 %), malé γ vede k malému blízkému cíli, cena za krok k riskování.
  • Iterace strategie střídá vyhodnocení a zlepšení; u nás 6 kol.
  • Bez znalosti pravidel světa se hodnoty musí učit ze zkušenosti — to je posilované učení.

Chcete si to osahat? Nechte AI agenta naprogramovat tenhle svět s útesem a interaktivně měnit γ, klouzání a cenu kroku — a sledujte, kdy se strategie „překlopí“ z jedné cesty na jinou.

Máte na to jiný názor? Napište na support@coden-app.com.

Agent na vašem počítači, ovládaný z telefonu