Szabó Attila, Cross-entrópia alkalmazása a megerősítéses tanulásban
Szabó Attila, Milyen feladatot old meg? Ritka esetek szimulációja megbízhatóság-vizsgálat telekommunikációs rendszerek teljesítményének vizsgálata Kombinatorikus optimalizálás mire optimalizál? mi köze ennek a tanuláshoz?
Szabó Attila, Ritka esetek szimulációja „...a varázslók kikalkulálták, hogy az egy-a-millióhoz esélyek tízből kilencszer bejönnek.” Terry Pratchett nagy rendszerek esetén adható sztochasztikus modell paraméteres sűrűségfüggvény (valamilyen f(·,v)) ritka eset: P(x) < 0,00001 – ezeknek a valószínűségét becsli a CE ehhez v választásával teremthetők olyan „körülmények”, ahol a ritka esetek valószínűbben következnek be ezzel csökkenthető az elvégzendő trajektóriák száma a sűrűségfüggvények miatt jelenik meg a Kullback-Leibler távolság, más néven cross-entrópia g, h sűrűségfüggvények Kullback-Leibler távolsága:
Szabó Attila, Kombinatorikus optimalizálási probléma Minek a kombinációja? Pl.: utazó ügynök probléma – a városok mely rendezett kombinációja (permutációja) adja legolcsóbb utat? egy stratégia (policy) megadható szabályok kombinációjaként Mire optimalizál? utazó ügynök: utak (gráf éleinek össz-) költségére Pac-Man: elért pontok számára általános esetben valamely feladattól függő értékelő függvényre A kombinatorikus optimalizálást visszavezeti az előző feladtra kitalált algoritmusra („szobatiszta”, diszkrét feladat → sztochasztikus probléma)
Szabó Attila, Milyen körülmények közt jó? „Akinek kalapácsa van, mindent szögnek néz.” szükség van egy megfelelő értékelő függvényre az eltérés az optimumtól jó lehet, de mindig ismerjük az optimumot? értelmezhető egyáltalán optimum? pl.: bridge licit közben átlagosan 6-7 egyszerű jelzésből kell a lehető legjobban meghatározni az 52 kártyalap elhelyezkedését négy játékos, ezen belül két konkuráló csapat esetén rendelkezésünkre áll (megkonstruálható) egy elemi eszköztár, ami kombinálásával értelmezhető stratégiát kapunk pl. adott helyzetben egyértelmű, de legalább eldönthető a következő lépés
Szabó Attila, Egyszerű példa y: n-dimenziós bináris vektor ismeretlen értékekkel a koordináták független, Bernoulli eloszlásúak (P(k=1)=p, P(k=0)=1-p) adott S, ami bármely x-re megadja x és y koordinátánkénti eltérését: adjunk véletlen kereső algoritmust, ami S maximalizálásával visszaadja y-t
Szabó Attila, A módszer a CE egy iteratív algoritmus iterációnként a következőt hajtjuk végre: kísérletezünk valamely véletlenszerű módszer segítségével, és kiértékeljük az eredményeket javítjuk a módszer paramétereit a legsikeresebb kísérletek segítségével, így a következő iterációban „ügyesebben” próbálkozunk
Szabó Attila, Kísérletezés p vektor megadja, hogy a kísérletekben az egyes koordináták mekkora valószínűséggel vesznek fel értékül 1-et kezdetben p=(1/2,...,1/2) elvégzünk N kísérletet és a kapott véletlen vektorokat kiértékeljük: kiválasztjuk a ρ·N db legjobbat (általában 0,02 ≤ ρ ≤ 0,1) ez az „elit halmaz”
Szabó Attila, Javítás A legjobb ρ·N kísérletből koordinátánként tapasztalati átlagot számítunk – legyen ezek vektora z első lehetőség: p’ = z másik lehetőség: p’ = α ·p + (1- α) ·z, 0 ≤α ≤1 Az iteráció terminál, ha az elit halmaz legkisebb elemének értéke nem változik
Szabó Attila, Eredmény az algoritmus bizonyos feltételek mellett 1 valószínűséggel konvergál 10 dimenziós példára a futás eredménye y=(1,1,1,1,1,0,0,0,0,0) esetén: az elit halmaz legkisebb elemének értéke a t. iterációban A p vektor a t. iterációban
Szabó Attila, Matematikai háttér „Ha nem tudod megcsinálni Fortranban, csináld assemblyben. Ha nem tudod megcsinálni assemblyben, nem éri meg foglalkozni vele.” Ed Post: A Valódi Programozó Nehéz... ismerni kellene az eredeti feladatot (ritka esetek szimulációja) a feladat formalizációját (sztochasztikus modell, eloszlások, stb.) a felhasznált módszereket (importance sampling) a mi szemszögünkből nézve általánosítani kell ezektől eltekintve a maximalizálandó függvény meghatározása „csak” némi trükköt igényel
Szabó Attila, Egy kihívás: Pac-Man Jutalom: elfogyasztott pontok......és szörnyek Kombinálandó dolgok akció modul- (ToDot, FromGhost) feltétel (NearestDot<5) párok: „if [feltétel] then do [akció]” sémára Pac-Man feladata: 30, különböző prioritású szabály-hely lehető legjobb feltöltése a rendelkezésre álló, fenti alakú szabályokkal
Szabó Attila, A tanulás Egyrészt tanulja, hogy milyen valószínűséggel töltse fel a rendelkezésre álló helyeket (30 dimenziós vektor) nem feltétlenül van szükség 30 szabályra Másrészt minden helyre tanulja, hogy melyik szabályt érdemes felvennie (30 db K dimenziós vektor, ahol K a választható szabályok száma) ha egy szabály-hely üresen marad, akkor az ottani K dim. vektor elhagyható legfeljebb m+m·K paramétert optimizál előre kódolt szabályok esetén m=30, K=40, iterációnként 300 játékot játszva véletlenszerűen generált szabályok esetén m=90, K=100, iterációnként 1000 játék
Szabó Attila, Az eredmények CE: 300 iterációból 10 stratégia, egyenként 50 játékot játszott fő hátrány: nem sikerül mind a négy szellemet megenni, amikor kékre váltanak ez 4·1600 pont veszteség: ezen felül tökéletesen játszik
Szabó Attila, Felhasznált anyagok: Szita István, Lőrincz András : „Learning to play Pac-Man using low complexity rule-based policies”