Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| statnice:bakalar:b4b36zui [2025/06/03 11:20] – [Problém mnohorukého banditu (Multi-Armed Bandit, MAB)] mistrjirka | statnice:bakalar:b4b36zui [2026/05/29 15:25] (current) – [Policy Improvement] knedl1k | ||
|---|---|---|---|
| Line 351: | Line 351: | ||
| * Příliš silná heuristika (např. $h(n) > h^*(n)$) může zrychlit výpočet, ale ztrácí optimálnost. | * Příliš silná heuristika (např. $h(n) > h^*(n)$) může zrychlit výpočet, ale ztrácí optimálnost. | ||
| - | ====== 4. Algoritmy posilovaného učení | + | ===== 4. Algoritmy posilovaného učení ===== |
| **policy evaluation, policy improvement, | **policy evaluation, policy improvement, | ||
| Line 401: | Line 401: | ||
| $$ | $$ | ||
| - | \pi' | + | \pi' |
| $$ | $$ | ||
| Line 458: | Line 458: | ||
| $$ | $$ | ||
| - | V_{k+1}(s) = \max_a \sum_{s' | + | V_{k+1}(s) = \max_a \sum_{s' |
| $$ | $$ | ||
| Line 464: | Line 464: | ||
| $$ | $$ | ||
| - | \pi^*(s) = \arg\max_a \sum_{s' | + | \pi^*(s) = \arg\max_a \sum_{s' |
| $$ | $$ | ||
| Line 635: | Line 635: | ||
| * Hry s nulovým součtem, kde jsou hodnoty pro oba hráče přesně opačné. | * Hry s nulovým součtem, kde jsou hodnoty pro oba hráče přesně opačné. | ||
| - | ==== Negascout | + | ==== NegaScout |
| Další vylepšení algoritmu Alpha-Beta (resp. Negamax), které využívá předpoklad, | Další vylepšení algoritmu Alpha-Beta (resp. Negamax), které využívá předpoklad, | ||
| Line 840: | Line 840: | ||
| ==== STRIPS ==== | ==== STRIPS ==== | ||
| - | STRIPS (Stanford Research Institute Problem Solver) je formalismus pro reprezentaci plánovacích problémů. Každá akce má: | + | **STRIPS (Stanford Research Institute Problem Solver)** je formalismus pro reprezentaci plánovacích problémů |
| + | |||
| + | === Formální definice === | ||
| + | |||
| + | STRIPS problém je definován čtveřicí **(P, A, I, G)**, kde: | ||
| + | * **P** je množina všech atomických predikátů (např. `At(Robot, Room1)`) – booleovské proměnné | ||
| + | * **A** je množina všech akcí, každá ve tvaru `a = ⟨pre(a), add(a), del(a)⟩`: | ||
| + | * `pre(a)` – předpoklady, | ||
| + | * `add(a)` – predikáty, které po akci začnou platit | ||
| + | * `del(a)` – predikáty, které po akci přestanou platit | ||
| + | * **I** je počáteční stav – množina predikátů platných na začátku | ||
| + | * **G** je cílový stav – množina predikátů, | ||
| + | |||
| + | Každá akce má: | ||
| * **Preconditions**: | * **Preconditions**: | ||
| Line 856: | Line 869: | ||
| </ | </ | ||
| - | Cílem je najít posloupnost akcí, která převede | + | === Cíl plánování === |
| + | |||
| + | Cílem je najít posloupnost akcí `a₁, a₂, ..., aₖ`, která | ||
| + | |||
| + | === Řešení pomocí A* === | ||
| + | |||
| + | STRIPS problémy lze řešit algoritmem **A***, kde: | ||
| + | * **stav** je aktuální množina pravdivých predikátů | ||
| + | * **heuristika** může být například `h(s) = |G \ s|` – počet cílů, které ještě nejsou splněny | ||
| + | |||
| + | === Heuristiky a relaxace === | ||
| + | |||
| + | * **Relaxace problému**: | ||
| + | * Relaxovaná akce: `a⁺ = ⟨pre(a), add(a), ∅⟩` | ||
| + | * **Abstrakce**: | ||
| + | |||
| + | === Plánovací graf (relaxovaný plánovací graf) === | ||
| + | |||
| + | Graf dosažitelnosti: | ||
| + | * Střídají se úrovně predikátů `Pᵢ` a akcí `Aᵢ` | ||
| + | * `Aᵢ = {a ∈ A | pre(a) ⊆ Pᵢ}` | ||
| + | * `Pᵢ₊₁ = Pᵢ ∪ {p ∈ add(a) | a ∈ Aᵢ}` | ||
| + | * Konstrukce končí, pokud `G ⊆ Pᵢ` | ||
| + | |||
| + | Stejný graf se dá použít k výpočtu optimální heuristiky hmax | ||
| + | * Vrchol, který náleží počátečnímu stavu se inicializuje na nulu | ||
| + | * Všechny vrcholy s akcemi jsou pak rovny maximu hodnot z předpokladů dané akce | ||
| + | * Do vrcholů se stavy (propozicemi) se pak zapíše nejlevnější akce, která do daného stavu vedla | ||
| + | |||
| + | {{: | ||
| ===== 7. Neurčitost v AI ===== | ===== 7. Neurčitost v AI ===== | ||
| Line 872: | Line 914: | ||
| $$ | $$ | ||
| - | kde: - $H$ je hypotéza, | + | kde: |
| + | * $H$ – hypotéza, | ||
| + | * $D$ – pozorovaná | ||
| + | * $P(H|D)$ | ||
| + | * $P(D|H)$ | ||
| + | * $P(H)$ | ||
| + | * $P(D)$ | ||
| ==== Maximalizace očekávané utility ==== | ==== Maximalizace očekávané utility ==== | ||
| - | Cílem rozhodování pod neurčitostí je zvolit | + | Racionální agent by měl volit takovou |
| $$ | $$ | ||
| Line 882: | Line 930: | ||
| $$ | $$ | ||
| - | kde: - $a$ je akce, - $s$ je možný stav světa, | + | kde: |
| + | * $a$ – akce, | ||
| + | * $s$ – možný stav světa, | ||
| + | * $P(s|a)$ | ||
| + | * $U(s, | ||
| + | |||
| + | Používá se v rozhodovacích sítích a obecně ve všech situacích, kde je třeba rozhodovat pod neurčitostí. | ||
| ==== Bayesovské sítě ==== | ==== Bayesovské sítě ==== | ||
| - | Bayesovské sítě | + | Bayesovské sítě jsou **orientované acyklické grafy (DAG)**, kde: |
| + | * uzly reprezentují náhodné proměnné, | ||
| + | * hrany vyjadřují | ||
| + | * každá proměnná má tabulku | ||
| - | Sítě umožňují efektivní | + | Bayesovské sítě umožňují efektivní |
| + | |||
| + | **Celková distribuční pravděpodobnost** v síti se rozpadá podle struktury grafu: | ||
| + | |||
| + | $$ | ||
| + | P(X_1, ..., X_n) = \prod_{i=1}^{n} P(X_i \mid \text{rodiče}(X_i)) | ||
| + | $$ | ||
| === Příklad Bayesovské sítě === | === Příklad Bayesovské sítě === | ||
| Line 908: | Line 971: | ||
| \end{document} | \end{document} | ||
| </ | </ | ||
| + | |||
| Tato Bayesovská síť ilustruje následující závislosti mezi náhodnými proměnnými: | Tato Bayesovská síť ilustruje následující závislosti mezi náhodnými proměnnými: | ||
| Line 947: | Line 1011: | ||
| $$ | $$ | ||
| - | Použití: | + | **Použití:** |
| - | + | * detekce spamu, | |
| + | * analýza sentimentu, | ||
| + | * lékařská | ||
| ==== Skrytý Markovův model (Hidden Markov Model, HMM) ==== | ==== Skrytý Markovův model (Hidden Markov Model, HMM) ==== | ||
| Line 966: | Line 1031: | ||
| $$ | $$ | ||
| - | Použití: - rozpoznávání řeči, - analýza časových řad, - strojový překlad, - sledování objektů. | + | **Algoritmy:** |
| + | * **Forward-backward** – výpočet marginálních pravděpodobností, | ||
| + | * **Viterbi** – nalezení nejpravděpodobnější sekvence skrytých stavů, | ||
| + | * **Baum-Welch** – EM algoritmus pro trénink HMM. | ||
| - | Hlavní algoritmy: - **Forward-backward** (výpočet pravděpodobností), - **Viterbiho algoritmus** (nejpravděpodobnější posloupnost), - **Baum-Welch** (EM algoritmus pro trénink). | + | **Použití:** |
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| ===== 8. Řešení POMDP ===== | ===== 8. Řešení POMDP ===== | ||
| Line 974: | Line 1046: | ||
| **PBVI, HSVI** | **PBVI, HSVI** | ||
| - | Řešení | + | ==== Řešení POMDP ==== |
| - | POMDP je formálně definován jako sedmice | + | **Řešení částečně pozorovatelných Markovových rozhodovacích procesů (POMDP)** spočívá v nalezení optimální politiky na základě neúplné informace o stavu systému. V POMDP není stav přímo pozorovatelný – rozhodování se děje na základě tzv. **belief state** – pravděpodobnostního rozdělení přes možné stavy. |
| + | |||
| + | === Formální definice === | ||
| + | |||
| + | POMDP je definován jako sedmice | ||
| + | * **S** – množina stavů | ||
| + | * **A** – množina akcí | ||
| + | * **T(s' | ||
| + | * **R(s,a)** – odměnová funkce | ||
| + | * **Ω** – množina pozorování | ||
| + | * **O(o|s', | ||
| + | * **γ** – diskontní faktor | ||
| + | |||
| + | Hodnotová funkce je definovaná nad belief space a je konvexní. Přesné řešení je výpočetně náročné, proto používáme aproximační algoritmy. | ||
| + | |||
| + | Řešení problémů částečně pozorovatelných Markovových rozhodovacích procesů (POMDP) spočívá v nalezení optimální politiky, která maximalizuje očekávaný výnos na základě neúplné informace o stavu systému. V POMDP je totiž skutečný stav systému skrytý (latentní) a rozhodnutí je činěno na základě tzv. věrohodnostního rozdělení (belief state) – pravděpodobnostního rozdělení přes možné stavy daného systému. | ||
| Hodnotová funkce pro POMDP je definována nad věrohodnostními stavy a je konvexní. Přesné řešení POMDP je výpočetně neproveditelné pro větší problémy, proto se používají aproximační metody. Mezi ně patří: | Hodnotová funkce pro POMDP je definována nad věrohodnostními stavy a je konvexní. Přesné řešení POMDP je výpočetně neproveditelné pro větší problémy, proto se používají aproximační metody. Mezi ně patří: | ||
| Line 982: | Line 1069: | ||
| ==== Point-Based Value Iteration (PBVI) ==== | ==== Point-Based Value Iteration (PBVI) ==== | ||
| - | PBVI aproximuje hodnotovou funkci | + | PBVI aproximuje hodnotovou funkci |
| - | Algoritmus PBVI: 1. Inicializuj hodnotovou funkci | + | 1. Inicializace hodnotové funkce |
| + | 2. Iterace pro každý $b \in B$: | ||
| + | $$ | ||
| + | V_{i+1}(b) = \max_{a \in A} \left[ R(b, a) + \gamma \sum_{o \in Ω} P(o|b, | ||
| + | $$ | ||
| + | |||
| + | * $b_{a,o}$ je nová víra (belief) | ||
| + | * Hodnotová funkce se reprezentuje pomocí **α-vektorů**, | ||
| Tímto způsobem PBVI konstruuje aproximaci optimality pomocí hodnotové funkce složené z tzv. $\alpha$-vektorů. | Tímto způsobem PBVI konstruuje aproximaci optimality pomocí hodnotové funkce složené z tzv. $\alpha$-vektorů. | ||
| + | |||
| + | PBVI výrazně zjednodušuje výpočet tím, že nepočítá hodnotu v celém belief prostoru. | ||
| ==== Heuristic Search Value Iteration (HSVI) ==== | ==== Heuristic Search Value Iteration (HSVI) ==== | ||
| - | HSVI je vylepšením PBVI, které využívá | + | HSVI kombinuje |
| + | |||
| + | 1. **Inicializace: | ||
| + | * Dolní mez $V^-$: jednoduché politiky (např. fixní akce) | ||
| + | * Horní mez $V^+$: řešení odpovídající plně pozorovatelnému MDP | ||
| + | |||
| + | 2. **Heuristické prohledávání: | ||
| + | * Vybíráme beliefy, kde je největší rozdíl mezi $V^+$ a $V^-$ | ||
| + | * Průchod stromem víry (belief tree) řízený rozdílem mezi odhady | ||
| + | |||
| + | 3. **Update: | ||
| + | * Dolní mez – přidání nových α-vektorů | ||
| + | * Horní mez – konvexní obálka a přepočet odhadu | ||
| Algoritmus HSVI: 1. Udržuje dolní odhad $V^-$ a horní odhad $V^+$ hodnotové funkce. 2. Používá hloubkové prohledávání stromu víry řízené heuristikou k výběru větví, kde je největší rozdíl mezi $V^+$ a $V^-$. 3. Provádí zálohování hodnot a zpřesňuje odhady na cestě k listům stromu. | Algoritmus HSVI: 1. Udržuje dolní odhad $V^-$ a horní odhad $V^+$ hodnotové funkce. 2. Používá hloubkové prohledávání stromu víry řízené heuristikou k výběru větví, kde je největší rozdíl mezi $V^+$ a $V^-$. 3. Provádí zálohování hodnot a zpřesňuje odhady na cestě k listům stromu. | ||
| + | |||
| + | HSVI garantuje ε-optimalitu: | ||
| + | |||
| + | HSVI zachovává horní a dolní meze hodnotové funkce a iterativně je zpřesňuje pouze v místech, která ovlivňují politiku. | ||
| HSVI kombinuje výpočetní efektivitu s garancemi na kvalitu aproximace: algoritmus konverguje k ε-optimální politice, pokud se rozdíl mezi horním a dolním odhadem zmenší pod ε. | HSVI kombinuje výpočetní efektivitu s garancemi na kvalitu aproximace: algoritmus konverguje k ε-optimální politice, pokud se rozdíl mezi horním a dolním odhadem zmenší pod ε. | ||