- musí sám najít správné řešení
- téměř vždy triviálně paralelizovatelný
- pochopit a zapamatovat, co dělá správnou odpověď správnou
- úlohy, kdy nevím, co je správné řešení
- musím mít jasně definovaný feedback / funkci odměn
- vše v simulacích, simulace jsou rychlé
- mnohem hůř se dělá reinforcement learning v realitě
- způsob pro vytvoření silné AI
- máme problém, neznáme řešení, ale umíme ohodnotit, zda bylo řešení dosaženo
- agent = neuronovka, funkce na vstupu observation
- $\pi$ = policy
- funkce odměn = $r$
- to co dostane v 1 stavu
- za celou epizodu = return
- Stav = $s_t$
- akce = $a_t$
- epizodické problémy
- dáme do prostředí něco zkusíme
- nemá vliv minulé spuštění v prostředí
- trajektorie = to, co se dělo / “zážitky agenta”
- $p(s_1,a_1, …, s_T, a_T)$
- mohu se ptát, jak jsou jaké trajektorie pravděpodobné
- nutně definovaná agentem a prostředím
- cíl
- maximalizovat průměr returnu (nemusí vždy, prostředí je stochastické)
- $\theta^* = \arg \max_\theta E_{t \sim p_\theta(\tau)}\left[ \sum_t r(s_t, a_t) \right]$
- policy = učit chování agenta (diskrétní akce = ala klasifikátor)
- Q-funkce = ohodnocení akcí
- odhadujeme kvalitu akce
- jaké bude budoucí ohodnocení akcí
- Value function
- jak kvalitní je stav hned
- použít tuto funkci místo ruční heuristiky
- stačí aktuální stav, historie nemá vliv
- piškvorky
- reálný svět není
- potřeba znát prostředí
- nemůže být Markov
- agent má informace o prostředí pouze z pozorování
- Policy gradients = PPO
- Value-based = DQN, atari hry
- Actor-critic =
- pustím agenta do světa - zaznamenává si trajektorie / učí se chování světa
- zlepšení chování (policy)
- spuštění policy
- pokud se učí jen akce, není tak efektivní
- dobré pro simulace, máme hodně dat k posbírání
- on-policy = využijeme jen aktuální zkušenosti, nemůžou použít vzpomínky, pro naučení musí získat nové zkušenosti
- off-policy = používají vzpomínky, pro naučení nemusí získat nové zkušenosti
- hledá ohodnocení akcí - je efektivnější
- hledání pochopení světa - ještě efektivnější
- funkce dává pro daný stav a akci, její kvalitu
- $Q^{\pi}(s,a) = r(s,a) + E_{s’} \left[ \max( Q^\pi(s’, a’)) \right]$ - Belmanova rovnice
- $r(s,a)$ ohodnocení aktuální akce z aktuláního stvau
- $E$ - máme nedeterministické prostředí
- → loss funkce - chceme se, co nejvíc přiblížit tomu nejlepšímu ohodnocení
- loss $L(\theta) = E{\pi_\theta} \left( Q^{\pi_\theta}(s,a) - \left{ r(s,a) + \max( Q^{\pi_\theta}(s’, a’)) \right} \right)^2$
- $E{\pi_\theta}$ - průměr přes chování agenta / trajektorie
- $L(\theta) = \frac{1}{|D|} \sum_{i \in D} \left( Q^{\pi_\theta}(s,a) - \left{ r(s,a) + \max( Q^{\pi_\theta}(s’, a’)) \right} \right)^2$, $D = {(s_i, a_i, s_i’, r_i}$
- má smysl upravovat $Q^{\pi_\theta}(s,a)$
- je dál od cíle, má smysl cíli přiblížit
- má horší odhad než levá strana na to, jak krok ovlivní výsledek
- např. rozjeď autíčko v důlku, odměna pouze za dosažení vlaky
- ať udělá, co udělá odměna je 0
- co se učí je funkce odměn
- “loss function hacking”
- měníme úlohu, může být jiné lokální optimum
- curiosity driven learning
- zkoušíme i akce, které jsem ještě nezkusil
- možná akce, co mi dají větší odměnu, bych mohl dělat častěji (nevím, přesně kolik akcí způsobilo větší odměnu)
- zvyšujeme sílu zvětšení pravděpodobností akcí, podle odměny
- zvyšujeme-li pravděpodobnost nějaké akce → snižují se pravděpodobnosti ostatních akcí
- gradienty jsou hodně zašumělé, učí se dlouho, potřeba hodně batchů
- nebudu váhovat odměny z minulosti, jen v budoucnosti
- není vhodné pro hýbání postaviček
- místo ohodnocovací funkce, použijeme odhad Q-funkce
- učí se, jak policy, tak ohodnocení akcí