Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
Matej Mlakar
SAMOOJAČITVENO UČENJE
Diplomsko delo
Maribor, junij 2012
Diplomsko delo univerzitetnega študijskega programa
SAMOOJAČITVENO UČENJE
Diplomsko delo
Študent: Matej Mlakar
Študijski program: Univerzitetni, Računalništvo in informacijske tehnologije
Mentor(ica): izr. prof. dr. Strnad Damjan
Somentor(ica): red. prof. dr. Guid Nikola
i
ii
ZAHVALA
Zahvaljujem se mentorju, izr. prof. dr. Damjanu
Strnadu, za pomoč in vodenje pri opravljanju
diplomskega dela. Prav tako se zahvaljujem
somentorju, red. prof. dr. Nikoli Guidu.
Posebna zahvala velja staršem, ki so mi omogočili
študij.
iii
SAMOOJAČITVENO UČENJE
Ključne besede: strojno učenje, nenadzorovano učenje, mreţno okolje lovec-plen
UDK: 004.89:004.4(043.2)
Povzetek: V diplomskem delu predstavljamo samoojačitveno učenje, ki je področje
strojnega učenja in se ukvarja z vprašanjem, kako naj agent deluje v okolju, da doseže
čim večjo nagrado. V nalogi opravimo splošen pregled te teme, nato podrobneje opišemo
nekaj pomembnejših metod, eno izmed njih pa implementiramo v mrežnem okolju lovec-
plen. Na koncu predstavimo še naš program ter analiziramo dobljene rezultate.
iv
REINFORCEMENT LEARNING
Keywords: machine learning, unsupervised learning, predator-prey grid world
UDK: 004.89:004.4(043.2)
Abstract: In this diploma work we present reinforcement learning, which is an area of
machine learning that studies the question of how an agent ought to act in an environment
to achieve maximum reward. In this work we take a general look at the topic, then
describe a few of the more important methods in detail and implement one of them in the
predator-prey grid world domain. In the end, we present our program and analyze its
results.
v
KAZALO
1 UVOD ........................................................................................................................ 1
2 SAMOOJAČITVENO UČENJE ................................................................................. 2
3 METODE MONTE CARLO ........................................................................................ 7
4 METODE ČASOVNE RAZLIKE ................................................................................ 8
4.1 Sarsa.................................................................................................................. 8
4.2 Q-učenje ............................................................................................................ 9
5 APLIKACIJA LOVEC-PLEN ....................................................................................10
5.1 Opis ..................................................................................................................10
5.2 Algoritem učenja..............................................................................................11
5.3 Rezultati ...........................................................................................................15
6 SKLEP .....................................................................................................................21
vi
KAZALO SLIK
Slika 2.1: Diagram interakcije agenta in okolja .................................................................. 2
Slika 2.2: Začetno stanje igre backgammon s prikazano smerjo igre. ............................... 5
Slika 5.1: Delna predstavitev okolja. ................................................................................11
Slika 5.2: Psevdokod Q-učenja ........................................................................................11
Slika 5.3: Premik plena na polje cilj ..................................................................................12
Slika 5.4: Mreţno okolje A. ..............................................................................................13
Slika 5.5: Mreţno okolje B. ..............................................................................................13
Slika 5.6: Mreţno okolje C. ..............................................................................................14
Slika 5.7: Okno naše aplikacije. .......................................................................................14
Slika 5.8: Rezultati učenja plena proti naključnemu premikanju lovcev. ...........................16
Slika 5.9: Rezultati ob učenju tako plena kot lovcev. ........................................................17
Slika 5.10: Rezultati učenja lovcev proti naključnemu premikanju plena. .........................18
Slika 5.11: Lovci so zaprli vse poti do cilja. ......................................................................19
Slika 5.12: Lovec se je premaknil tako, kot si je ţelel plen. ..............................................19
Slika 5.13: Plen se premakne na mesto lovca. .................................................................20
Slika 5.14: Plen ima neovirano pot do cilja. ......................................................................20
Samoojačitveno učenje
1
1 UVOD
Ideja poskusov in učenja na napakah je ena prvih, na katero pomislimo ob temi učenja.
Ko smo se kot majhni otroci učili hoditi, smo dobivali informacije iz okolja – če smo padli,
smo naredili napako, in tako počasi ugotovili, kako drţati ravnoteţje. Dojenčki hitro
ugotovijo, da jok prinese pozornost staršev. Tudi kasneje v ţivljenju se učimo s pomočjo
interakcije z okoljem. Ko se učimo voziti ali pa med pogovorom, vidimo odziv okolja na
naše akcije in poskušamo vplivati na rezultate s spremembo obnašanja. Tako učenje
prevladuje v vsem ţivljenju. Ob napakah iz okolja prejmemo negativen signal - kazen, v
nasprotnem primeru pa smo nagrajeni. Le redko pa nam kdo pove, kaj natančno naj
naredimo.
Verjetno ni presenetljivo, da so na področju strojnega učenja relativno zgodaj uporabili
ideje iz učenja ţivali in iz psihologije. Te ideje so skupaj z idejami s področja dinamičnega
programiranja pripeljale do tega, kar danes imenujemo samoojačitveno učenje [1]. To je
metodologija, ki jo lahko uporabimo, ko ţelimo sprotno učenje, še posebej v okoljih, za
katera nimamo dobrih modelov.
V tem diplomskem delu bomo predstavili nekaj metod samoojačitvenega učenja ter
implementacijo ene izmed metod. V naslednjem poglavju bomo podrobneje predstavili
samoojačitveno učenje. V tretjem poglavju bomo spoznali metode Monte Carlo, v četrtem
pa metode časovne razlike. Nato bomo opisali aplikacijo samoojačitvenega učenja v
mreţnem okolju z lovcem in plenom in prikazali rezultate implementiranega algoritma. V
zadnjem poglavju bomo podali sklep.
Samoojačitveno učenje
2
2 SAMOOJAČITVENO UČENJE
Naloga samoojačitvenega učenja (reinforcement learning) je ugotoviti, kaj mora agent
narediti v določeni situaciji, da bo nagrada za opravljeno akcijo čim večja. Agentu ne
povemo neposredno, kaj naj naredi, kot je to pri večini oblik strojnega učenja. Sam mora
izbrati najboljšo akcijo, ki jo mora odkriti s poizkušanjem. Zato je tako učenje
nenadzorovano, saj se agent ne uči iz vnaprej pripravljenih primerov, pač pa vso znanje
pridobi preko interakcije z okoljem. Posledično lahko tako učenje odkrije obnašanje
agenta, ki za določeno okolje ni bilo predvideno, a je boljše kot uveljavljeno obnašanje.
Prav tako je laţje določiti nagrajevanje ob dobrem rezultatu ter kaznovanje ob slabem, kot
pa določiti optimalno ravnanje agenta v vseh situacijah za neko okolje [1].
Začetki samoojačitvenega učenja so nastali po idejah psihologije učenja ţivali,
konkretneje z metodo poskusov in napak. Ločeno pa se je samoojačitveno učenje
razvijalo iz dinamičnega programiranja, ki ga je uvedel Richard Bellman [2]. V
osemdesetih letih prejšnjega stoletja sta se ti ločeni veji zdruţili.
Diagram na sliki 2.1 prikazuje splošen potek samoojačitvenega učenja. Agent v vsakem
časovnem koraku t dobi predstavitev stanja okolja st. Na osnovi tega signala izbere akcijo
at. V naslednjem koraku agent dobi nagrado rt in se znajde v novem stanju st+1.
Slika 2.1: Diagram interakcije agenta in okolja
Nagrada je vrednost, ki jo okolje dodeli agentu v vsakem koraku učenja. Odvisna je od
novega stanja, na katerega je deloma vplival agent s svojo akcijo.
Samoojačitveno učenje
3
Ob agentu ter okolju so glavni elementi samoojačitvenega učenja:
pravilnik (policy),
funkcija nagrade,
funkcija vrednosti in
opcijsko model okolja.
Pravilnik določa obnašanje agenta v določenem trenutku. Označimo ga s π(s) in agentu
pove, katero akcijo naj izvede v stanju s.
Funkcija nagrade opredeljuje cilj problema. Vsako stanje okolja oziroma par stanje-akcija
preslika v številsko vrednost (nagrado), ki določa zaţeljenost stanja. Funkcija nagrade
torej definira dobre ter slabe dogodke za agenta.
Funkcija vrednosti, ki jo v odvisnosti od izbrane metode učenja označujemo z V(s) ali
Q(s,a), za razliko od funkcije nagrade določa, kaj je dobro na dolgi rok. Vrednost Q(s,a): S
× A → je na primer skupna nagrada, ki jo agent lahko pričakuje v prihodnosti, če v
stanju s izbere akcijo a [3]. Preprostejša oblika funkcije vrednosti V(s): S → samo
ocenjuje vrednost nekega stanja in se ne ukvarja z vrednostmi akcij v stanjih. S je
mnoţica stanj, A pa mnoţica akcij.
V najpreprostejšem primeru je funkcija vrednosti predstavljena s tabelo, v kateri vsakemu
stanju ustreza naučena ocena vrednosti stanja. Veliko okolij pa ima preveliko število stanj,
da bi lahko uporabili tabelo, saj bi s tem bilo učenje izjemno počasno. Zato je potrebna
posplošitev preslikave iz strnjenega opisa stanja v njegovo vrednost. To lahko doseţemo
z nevronskimi mreţami, odločitvenimi drevesi ali linearno aproksimacijo [3].
Naloga agenta je pridobiti največjo moţno skupno nagrado, kar pomeni, da mora izbirati
akcije, ki imajo najvišjo vrednost. Na ţalost je določitev teh vrednosti veliko teţja kot
določitev nagrad, ki so največkrat takoj razvidne iz okolja. Vrednosti morajo zato biti
določene s prilagajanjem kot posledica opazovanj, ki jih agent opravi skozi ţivljenje.
Preprost primer izračuna skupne nagrade od trenutka t naprej je v enačbi (2.1).
(2.1)
Tu je:
t – trenuten časovni korak,
T – zadnji korak,
Rt – skupna nagrada.
Samoojačitveno učenje
4
Enačba (2.1) je primerna le za naloge, ki imajo konec. V nasprotnem primeru moramo
uvesti faktor zmanjševanja vrednosti γ, kot je to prikazano v enačbi (2.2).
∑ (2.2)
Vrednost γ definira pomembnost prihodnjih nagrad. Vrednost 0 povzroči, da agent vzame
v poštev le takojšnje nagrade, ko se faktor pribliţuje 1, pa se trudi za visoko nagrado na
dolgi rok.
Eden izmed problemov, ki se pojavijo pri samoojačitvenem učenju, je kompromis med
raziskovanjem (exploration), tj. preizkušanjem novih akcij v istih stanjih, ter izkoriščanjem
(exploitation) obstoječega znanja, tj. izvajanjem znanih dobrih akcij v istih stanjih [1, 4]. Da
lahko agent dobi čim višjo nagrado, mora izbirati akcije, ki so se v preteklosti izkazale kot
dobre. Te akcije pa mora odkriti s preizkušanjem novih. Agent mora preizkusiti veliko akcij
in vedno pogosteje izbirati tiste, ki dajo najboljše rezultate. Dve najbolj znani metodi izbire
akcije sta poţrešna izbira akcije s parametrom ε, ki večinoma izbira najboljšo, z
verjetnostjo ε pa naključno akcijo, in metoda softmax, ki akcijam priredi verjetnost izbire
sorazmerno njihovi vrednosti v trenutnem stanju.
Stanje okolja so vse informacije, ki so dosegljive agentu. Kako je signal stanja sestavljen,
je odvisno od problema, ki ga rešujemo. Prav gotovo je del signala trenutno zaznavanje
okolja, lahko pa je veliko več. Pogosto so izrednega pomena tudi prejšnja stanja, kar
pomeni, da mora nov signal vsebovati tudi pretekla stanja. Seveda pa ima agent redko
dostop do vseh podatkov. Pri igri pokra ne more vedeti, kakšne karte imajo nasprotniki,
čeprav bi mu tak podatek izjemno poenostavil delovanje. Ţelimo torej, da stanje vsebuje
strnjene pretekle dogodke, a obdrţi vse potrebne podatke.
V splošnem okolju, kjer je stanje v času t+1 odvisno od vseh prejšnjih stanj in akcij, lahko
njegovo dinamiko definiramo le s popolno verjetnostno porazdelitvijo, ki je predstavljena z
enačbo (2.3).
* | + (2.3)
Samoojačitveno učenje
5
Kadar je stanje okolja v času t+1 odvisno le od stanja in akcije v času t, rečemo, da ima
stanje markovsko lastnost [1]. V tem primeru lahko dinamiko okolja definiramo z enačbo
(2.4).
* | + (2.4)
Primer okolja z markovskimi stanji je šah. Trenutna razporeditev vseh figur na deski
povzame vse pomembno o vseh preteklih pozicijah. Večina informacij o zaporedju potez
je izgubljenih, vendar je ohranjeno vse, kar je vaţno za prihodnost igre. Nalogo
samoojačitvenega učenja, ki ima stanja z markovsko lastnostjo, imenujemo markovski
odločitveni proces (Markov decision process – MDP).
Ena izmed najzanimivejših aplikacij samoojačitvenega učenja je program Geralda
Tesaura za igranje igre backgammon. Tesaurov program TD-Gammon ni potreboval
veliko znanja o igri, a se je naučil igrati blizu nivoja največjih velemojstrov. Algoritem je bil
preprosta zdruţitev metode časovne razlike ter aproksimacije z večplastno nevronsko
mreţo [5].
Backgammon je igra na igralni deski za dve osebi, ki se igra po vsem svetu. Pogosti so
razni turnirji in redne tekme svetovnega prvenstva. Po vsej verjetnosti obstaja več
profesionalnih igralcev backgammona kot šaha. Igra se igra s petnajstimi belimi in
petnajstimi črnimi figurami na deski s 24 konicami. Premikanje figur se odloči z metom
dveh igralnih kock. Cilj igre je čimprej spraviti vseh petnajst figur z igralne površine. Bele
figure se premikajo v nasprotni smeri urinega kazalca, črne pa obratno, kot prikazuje slika
2.2 [6].
Slika 2.2: Začetno stanje igre backgammon s prikazano smerjo igre.
Samoojačitveno učenje
6
Hitro postane jasno, da je število moţnosti v igri ogromno. Za povprečen met kock obstaja
morda 20 različnih načinov igranja, za predvidevanje nasprotnikovega odziva pa je
potrebno predvideti tudi met dveh kock. Vse to naredi igro backgammon neprimerno za
metode, ki so se dobro izkazale pri šahu. Metode samoojačitvenega učenja so primerne,
ker imamo vedno popolno predstavitev stanja, nagrade pa sledijo preprosto iz zmage
oziroma poraza.
Tesauro je prvo verzijo svojega programa učil z igranjem proti sebi. Za izbiro poteze je
TD-Gammon preveril vse moţne poteze in stanja, ki bi sledila potezi, ovrednotil z
nevronsko mreţo. Nato je izbral potezo z najvišjo ocenjeno vrednostjo. Po pribliţno
300000 takih igrah je program igral na nivoju najboljših takratnih računalniških programov
za igranje igre backgammon, ki so uporabljali ogromne baze podatkov o igri. Naslednja
verzija programa je bila razširjena z znanjem o igri, kar ga je še izboljšalo. TD-Gammon
3.0 je na nivoju najboljših človeških igralcev. Zanimivo je, da se je program naučil igrati
določene poteze drugače, kot je bil standard med najboljšimi igralci. Po podrobni analizi
teh potez velemojstri zdaj igrajo te poteze, kot jih je program [5].
Samoojačitveno učenje
7
3 METODE MONTE CARLO
Metode Monte Carlo so oblika samoojačitvenega učenja, ki temelji na povprečenju
rezultatov. Te metode so namenjene epizodičnim nalogam. To pomeni, da so pretekle
izkušnje razdeljene na epizode, ki imajo končna stanja ne glede na izbrane akcije agenta.
Ocene vrednosti in pravilnik se posodobijo šele po koncu epizode.
Izraz Monte Carlo se pogosto uporablja pri metodah, katerih delovanje temelji na naključni
izbiri akcij. Pri samoojačitvenem učenju je uporabljen izrecno za metode, ki temeljijo na
povprečenju [1].
Naj Q(s,a) označuje vrednost izvajanja akcije a v stanju s. Posodobitev vrednosti vsakega
para stanje-akcija, ki je bil obiskan v epizodi, se izračuna po enačbi (3.1).
( ) ( ) ( ( )) (3.1)
Tu je:
– skupna nagrada od časa t do konca epizode,
α – hitrost učenja,
t – čas, ko je določen par stanje-akcija bil prvič obiskan.
Hitrost učenja α določa, v kolikšni meri bodo nove vrednosti posodobile prejšnje. Faktor 0
pomeni, da se agent sploh ne uči, s faktorjem 1 pa agent upošteva le najnovejše
rezultate. Metode Monte Carlo za določitev α pogosto uporabljajo enačbo (3.2), kjer je
N(s,a) število dosedanjih izvedb akcije a v stanju s. V tem primeru vsebuje funkcija
vrednosti prava povprečja vseh preteklih rezultatov.
( ) (3.2)
Zmanjševanje hitrosti učenja v splošnem pomaga konvergenci k optimalnemu pravilniku.
Metode Monte Carlo pa delujejo tudi s konstantnim parametrom α.
Samoojačitveno učenje
8
4 METODE ČASOVNE RAZLIKE
Učenje s časovno razliko (temporal difference learning) je zdruţitev metod Monte Carlo
ter dinamičnega programiranja [1]. Kot metode Monte Carlo se tudi metode časovne
razlike učijo neposredno iz izkušenj brez modela okolja. Podobno kot pri dinamičnem
programiranju pa metode časovne razlike sproti posodabljajo ocene po vsaki izvedeni
akciji in ne čakajo na konec epizode. Posledično so te metode primerne tudi za
neepizodične, t.j. neprekinjene naloge.
Večino metod učenja s časovno razliko je mogoče dopolniti z uporabo sledov
upravičenosti (eligibility traces) [1, 3]. Gre za mehanizem, ki omogoča dodeljevanje dela
nagrade tudi predhodnim stanjem, ki so agenta pripeljala do trenutnega stanja.
Posledično je učenje hitrejše, saj se z vsakim korakom posodobijo mnoge vrednosti. Take
metode uporabljajo dodaten parameter λ, ki določa, kolikšen deleţ nagrade dobijo
pretekla stanja. Manjša vrednost pomeni manjšo nagrado, z vrednostjo 0 pa dobimo
enako delovanje kot z metodami časovne razlike brez sledov upravičenosti. Pri λ=1 je
posodabljanje vrednosti enako kot pri metodah Monte Carlo. To lahko vidimo v enačbi
(4.1), ki prikazuje eno izmed moţnosti za sledenje upravičenosti stanj. V vsakem koraku
je potrebno posodobiti vse pare stanje-akcija.
( ) { ( )
( ) (4.1)
Tukaj je et(s,a) sled upravičenosti akcije a v stanju s.
4.1 Sarsa
Sarsa je ena izmed metod učenja s časovno razliko, ki se uči po pravilniku (on-policy).
Ime izhaja iz funkcije posodobitve, ki je prikazana v enačbi (4.2), saj so posamezne črke
uporabljene v enačbi s, a, r, s' ter a'. Tu s in a predstavljata začetno stanje ter akcijo, r je
nagrada, ki je posledica akcije, s' ter a' pa sta novo stanje in izbrana akcija v tem novem
stanju.
( ) ( ) ( ( ) ( )) (4.2)
Samoojačitveno učenje
9
Sarsa se uči po pravilniku, kar pomeni, da za posodabljanje pravilnika uporabi izvedeno
akcijo, tudi če je to naključna akcija, ki je posledica raziskovanja. V naučenih vrednostih je
tako odraţeno tudi tveganje raziskovanja.
Z uporabo sledov upravičenosti se enačba (4.2) spremeni v enačbo (4.3). Razlika je še v
tem, da je potrebno v vsakem času t posodobiti vrednost vseh parov stanje-akcija. To
metodo imenujemo Sarsa(λ).
( ) ( ) ( ) (4.3)
Pri tem je definiran v enačbi (4.4).
( ) ( ) (4.4)
4.2 Q-učenje
Q-učenje (Q-learning) je podobno metodi Sarsa. Razlika je v tem, da namesto vrednosti
naslednje izbrane akcije uporabi vrednost najboljše moţne akcije v novem stanju. Ta je
največkrat enaka kot dejanska izvedena akcija, občasno pa je to naključna akcija, ki
omogoča raziskovanje agenta. Iz tega razloga je Q-učenje primer učenja mimo pravilnika
(off-policy). Natančna funkcija posodobitve je zapisana v enačbi (4.5).
( ) ( ) ( ( ) ( )) (4.5)
Z uporabo najboljše moţne akcije se Q-učenje pribliţuje optimalnemu pravilniku ne glede
na dejansko izbrane akcije. Pravilnik, ki se ga Q-učenje nauči, je tako načeloma boljši od
pravilnika Sarse.
V primeru uporabe sledov upravičenosti je funkcija posodobitve enaka kot v enačbi (4.3),
le da se izračuna po enačbi (4.6).
( ) ( ) (4.6)
Da je učenje še vedno mimo pravilnika, je potrebno vse sledove upravičenosti nastaviti na
0, ko je izvedena naključna akcija, ki ni najboljša. Ta metoda je znana kot Watkinsov Q(λ).
Samoojačitveno učenje
10
5 APLIKACIJA LOVEC-PLEN
5.1 Opis
Mreţno okolje lovec-plen sestoji iz ovir, začetne točke in izhoda. V tem okolju se nahajajo
plen in lovci. Naloga plena je čim hitreje doseči izhod in pobegniti lovcem. Naloga slednjih
pa je, da ulovijo plen, preden ta uide. Točka izhoda je dosegljiva le plenu. Dva lovca sta
lahko v nekem trenutku na isti lokaciji. Lovec ulovi plen, ko sta oba v isti celici mreţe.
Akcije, ki jih agent lahko izvede, so premik gor, dol, desno ali levo. Vsi agenti se premikajo
istočasno. Ko vsi opravijo svojo akcijo, se preveri ali je plen dosegel izhod ali če je bil
ulovljen. To dovoljuje tvegane poteze plena. Če sta plen in lovec v sosednjih celicah,
lahko zamenjata poziciji, v kolikor se oba premakneta v smer nasprotnika, plen pa v tem
primeru ni ulovljen. Agentom ni dovoljeno ostati na istem mestu, vedno morajo izvesti
akcijo. Če pa se agent poskusi premakniti v steno, ostane na istem mestu, kjer je bil.
Nagrade v tem okolju so sledeče: +1 plenu, če doseţe izhod, -1, če je ulovljen, +1 vsem
lovcem, če eden izmed njih ulovi plen, in -1 vsem lovcem, če plen pobegne iz okolja. V
vseh drugih primerih je nagrada 0.
Naivna predstavitev stanj, torej koordinati x in y vsakega agenta, ni primerna, saj ţe pri
relativno majhnih mreţah obstaja preveliko število stanj, kar izjemno upočasni učenje [3].
Razen s posplošitvijo stanj, ki smo jo ţe omenili v drugem poglavju, lahko ta problem
rešimo tudi z delno predstavitvijo stanj [4], pri kateri vsak agent zaznava samo to, kar se
nahaja v oddaljenosti dveh celic v vseh smereh. Taki predstavitvi rečemo delno viden
markovski odločitveni proces (partially observable MDP – POMDP). To rešitev smo tudi
uporabili v praktičnem delu te diplomske naloge. Slika 5.1 prikazuje primer stanja v enem
izmed testiranih svetov. Plen je predstavljen z zeleno črko P, lovci z rdečimi L, izhod iz
labirinta, oziroma cilj plena, pa je modra črka C. Sive celice so stene. Zelen kvadrat je
zaznavno območje plena. O vsem, kar je izven tega območja, plen nima nikakršne
informacije.
Samoojačitveno učenje
11
Slika 5.1: Delna predstavitev okolja.
Vredno je omeniti, da taka predstavitev ni popolnoma markovska [3], saj se lahko več
lovcev nahaja v isti celici. Če si dva lovca delita celico, ju plen zazna kot enega. V takem
primeru ni mogoče vedeti, katera celica z zaznanimi lovci vsebuje dva. Za kaj takega bi
morali poznati prejšnja stanja. Kljub temu pa ima to na učenje plena zanemarljiv vpliv.
5.2 Algoritem učenja
V tej diplomski nalogi smo implementirali Q-učenje s tabelarično funkcijo vrednosti.
Psevdokod algoritma je na sliki 5.2.
Slika 5.2: Psevdokod Q-učenja
Samoojačitveno učenje
12
Za izbiro akcije smo uporabili metodo poţrešne izbire akcije z verjetnostjo ε=0.1 izbire
naključne akcije. Hitrost učenja α je bila 0.01, faktor zmanjševanja vrednosti γ pa 0.9.
Na zgledu si poglejmo delovanje algoritma. Slika 5.3 prikazuje zadnji korak epizode, kjer
je plenu uspelo pobegniti iz okolja. V stanju, ki je prikazano na sliki 5.3(a), je plen izbral
najboljše ocenjeno akcijo (premik navzgor), kar ga privede do stanja na sliki 5.3(b). Do
tega trenutka je bila vrednost te akcije 0.3. V novem stanju je plen na cilju, kar pomeni, da
se mu dodeli nagrada v vrednosti 1. Nova vrednost para stanje-akcija je izračunana v
enačbi (5.1). Zaradi dobrega rezultata se ta vrednost poveča, kar zagotavlja, da bo plen v
prihodnosti izvedel enako akcijo, če se bo znašel v tem stanju.
Slika 5.3: Premik plena na polje cilj
( ) ( ) (5.1)
Implementirali smo učenje plena proti lovcem, ki se premikajo naključno, ter učenje tako
lovcev kot plena. Algoritem smo poganjali na treh različicah mreţnega sveta. Prvi svet je
prikazan s sliko 5.4 in je popolnoma odprt, tako da je precej enostavno iz njega pobegniti.
Sliki 5.5 in 5.6 prikazujeta drugi dve okolji, ki vsebujeta stene in imata ozke poti, kar ju
naredi precej teţji za plen.
Samoojačitveno učenje
13
Slika 5.4: Mreţno okolje A.
Slika 5.5: Mreţno okolje B.
Samoojačitveno učenje
14
Slika 5.6: Mreţno okolje C.
Program smo napisali v jeziku C#. Izgled aplikacije je razviden iz slike 5.7. Omogočeno je
grafično prikazovanje agentov v okolju, kar olajša spremljanje dogajanja.
Nastavimo lahko število epizod, s spustnim menijem pa izberemo mreţno okolje, ki ga
ţelimo uporabiti. S potrditvenima poljema vklopimo oziroma izklopimo naključno
obnašanje plena ali lovcev. V oknu se tudi izpisujejo osnovni podatki o uspešnosti plena,
ki jih lahko ponastavimo s klikom na gumb Resetiraj statistiko.
Slika 5.7: Okno naše aplikacije.
Samoojačitveno učenje
15
5.3 Rezultati
V vseh testnih zagonih smo učenje izvajali na sto tisoč epizodah, ob tem pa smo beleţili
odstotek uspešnih pobegov plena.
Ko se je učil le plen, lovci pa so se premikali naključno, se je po pričakovanjih izkazalo, da
se je plen sposoben naučiti zelo dobre strategije. Skozi celotno učenje je namreč dosegel
93 odstotno uspešnost v okolju A, ki nima ovir in je najenostavnejši med testiranimi
svetovi. Ţe po dvajset tisoč epizodah je imel plen okoli 90 odstotno uspešnost, skozi vse
epizode pa je ta odstotek zviševal. To pomeni, da bi se plen z več epizodami naučil še
bolje izogibati lovcem, čeprav je napredek v kasnejših epizodah znatno počasnejši.
V tem svetu smo poskusili tudi z učenjem z milijonom epizod. Ob zaključku je bila
uspešnost plena ţe več kot 95 odstotna, izboljšanje pa je bilo proti koncu ţe skoraj
popolnoma zanemarljivo. Tak odstotek pa je izjemno dober, če upoštevamo, da je skozi
vso ţivljenje plen imel ob vsakem premiku deset odstotno moţnost naključne akcije, saj
smo parameter ε nastavili na 0.1. To je še posebej zanimivo, ker smo uporabili metodo
Q-učenja, ki moţnosti naključne akcije pri učenju ne upošteva, kot je to denimo pri metodi
Sarsa ter drugih metodah, ki se učijo po pravilniku.
Tudi v okolju B z ovirami in posledično manj prostora za izmikanje, je plen po končanem
učenju beleţil skoraj 80 odstotno uspešnost. Tudi v tem primeru je učenje potekalo zelo
hitro v zgodnejših epizodah, kasneje pa se je ustalilo.
V okolju C, ki je najteţje izmed testiranih, je plen le nekaj odstotkov slabši kot v okolju B.
Dosegel je 76 odstotno uspešnost. V tem svetu je bilo učenje najpočasnejše. Podrobnejši
rezultati so grafično prikazani na sliki 5.8.
Samoojačitveno učenje
16
Slika 5.8: Rezultati učenja plena proti naključnemu premikanju lovcev.
Nato smo preverili, kaj se zgodi, ko se uči tako plen kot lovci. V okolju A je po koncu
učenja plen imel skoraj 81 odstotno uspešnost, kar je le nekaj več kot deset odstotkov
slabše kot pri naključnih akcijah lovcev. Izkazalo se je, da je v tem svetu kljub učenju
lovcev zelo teţko uloviti plen, saj mu popolnoma odprto okolje omogoča pazljivo
premikanje brez tveganja.
Bolj zanimivi sta okolji B in C. Čeprav je plen s 65 odstotki v okolju B ter 63 odstotki v
okolju C tudi tu prekosil učenje lovcev, je s slike 5.9 jasno, da so se lovci učili, saj graf ni
več enakomeren. Taki rezultati so bili pričakovani, saj je v testiranem okolju laţje ostati
neulovljen, kot pa agenta uloviti, pa četudi so lovci trije.
Samoojačitveno učenje
17
Slika 5.9: Rezultati ob učenju tako plena kot lovcev.
Kot zanimivost smo testirali še učenje lovcev proti naključnemu premikanju plena.
Natančni rezultati so prikazani na sliki 5.10. V okolju A je bil plen uspešen le v 7 odstotkih.
Čeprav je imel na voljo veliko prostora, se je lovcem uspelo naučiti zelo dobre taktike.
V okolju B so se lovci odrezali veliko bolje, plenu so dovolili pobegniti v manj kot treh
odstotkih primerov. Z drugimi besedami so lovci plen ulovili v več kot 97 odstotkih vseh
epizod.
Največje presenečenje teh testov je bila skoraj osem odstotna uspešnost plena v okolju C,
ki bi moralo biti najteţje. V tem svetu se je odrezal bolje kot v obeh drugih. Ponovljeni
zagoni so razkrili, da je prvi test sicer dal nadpovprečne rezultate, a tudi v nekaj deset
dodatnih testih ni uspešnost plena nikoli padla pod šest odstotkov. Pregled poteka epizod
pri koncu testiranja ni razkril nobenega očitnega vzroka. Odkrili smo, da je razlog tega
kombinacija taktike, ki se je naučijo lovci, ter oblika sveta. Lovci namreč ugotovijo, da je
najbolje preprečiti dostop plena do cilja in ne nujno lovljenje. Ker pa ima okolje C vsaj štiri
moţne poti do cilja, trije lovci ne morejo uspešno pokriti vseh, kar razloţi rahlo višjo
uspešnost plena od pričakovane.
Samoojačitveno učenje
18
Slika 5.10: Rezultati učenja lovcev proti naključnemu premikanju plena.
V obeh primerih, ko so se lovci učili v okolju A, so razvili podobno taktiko. S pregledom
nekaj epizod ob koncu učenja smo ugotovili, da so se naučili čakati ob cilju, čeprav
njegove lokacije niso vnaprej poznali. Ker si lovci delijo nagrade, ni pomembno, kdo izmed
njih dejansko ulovi plen. V primeru, ko je plen zašel v območje zaznavanja enega izmed
lovcev, mu je ta lovec poskusil slediti, dokler ga ni ujel ali pa mu je plen pobegnil.
V okoljih B in C so lovci prav tako čakali ob cilju, niso pa več slepo sledili plenu za vsako
ceno. Naučili so se, da je bolje čakati plen na ključnih poloţajih sveta in mu odrezati vse
poti do cilja. To taktiko lahko vidimo na sliki 5.11.
Po drugi strani se je pri učenju plena pokazalo, da se je naučil biti zelo potrpeţljiv. Ob
prisotnosti lovca v njegovi bliţini je storil vse, da mu pobegne. Izhod iz sveta je v takem
primeru bil drugotnega pomena, še posebej, če je bil predaleč od ciljnega polja, da bi ga
lahko zaznal. Ko v bliţini plena ni bilo lovcev, se je le-ta premikal po najhitrejši poti do
cilja. Znal je tudi izkoristiti lastnosti okolja. Primer tega je najlepše viden v zaporedju slik
5.11 – 5.14.
Slika 5.11 prikazuje situacijo v okolju B, kjer ima plen blokirane vse poti do cilja. V tem
primeru je njegova najboljša poteza, da ostane v isti celici s premikanjem v eno izmed
stranskih sten. To ponavlja, dokler se najbliţji lovec ne premakne. Za plen je najbolje, da
Samoojačitveno učenje
19
lovec izbere premik navzdol v sredino okolja, kot je to na sliki 5.12. Tudi če se lovci
naučijo, da se tja ne smejo premakniti, se to še vedno zgodi zaradi naključnega
raziskovanja. Ker je to edino polje tega sveta, ki nima v nobeno smer ovire, se bo v
naslednji potezi lovec primoran ponovno premakniti. Plen to izkoristi in se sam premakne
navzgor, na mesto kjer je pravkar bil lovec, kakor je prikazano na sliki 5.13. Če se je lovec
premaknil kamorkoli razen navzgor, je sedaj plen neoviran na poti do cilja, kar lahko
vidimo na sliki 5.14. V primeru, da se je lovec premaknil nazaj na svoje prejšnje mesto in
tako ponovno blokiral pot plena, se je le-ta umaknil nazaj in ponovno čakal na svojo
priloţnost.
Slika 5.11: Lovci so zaprli vse poti do cilja.
Slika 5.12: Lovec se je premaknil tako, kot si je ţelel plen.
Samoojačitveno učenje
20
Slika 5.13: Plen se premakne na mesto lovca.
Slika 5.14: Plen ima neovirano pot do cilja.
Samoojačitveno učenje
21
6 SKLEP
V diplomski nalogi smo predstavili področje samoojačitvenega učenja. Seznanili smo se s
teţavami, na katere lahko naletimo, in njihovimi rešitvami. Opisali smo pomembnejše
metode samoojačitvenega učenja ter implementirali Q-učenje.
V praktičnem delu smo napisali program za učenje agentov v mreţnem okolju lovec-plen.
Agenti so se učili hitro, njihovo znanje pa je po koncu učenja bilo zelo dobro. Analiza
obnašanja agentov ob koncu učenja je razkrila delovanje, ki bi ga teţko izboljšali z lastno
domišljijo. Sklepamo lahko, da je naučen pravilnik dober pribliţek optimalnemu pravilniku
za posamezen svet. Rezultati so bili bolj ali manj taki, kot smo jih pričakovali. Edina izjema
je bila nepredvidena posledica oblike enega izmed svetov. Čeprav smo uporabili majhna
okolja (po milijonu epizod je bilo videnih le okoli 30000 stanj), je naša predstavitev stanj
primerna tudi za večje svetove, le da se učenje s tem seveda upočasnjuje.
Hitrost izvajanja programa bi lahko pohitrili z uporabo jezika, ki omogoča hitrejše izvajanje
algoritma, na primer z jezikom C++, vendar pa pri svetovih take velikosti, kot smo jih
uporabili, hitrost ne predstavlja ovire. Tudi pri reševanju problemov v praksi je hitrost
skoraj nepomembna, saj moramo učenje izvajati le enkrat, naučene vrednosti pa lahko
shranimo, tako da ni pomembno, kako dolgo traja učenje. Pomembnejša je prostorska
zahtevnost. Ţe pri majhnih okoljih bi hitro zmanjkalo pomnilnika, če bi ţeleli popolno
predstavitev stanj. To se največkrat rešuje z aproksimacijo stanj, za kar so najbolj
popularne nevronske mreţe.
V nadaljnjem delu bi lahko spremenili predstavitev stanj v aproksimacijo z linearno
funkcijo ali pa z nevronsko mreţo. Prav tako bi lahko testirali večje svetove, morda bi bilo
zanimivo videti zelo velike svetove.
Samoojačitveno učenje
VIRI
[1] Sutton, R. S., Barto, A. G. Reinforcement Learning: An Introduction. Cambridge,
Massachusetts: A Bradford Book, 1998.
[2] Bellman, R. E. Dynamic Programming. Princeton, New Jersey: Princeton University
Press, 1957.
[3] Schrum, J. Competition Between Reinforcement Learning Methods in a
Predator-Prey Grid World, 2008.
[4] Kaelbling, P. L., Littman, L. M., Moore, W. A. Reinforcement Learning: A Survey.
Journal of Artificial Intelligence Research, 4, (1996), str. 237-285.
[5] Tesauro, G., Keith, T. Temporal Difference Learning and TD-Gammon, 1995.
Dostopno na: http://www.research.ibm.com/massive/tdl.html [10. 4. 2012].
[6] Backgammon. Dostopno na: http://sl.wikipedia.org/wiki/Backgammon [10. 4. 2012].