33
Matej Mlakar SAMOOJAČITVENO UČENJE Diplomsko delo Maribor, junij 2012

SAMOOJAČITVENO UČENJE - core.ac.uk · 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

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: SAMOOJAČITVENO UČENJE - core.ac.uk · 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

Matej Mlakar

SAMOOJAČITVENO UČENJE

Diplomsko delo

Maribor, junij 2012

Page 2: SAMOOJAČITVENO UČENJE - core.ac.uk · 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

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

Page 3: SAMOOJAČITVENO UČENJE - core.ac.uk · 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

i

Page 4: SAMOOJAČITVENO UČENJE - core.ac.uk · 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

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.

Page 5: SAMOOJAČITVENO UČENJE - core.ac.uk · 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

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.

Page 6: SAMOOJAČITVENO UČENJE - core.ac.uk · 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

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.

Page 7: SAMOOJAČITVENO UČENJE - core.ac.uk · 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

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

Page 8: SAMOOJAČITVENO UČENJE - core.ac.uk · 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

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

Page 9: SAMOOJAČITVENO UČENJE - core.ac.uk · 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

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.

Page 10: SAMOOJAČITVENO UČENJE - core.ac.uk · 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

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.

Page 11: SAMOOJAČITVENO UČENJE - core.ac.uk · 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

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.

Page 12: SAMOOJAČITVENO UČENJE - core.ac.uk · 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

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)

Page 13: SAMOOJAČITVENO UČENJE - core.ac.uk · 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

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.

Page 14: SAMOOJAČITVENO UČENJE - core.ac.uk · 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

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].

Page 15: SAMOOJAČITVENO UČENJE - core.ac.uk · 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

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 α.

Page 16: SAMOOJAČITVENO UČENJE - core.ac.uk · 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

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)

Page 17: SAMOOJAČITVENO UČENJE - core.ac.uk · 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

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(λ).

Page 18: SAMOOJAČITVENO UČENJE - core.ac.uk · 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

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.

Page 19: SAMOOJAČITVENO UČENJE - core.ac.uk · 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

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

Page 20: SAMOOJAČITVENO UČENJE - core.ac.uk · 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

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.

Page 21: SAMOOJAČITVENO UČENJE - core.ac.uk · 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

Samoojačitveno učenje

13

Slika 5.4: Mreţno okolje A.

Slika 5.5: Mreţno okolje B.

Page 22: SAMOOJAČITVENO UČENJE - core.ac.uk · 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

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.

Page 23: SAMOOJAČITVENO UČENJE - core.ac.uk · 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

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.

Page 24: SAMOOJAČITVENO UČENJE - core.ac.uk · 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

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.

Page 25: SAMOOJAČITVENO UČENJE - core.ac.uk · 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

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.

Page 26: SAMOOJAČITVENO UČENJE - core.ac.uk · 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

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

Page 27: SAMOOJAČITVENO UČENJE - core.ac.uk · 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

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.

Page 28: SAMOOJAČITVENO UČENJE - core.ac.uk · 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

Samoojačitveno učenje

20

Slika 5.13: Plen se premakne na mesto lovca.

Slika 5.14: Plen ima neovirano pot do cilja.

Page 29: SAMOOJAČITVENO UČENJE - core.ac.uk · 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

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.

Page 30: SAMOOJAČITVENO UČENJE - core.ac.uk · 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

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].

Page 31: SAMOOJAČITVENO UČENJE - core.ac.uk · 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
Page 32: SAMOOJAČITVENO UČENJE - core.ac.uk · 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
Page 33: SAMOOJAČITVENO UČENJE - core.ac.uk · 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