Megerősítéses tanulás 8. előadás Szita István, Lőrincz András
Ismétlés: miért jó a függvényapproximátor? ha túl nagy az állapottér nincs időnk minden egyes állapot értékét becsülni csak egy töredékében járunk egyáltalán általánosítani kell kevés mintapontból minden állapotra tudunk valamit mondani kevesebb paramétert kell hangolni hagyományos megoldás: függvényillesztés (approximáció)
Függvényillesztés a lehető legjobban közelítő függvény függvényérték néhány pontban a lehető legjobban közelítő függvény
Függvényillesztés formálisan adatpontok: célértékek: függvénycsalád: cél: találjunk olyan *-t, hogy legyen minden i helyen mi a függvénycsalád, mi ? pl: neuronhálózatok: ha n neuronja van, n2-dimenziós vektor, ami leírja az egyes neuronok közötti kapcsolatok erősségét *: az a súlyvektor, amivel a neuronhálózat a legjobban közelíti az yi-ket. megtalálása: súlyvektort hangolgatjuk (pl. backpropagation). nem megyünk bele részletesen – külön óra témája
Függvényilesztés: lineáris függvényapproximátorok egyszerűbb példa: van egy csomó bázisfüggvényünk: a közelítő függvényt ezek lineáris kombinációjaként szeretném előállítani: ekkor tehát : k-dimenziós vektor, függvénycsalád: a bázisfüggvények lineáris kombinációi mennyire jó a lin. fapp.? attól függ, milyenek a bázisfüggvények
Bázisfüggvények megszabja, milyen módon általánosítunk példák: halmaz karakterisztikus függvénye (pl. körön 1, kívül 0) radiális bázisfv a feladat lényeges jellemzői (pl. sakk: bábuk száma, van-e sakkban a király, üthető-e a királynő/bástya, stb. kulcsszerepe van a feladat megoldhatóságában ezzel mi viszünk be tudást a tanulórendszerbe lineáris bázisfv-knél kellenek még a kettes, hármas, stb kombinációk is
Függvényillesztés még mindig – a módszer minimalizáljuk az eltérést az adatpontok és a becslés között általában négyzetes hiba (könnyű vele számolni) bízunk benne, hogy az adatpontokon kicsi lesz a hiba a többi pontban is kicsi lesz a hiba (jó általánosítás) hogy éppen ezt a hibamrtéket szeretnénk minimalizálni a minimalizálás végrehajtása: gradiensmódszer
Függvényillesztés – a gradiensmódszer J( ) gradiense: a deriváltakból kapott vektor a legmeredekebb növekedés iránya -1-szerese a legmeredekebb csökkenés iránya gradiensmódszer: 0 tetszőleges, pici ismételjük, míg be nem érünk egy lokális minimumba
Függvényillesztés – a gradiensmódszer mennyire változik f, ha -t picit variálom kiszámolása függ a konkrét függvénycsaládtól neuronhálózatok: a backprop algoritmus mondja meg lineáris: triviálisan kapjuk
RL alkalmazás: fix stratégia kiértékelése utána használhatom p: súlyozás – a gyakori állapotok értéke jobban számít úgyis mintavételezni fogunk – gyakori állapotokból többet, úgyhogy ezt könnyebb is mintavételezni m darab minta (pl. m lépésen át követem -t)
fix stratégia kiértékelése online gradiens-számolás: követjük a stratégiát (ettől online) aktuális állapot: st nem szummázunk, csak az aktuális állapotot vesszük figyelembe következő probléma: nem ismerjük V(st)-t mintavételezzük pl. Monte Carloval: V(st) helyett Rt, E(Rt | st) = V(st) Rt-k független véletlen mennyiségek sztochasztikus gradiensbecslés
fix stratégia kiértékelése a sztochasztikus gradiensmódszer konvergál, t ! *, ha V mintavételezettjei függetlenek, torzítatlanok (pl. Rt) st-ket a stratégia alapján választjuk t „szépen” tart 0-hoz kijön a sztochasztikus becslés-tételből
RL+függvényillesztés = sok probléma TD becslés: se nem független, se nem torzítatlan… bizony elképzelhető, hogy nem konvergál ugyanez igaz DP becslésre is: még ha konvergál is: * csak lokális minimum elképzelhető, hogy nagyon rossz közelítése lesz V-nek neuronhálók használata esetén pl. sok a lokális minimum
RL+függvényillesztés = sok probléma nem is biztos, hogy azt minimalizáljuk, amit kellett… döntéskor majd a relatív nagyságok kellenek lehet, hogy a négyzetes hiba pici, de a relatív nagyságok rosszak nem tudunk jobbat… V v
Mit csináljunk a problémákkal? legegyszerűbb: semmit gyakorlatban működik, elmélet meg nem lesz lényegében az összes sikeres RL alkalmazás neuronhlókat használ függvényapproximátorként… megszorítjuk a függvénycsaládot: lineáris fapp-ok bázisfüggvények: tömör jelölés: a gradiens egyszerű: TD becslés:
Lineáris függvényapproximáció lineáris fapp-ra a négyzetes hibafüggvény ( J ) kvadratikus, tehát egyértelmű globális minmuma van megmutatható, hogy a TD módszer is konvergál ha st-ket a stratégiát követve kapom de nem *-hoz! ehelyett valami máshoz: t ! 1 erről csak azt tudjuk, hogy nem túl rossz:
egy ellenpélda ha nem -t követem, még mindig elszállhat TD helyett DP (az egyszerűség kedvéért) minden állapot azonos súllyal szerepel nem szerinti súlyozás 6 állapot, 7 bázisfv (bázisfüggvények: lin. függetlenek)
egy ellenpélda
Optimális stratégia tanulása függvényapproximátorral a problémák csak sokasodnak… a V célfüggvény folyton változik pedig amúgy is csak közelítettük egy ilyen kétszeres közelítést kellene jól eltalálni a fapp-pal… ráadásul nekünk Q(s,a)-t kell közelíteni (hogy tudjunk egyszerűen döntést hozni) S helyett S£A-n illesztünk függvényt probléma: minden lépésben maximális értékű akciót kell keresni a mohó lépésben– ez lépésenként egy maximalizálás probléma: a maximum helye eltolódhat minden a-ra külön fapp – véges sok akcióra ez a legtisztább
Optimális stratégia tanulása TD hiba (Sarsa): TD hiba (Q-learning): paraméter-állítás láttuk, hogy ha nem az aktuális stratégiát követjük, elszállhat a paraméterbecslés a Q-learning nem az aktuális stratégiát használja! (hanem a mohót) van példa, amire elszáll pedig táblázatos tanulásra a Q-learning konvergenciája volt a legegyszerűbb…
Optimális stratégia tanulása fapp-pal – mit tudunk? nemlineáris fapp (pl. neuronháló): divergálhat lineáris fapp + Q-learning: divergálhat lineáris fapp + Sarsa: korlátos marad nem feltétlenül konvergál egy pontba kóvályoghat egy tartományon belül lineáris fapp + „óvatos” RL algoritmus: konvergens csak bonyolult Sarsa/Q-learning + lineáris fapp speciális bázisfüggvényekkel: konvergens a gyakorlat szempontjából mindegy: mindegyik jól használható
Backgammon (vagy Ostábla)