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 [2025/06/03 12:40] (current) – zapleka3 | ||
---|---|---|---|
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 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 ε. |