Univerzita Karlova v Praze Matematicko-fyzik´aln´ı fakulta
´ PRACE ´ DIPLOMOVA
Vojtˇech Havr´anek
Umˇ el´ e neuronov´ e s´ıtˇ e a zpˇ etnovazebn´ e uˇ cen´ı
Katedra teoretick´e informatiky a matematick´e logiky Vedouc´ı diplomov´e pr´ace: Doc. RNDr. Iveta Mr´azov´a, CSc. Studijn´ı program: Informatika
R´ad bych zde podˇekoval vˇsem, kteˇr´ı mi byli n´apomocn´ı pˇri psan´ı t´eto pr´ace. Pˇredevˇs´ım dˇekuji Doc. RNDr. Ivetˇe Mr´azov´e, CSc. za cenn´e rady a pˇripom´ınky. Dˇekuji tak´e sv´e rodinˇe za jej´ı podporu a trpˇelivost v dobˇe vzniku t´eto pr´ace.
Prohlaˇsuji, ˇze jsem svou diplomovou pr´aci napsal samostatnˇe a v´ yhradnˇe s pouˇzit´ım citovan´ ych pramen˚ u. Souhlas´ım se zap˚ ujˇcov´an´ım pr´ace. V Praze dne 7.3.2008
Vojtˇech Havr´anek 1
Obsah ´ 1 Uvod
5
2 Zpˇ etnovazebn´ e uˇ cen´ı
7
2.1
Princip zpˇetnovazebn´eho uˇcen´ı . . . . . . . . . . . . . . . . . . . . . . . . .
7
2.2
Koneˇcn´ y Markovsk´ y rozhodovac´ı proces . . . . . . . . . . . . . . . . . . . .
8
2.3
Omezen´ı dynamick´eho programov´an´ı . . . . . . . . . . . . . . . . . . . . . 10
2.4
Z´avˇereˇcn´e pozn´amky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3 Neuronov´ e s´ıtˇ e
12
3.1
Umˇel´ y neuron . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.2
S´ıt’ zpˇetn´eho ˇs´ıˇren´ı . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
4 Pouˇ zit´ı neuronov´ ych s´ıt´ı ve zpˇ etnovazebn´ em uˇ cen´ı
21
4.1
Specifika zpˇetnovazebn´eho uˇcen´ı . . . . . . . . . . . . . . . . . . . . . . . . 21
4.2
S´ıt’ s n´ahodn´ ymi zmˇenami . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
4.3
S´ıtˇe s modelem svˇeta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
4.4
4.5
4.3.1
Modeluj´ıc´ı s´ıtˇe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
4.3.2
Zvolit akci je tˇeˇzk´e . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
4.3.3
Backpropagation pro ˇr´ızen´ı . . . . . . . . . . . . . . . . . . . . . . . 30
Algoritmus TD(λ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 4.4.1
Pˇr´ınos TD-Gammonu . . . . . . . . . . . . . . . . . . . . . . . . . . 35
4.4.2
TD(λ) v nemarkovsk´em prostˇred´ı . . . . . . . . . . . . . . . . . . . 36
4.4.3
Probl´em “strachu z nezn´ama” . . . . . . . . . . . . . . . . . . . . . 39
Pouˇzit´ı rekurentn´ı s´ıtˇe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
2
5 Experiment´ aln´ı ˇ c´ ast 5.1
5.2
´ Uloha dravce a koˇristi
47 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
5.1.1
Zad´an´ı u ´lohy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
5.1.2
Mˇeˇren´ı u ´spˇeˇsnosti . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
5.1.3
S´ıt’ s n´ahodn´ ymi zmˇenami . . . . . . . . . . . . . . . . . . . . . . . 50
5.1.4
Modifikovan´e TD(λ) . . . . . . . . . . . . . . . . . . . . . . . . . . 56
5.1.5
Schmidhuberova rekurentn´ı s´ıt’ . . . . . . . . . . . . . . . . . . . . . 61
5.1.6
Srovn´an´ı testovan´ ych algoritm˚ u . . . . . . . . . . . . . . . . . . . . 67
Aplikace v robotice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 5.2.1
ˇ sen´a u Reˇ ´loha robotiky . . . . . . . . . . . . . . . . . . . . . . . . . 69
5.2.2
Specifika u ´lohy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
5.2.3
Pr˚ ubˇeh experimentu s robotem . . . . . . . . . . . . . . . . . . . . 73
6 Meze zpˇ etnovazebn´ eho uˇ cen´ı
76
6.1
Zpˇetnovazebn´e uˇcen´ı a stavov´ y prostor . . . . . . . . . . . . . . . . . . . . 76
6.2
Jak stanovit odmˇenu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
6.3
Sloˇzitost dynamiky prostˇred´ı . . . . . . . . . . . . . . . . . . . . . . . . . . 79
7 Z´ avˇ er
81
A Knihovna neuronov´ ych s´ıt´ı Flexinets
88
A.1 Principy knihovny Flexinets . . . . . . . . . . . . . . . . . . . . . . . . . . 88 A.2 Tˇr´ıdy knihovny Flexinets . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 B Pouˇ zit´ y simul´ ator koˇ risti a dravce
91
B.1 Uˇzivatelsk´e rozhran´ı . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 B.2 Struˇcnˇe o implementaci simul´atoru . . . . . . . . . . . . . . . . . . . . . . 92 B.2.1 Hierarchie objekt˚ u . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 B.2.2 Struktura programu
. . . . . . . . . . . . . . . . . . . . . . . . . . 92
C Obsah pˇ riloˇ zen´ eho CD
94
3
N´ azev pr´ ace: Umˇel´e neuronov´e s´ıtˇe a zpˇetnovazebn´e uˇcen´ı Autor: Vojtˇech Havr´anek Katedra: Katedra teoretick´e informatiky a matematick´e logiky Vedouc´ı diplomov´ e pr´ ace: Doc. RNDr. Iveta Mr´azov´ a, CSc. e-mail vedouc´ıho:
[email protected] Abstrakt: Pˇri ˇreˇsen´ı sloˇzit´ych u ´loh strojov´eho uˇcen´ı b´yv´ a ˇcasto obt´ıˇzn´e specifikovat pˇresn´y postup vedouc´ı k jejich spr´avn´emu ˇreˇsen´ı. V praxi proto m˚ uˇze b´yt v´yhodnˇejˇs´ı vyuˇz´ıt napˇr. zpˇetnovazebn´eho uˇcen´ı, kter´e vyˇzaduje jedinou informaci o ˇreˇsen´e u ´loze, a to odmˇenu u ´mˇernou vhodnosti akc´ı agenta. Ukazuje se, ˇze algoritmy zpˇetnovazebn´eho uˇcen´ı pracuj´ıc´ı s neuronov´ymi s´ıtˇemi mohou v ˇradˇe takov´ych u ´loh dos´ahnout dobr´ych v´ysledk˚ u. Dosaˇzen´e ’ v´ysledky mohou b´yt lepˇs´ı, m´a-li neuronov´ a s´ıt schopnost modelovat prostˇred´ı nebo je-li rozˇs´ıˇrena o rekurentn´ı vazby. V pr´aci ukazujeme, ˇze pro danou s´ıt’, kter´a spr´avnˇe predikuje odmˇenu, je nalezen´ı optim´aln´ı akce v obecn´em pˇr´ıpadˇe NP-´ upln´ au ´loha. Popisujeme tˇri modely neuronov´ych s´ıt´ı. Jedn´ım z nich je n´ami pˇrizp˚ usoben´ a varianta Suttonova algoritmu TD(λ) pro nemarkovsk´e prostˇred´ı. Vˇsechny tˇri modely jsme d˚ ukladnˇe otestovali v n´ami vytvoˇren´em simul´atoru dravce a koˇristi. Nej´ uspˇeˇsnˇejˇs´ı z testovan´ych model˚ u - modifikovan´y TD(λ) jsme n´aslednˇe aplikovali pˇri ˇr´ızen´ı re´ aln´eho mobiln´ıho robota. V pr´aci se z´aroveˇ n zab´yv´ ame vhodn´ym zp˚ usobem odmˇen ˇov´ an´ı, biologickou opodstatnˇenost´ı zvaˇzovan´ych model˚ u neuronov´e s´ıtˇe, d˚ uleˇzitost´ı explorativn´ıch schopnost´ı algoritmu a mezemi pouˇzitelnosti zpˇetnovazebn´eho uˇcen´ı. Souˇc´ ast´ı pr´ace je knihovna neuronov´ych s´ıt´ı napsan´ a v jazyku C++, ve kter´e jsou popsan´e modely implementov´any. Kl´ıˇ cov´ a slova: Dynamick´e neuronov´e s´ıtˇe, zpˇetnovazebn´e uˇcen´ı, robotika, Temporal Difference learning, prohled´ av´ an´ı Title: Artificial neural networks and reinforcement learning Author: Vojtˇech Havr´anek Department: Department of Theoretical Computer Science and Mathematical Logic Supervisor: Doc. RNDr. Iveta Mr´azov´ a, CSc. Supervisor’s e-mail address:
[email protected] Abstract: When solving complex machine learning tasks, it is often more practical to let the agent find an adequate solution by itself using e.g. reinforcement learning rather than trying to specify a solution in detail. The only information required for reinforcement learning is a reward that gives the agent reinforcement about the desirability of his actions. Our experiments suggest that good results can be achieved by reinforcement learning with online learning neural networks. The functionality of such neural network may be further extended by allowing it to model the environment and/or by providing it with recurrent connections. In this thesis, we show that for a given network predicting the reward, it is NP-complete to find the agent action that maximizes this reward. We describe three neural network models, one of them being an original modification of Sutton’s TD(λ) algorithm that extends its domain to non-Markovian environments. All three models were thoroughly tested with our predator-prey simulator. The most powerful of them, the modified TD(λ) was then applied to control of a real mobile robot. Simultaneously, we have discussed the principles of rewarding the agents, the biological plausibility of the algorithms, the importance of the exploration capabilities and general bounds of reinforcement learning. As a significant part of the thesis, a C++ neural networks library was developed and the described models were implemented. Keywords: Dynamic neural networks, reinforcement learning, robotics, Temporal Difference learning, exploration 4
Kapitola 1 ´ Uvod Umˇel´a inteligence ˇcasto ˇreˇs´ı u ´lohy, ve kter´ ych se snaˇz´ıme nauˇcit agenta dos´ahnout poˇzadovan´eho c´ıle urˇcitou sekvenc´ı akc´ı. Spr´avn´a posloupnost akc´ı pˇritom m˚ uˇze b´ yt tak sloˇzit´a, ˇze by bylo velmi komplikovan´e ji pˇresnˇe formulovat a agentovi naprogramovat. ˇ Casto ani spr´avnou posloupnost akc´ı vedouc´ıch k c´ıli nezn´ame. Dok´aˇzeme ale posoudit, nakolik je dosaˇzen´ y v´ ysledek kvalitn´ı, nebo m˚ uˇzeme v pr˚ ubˇehu aktivity agenta posoudit, do jak´e m´ıry se jeho ˇcinnost ub´ır´a spr´avn´ ym smˇerem. Pˇr´ıkladem takov´eho agenta a u ´lohy m˚ uˇze b´ yt mobiln´ı robot - automatick´ y vysavaˇc, kter´eho chceme nauˇcit vyluxovat celou m´ıstnost. Naprogramovat robotovi konkr´etn´ı trajektorii, po kter´e se m´a m´ıstnost´ı pohybovat, by bylo pracn´e, a robot by nav´ıc byl pˇrizp˚ usoben jedn´e konkr´etn´ı m´ıstnosti a v ostatn´ıch m´ıstnostech by mohl zabloudit. Vhodnou technikou v takov´e situaci m˚ uˇze b´ yt tzv. zpˇetnovazebn´e uˇcen´ı1 [2]. Zpˇetnovazebn´e uˇcen´ı pˇredstavuje jednu z metod strojov´eho uˇcen´ı, pˇri kter´e agentovi neposkytujeme informaci o tom, jak se m´a chovat, ale pouze mu prostˇrednictv´ım speci´aln´ıho sign´alu, tzv. odmˇeny nebo t´eˇz zpˇetn´e vazby2 , d´av´ame informaci o tom, nakolik je jeho moment´aln´ı aktivita ˇz´adouc´ı. V pˇr´ıpadˇe robotick´eho vysavaˇce bychom mohli agentovi v kaˇzd´em okamˇziku udˇelit odmˇenu u ´mˇernou napˇr´ıklad objemu smet´ı, kter´e v dan´em okamˇziku nasb´ıral. Problematika zpˇetnovazebn´eho uˇcen´ı se pak zab´ yv´a hled´an´ım vhodn´ ych algoritm˚ u, kter´e agentovi umoˇzn´ı naj´ıt spr´avn´e ˇreˇsen´ı zadan´e u ´lohy pouze s vyuˇzit´ım informace o jeho vstupech, v´ ystupech a v´ yˇsi odmˇeny v kaˇzd´em okamˇziku. Agent se tedy v jist´em smyslu uˇc´ı z vlastn´ıch chyb. ˇ e organismy, zejm´ena vyˇsˇs´ı ˇzivoˇcichov´e, jsou vybaveny vysokou schopnost´ı adaptace Ziv´ na vnˇejˇs´ı podm´ınky. Lid´e a dokonce i lidoopov´e jsou schopni nauˇcit se velmi sloˇzit´emu chov´an´ı, aby dos´ahli sv´ ych c´ıl˚ u. Je moˇzn´e, ˇze podstatn´a ˇca´st tohoto uˇcen´ı prob´ıh´a zp˚ usobem podobn´ ym zpˇetnovazebn´emu uˇcen´ı. Proto je na m´ıstˇe ot´azka, zda lze s vyuˇzit´ım zpˇetnovazebn´eho uˇcen´ı dos´ahnout srovnateln´ ych v´ ysledk˚ u i u umˇel´ ych agent˚ u. Nejen z tohoto d˚ uvodu jsou zaj´ımav´ ym n´astrojem zpˇetnovazebn´eho uˇcen´ı umˇel´e neuronov´e s´ıtˇe, kter´e byly navrˇzeny podle vzoru nervov´e soustavy biologick´ ych organism˚ u. V t´eto pr´aci se budeme zab´ yvat pr´avˇe pouˇzit´ım umˇel´ ych neuronov´ ych s´ıt´ı pro u ´ˇcely zpˇetnovazebn´eho uˇcen´ı. Pˇri jejich aplikaci budeme kromˇe dosaˇzen´e u ´spˇeˇsnosti zvaˇzovat t´eˇz biologickou opodstatnˇenost pouˇzit´ ych model˚ u. 1 2
anglicky reinforcement learning anglicky reward respektive reinforcement
5
´ Uloha zpˇetnovazebn´eho uˇcen´ı bude z´amˇernˇe vymezena velmi obecnˇe. Lze ale oˇcek´avat, ˇze ˇc´ım obecnˇejˇs´ı u ´lohy dok´aˇze konkr´etn´ı algoritmus zpˇetnovazebn´eho uˇcen´ı ˇreˇsit, t´ım bude m´enˇe efektivn´ı. Budeme tedy hledat urˇcit´ y kompromis mezi obecnost´ı a efektivitou algoritmu. Naˇs´ım c´ılem tedy nebude naj´ıt univerz´aln´ı algoritmus, kter´ y by dok´azal optim´alnˇe vyˇreˇsit libovolnou u ´lohu zpˇetnovazebn´eho uˇcen´ı. Naˇs´ım c´ılem bude naj´ıt algoritmus a model neuronov´e s´ıtˇe, kter´ y d´av´a dostateˇcnˇe dobr´e v´ ysledky pro co nejˇsirˇs´ı podmnoˇzinu u ´loh, se kter´ ymi se v praxi m˚ uˇzeme setkat. Mimo hled´an´ı vhodn´eho algoritmu se budeme t´eˇz zab´ yvat ot´azkou, jak´ ym zp˚ usobem je vhodn´e odmˇen ˇovat, abychom agentovi co nejv´ıce usnadnili hled´an´ı ˇreˇsen´ı. Metodou, kter´a je ˇcasto alternativou k pouˇzit´ı zpˇetnovazebn´eho uˇcen´ı, jsou tzv. genetick´e algoritmy[6]. Tˇemi se v t´eto pr´aci zab´ yvat nebudeme. V n´asleduj´ıc´ı kapitole jsou form´alnˇe zavedeny pojmy z oblasti zpˇetnovazebn´eho uˇcen´ı a pˇredstaveny z´akladn´ı algoritmy zpˇetnovazebn´eho uˇcen´ı. V kapitole 3 jsou pak zavedeny pojmy z oblasti neuronov´ ych s´ıt´ı a pops´an algoritmus zpˇetn´eho ˇs´ıˇren´ı. Kapitola 4 se nejprve zab´ yv´a moˇznostmi pouˇzit´ı neuronov´ ych s´ıt´ı pro zpˇetnovazebn´e uˇcen´ı obecnˇe, pot´e popisuje vybran´e konkr´etn´ı modely neuronov´ ych s´ıt´ı a algoritmy, kter´e s nimy pracuj´ı. V kapitole 5 jsou pak pops´any experimenty se simul´atorem dravce a koˇristi a experiment z oblasti robotiky, ve kter´ ych byly tyto algoritmy otestov´any. V kapitole 6 pak srovn´av´ame zpˇetnovazebn´e uˇcen´ı s u ´lohou prohled´av´an´ı stavov´eho prostoru a z tohoto srovn´an´ı vyvod´ıme urˇcit´e doporuˇcen´ı, jak vhodnˇe stanovit odmˇenu. D´ale v t´eto kapitole uvaˇzujeme o mez´ıch pouˇzitelnosti metody zpˇetnovazebn´eho uˇcen´ı. V z´avˇeru pak shrneme pˇr´ınos t´eto pr´ace a naznaˇc´ıme moˇznosti jej´ıho dalˇs´ıho pokraˇcov´an´ı. Souˇc´ast´ı pr´ace je t´eˇz autorem vyvinut´a knihovna funkc´ı pro pr´aci s neuronov´ ymi s´ıtˇemi a simul´ator dravce a koˇristi, kter´e jsou pˇriloˇzeny k pr´aci na samostatn´em CD. Popis tohoto software a popis obsahu pˇriloˇzen´eho CD lze nal´ezt v pˇr´ıloh´ach v z´avˇeru t´eto pr´ace.
6
Kapitola 2 Zpˇ etnovazebn´ e uˇ cen´ı 2.1
Princip zpˇ etnovazebn´ eho uˇ cen´ı
Definujme nyn´ı potˇrebn´e pojmy preciznˇeji. M´ame d´ano prostˇred´ı a v nˇem agenta, kter´ y s prostˇred´ım interaguje. Agentem m˚ uˇze b´ yt napˇr´ıklad poˇc´ıtaˇcov´ y program, robot nebo ˇ povaˇzujeme za diskr´etn´ı a zaˇc´ınaj´ıc´ı od okamˇziku 0. V kaˇzd´em ˇziv´ y organismus. Cas ˇcasov´em okamˇziku t dost´av´a agent na vstup potenci´alnˇe ne´ uplnou informaci o stavu prostˇred´ı st (d´ale jen “stav”) z mnoˇziny moˇzn´ ych stav˚ u S a zasahuje do prostˇred´ı vykon´an´ım akce at z mnoˇziny provediteln´ ych akc´ı A(st ), ˇc´ımˇz se dost´av´a do stavu st+1 . Stav s0 naz´ yv´ame poˇca´teˇcn´ı. Mohou existovat tzv. koncov´e stavy s ∈ S, pro nˇeˇz je mnoˇzina A(s) pr´azdn´a a v nichˇz ˇcinnost agenta konˇc´ı. V´ ysledek agentovy akce je obecnˇe nedeterministick´ y, protoˇze m˚ uˇze z´aviset na informac´ıch o prostˇred´ı, kter´e nejsou souˇc´ast´ı agentova vstupu s, a nav´ıc prostˇred´ı samo se m˚ uˇze chovat stochasticky. Ve stavu s dost´av´a agent 1 odmˇenu r(s) ∈ R, coˇz je ˇc´ıslo ohodnocuj´ıc´ı u ´spˇeˇsnost agenta2 . Odmˇena r(s) m˚ uˇze b´ yt i z´aporn´a, coˇz znaˇc´ı, ˇze stav s je neˇz´adouc´ı. Z´aporn´a odmˇena se naz´ yv´a trest. Odmˇenu z´ıskanou v ˇcase t znaˇc´ıme rt a plat´ı rt = r(st ). Necht’ se agent nach´az´ı ve stavu st , do kter´eho se dostal pˇres stavy s0 , s1 , . . . , st−1 vykon´an´ım akc´ı a0 , a1 , . . . , at−1 . Potom pravdˇepodobnost, ˇze po vykon´an´ı akce at se agent dostane do stavu s, znaˇc´ıme: P r{st+1 = s | st , at , st−1 , at−1 , . . . , s0 , a0 }
(2.1)
ˇ ıd´ı se Agent m˚ uˇze, ale nemus´ı m´ıt moˇznost si uchov´avat sv˚ uj vnitˇrn´ı stav (pamˇet’). R´ nˇejak´ ym algoritmem. K formalizaci algoritmu, kter´ y ˇr´ıd´ı jeho chov´an´ı, pouˇz´ıv´ame pojem strategie3 . Strategie π je funkce, kter´a kaˇzd´emu stavu s ∈ S pˇriˇrad´ı nˇejakou proveditelnou agentovu akci a ∈ A(s). 1
anglicky reward Odmˇenu m˚ uˇzeme alternativnˇe definovat jako funkci r(s, a) oznaˇcuj´ıc´ı odmˇenu, kterou agent dostane pˇri vykon´an´ı akce a ve stavu s. Formalismy jsou vz´ajemnˇe ekvivalentn´ı. Lze totiˇz poloˇzit r(s, a) = r(s0 ), ale pˇreveden´ı u ´lohy pouˇz´ıvaj´ıc´ı r(s, a) na n´ami pouˇz´ıvan´ y formalismus m˚ uˇze vyˇzadovat rozdˇelen´ı jednoho stavu s na v´ıce r˚ uzn´ ych stav˚ u v tom pˇr´ıpadˇe, ˇze pˇri r˚ uzn´ ych zp˚ usobech, jak se dostat do stavu s, dost´av´a agent r˚ uznou odmˇenu. 3 anglicky policy 2
7
Naˇs´ım c´ılem je naj´ıt pro agenta takovou strategii, kterou z´ısk´a co moˇzn´a nejvˇetˇs´ı kumulativn´ı odmˇenu4 2
R = r0 + γr1 + γ r2 + . . . = r0 +
∞ X
γ k rk ,
(2.2)
k=1
kde 0 ≤ γ ≤ 1 je pevnˇe zvolen´a konstanta, tzv. discount factor. V extr´emn´ım pˇr´ıpadu, kdy γ = 0, bude agent motivov´an vykon´avat takov´e akce, kter´e pˇrinesou co nejvyˇsˇs´ı okamˇzitou odmˇenu. Naopak pro vyˇsˇs´ı γ bl´ızk´e jedniˇcce bude agent pˇrisuzovat vˇetˇs´ı v´ yznam i odmˇen´am, kter´e z´ısk´a pozdˇeji. Pokud nen´ı zaruˇceno, ˇze agent ˇcasem dospˇeje do koncov´eho stavu, mˇelo by platit, ˇze γ < 1 a v´ yˇse odmˇeny r by mˇela b´ yt omezen´a, aby byl probl´em dobˇre definov´an. Optim´aln´ı strategi´ı je takov´a strategie, kter´a pˇrin´aˇs´ı maxim´aln´ı moˇznou kumulativn´ı ´ odmˇenu. Ulohu jsme ale definovali velmi obecnˇe, a proto by bylo v ˇradˇe pˇr´ıpad˚ u nalezen´ı ˇ optim´aln´ı strategie pˇr´ıliˇs tˇeˇzk´e. Casto n´am vˇsak bude postaˇcovat strategie, kter´a pˇrin´aˇs´ı “dostateˇcnˇe vysokou” kumulativn´ı odmˇenu. V obecn´em pˇr´ıpadˇe zpoˇca´tku agent nem´a znalosti o ˇreˇsen´e u ´loze a nezn´a pravdˇepodobnost v´ ysledk˚ u sv´ ych akc´ı. Mus´ı se nauˇcit maximalizovat odmˇenu jen z vlastn´ı zkuˇsenosti. Agent je v podobn´e situaci jako pokusn´a myˇs v labyrintu, kter´a je v c´ıli odmˇenˇena potravou, zat´ımco dostane elektrick´ y ˇsok, zvol´ı-li ˇspatnou cestu. Poznamenejme, ˇze hranice mezi agentem a prostˇred´ım se nemus´ı shodovat s fyzickou hranic´ı agentova tˇela. Za souˇca´st agenta povaˇzujeme pouze to, co spad´a pod agentovu v´ yhradn´ı kontrolu. Speci´alnˇe, syst´em poskytuj´ıc´ı agentovi odmˇenu nen´ı jeho souˇc´ast´ı. Napˇr´ıklad je-li souˇca´st´ı robota i obvod, kter´ y ze senzor˚ u poˇc´ıt´a v´ yˇsi odmˇeny, nepovaˇzujeme jej za souˇca´st agenta, ale sp´ıˇse souˇca´st prostˇred´ı. Pˇ r´ıklad: Agentem je robot, jehoˇz c´ılem je uklidit odpadky v m´ıstnosti. Stav s je informace, kterou robot zaznamen´a sv´ ymi senzory. Moˇzn´e akce jsou zmˇena smˇeru pohybu robota, zmˇena rychlosti, pohyb konˇcetin. Pokaˇzd´e, kdyˇz robot vyhod´ı nˇejak´ y odpad do koˇse, dostane odmˇenu. V´ ysledek robotov´ ych akc´ı je nejist´ y, pˇredmˇety mu mohou z konˇcetiny vyklouznout, kolemjdouc´ı ˇclovˇek m˚ uˇze odhodit dalˇs´ı odpadky, apod. Robot nen´ı zpoˇc´atku vybaven programem na ukl´ızen´ı, pouze nˇejak´ ym algoritmem, podle kter´eho se ukl´ızet uˇc´ı.
2.2
Koneˇ cn´ y Markovsk´ y rozhodovac´ı proces
K v´ yˇse uveden´emu formalismu mohou b´ yt pˇrid´any dalˇs´ı pˇredpoklady, coˇz umoˇzn ˇuje ˇ snadnˇejˇs´ı ˇreˇsen´ı probl´emu. Casto pˇredpokl´ad´ame, ˇze mnoˇziny S a A(s) jsou koneˇcn´e a ˇze prostˇred´ı se chov´a jako tzv. Markovsk´ y rozhodovac´ı proces (Markov decision process). Pro Markovsk´ y rozhodovac´ı proces plat´ı tzv. Markovsk´a podm´ınka5 , totiˇz ˇze pravdˇepodobnost, ˇze akce at ve stavu st povede ke stavu st+1 , nen´ı z´avisl´a na historii pˇredchoz´ıch stav˚ u, vstup˚ u a odmˇen: ozn.
P r{st+1 = s | st , at , st−1 , at−1 , . . . , s0 , a0 } = P r{st+1 = s | st , at } = P rat {st , s} 4 5
anglicky cumulative reward nebo t´eˇz return Markov property
8
(2.3)
Plat´ı-li Markovsk´a podm´ınka, agent nepotˇrebuje ˇz´adnou pamˇet’, protoˇze by pro jeho rozhodov´an´ı nemˇela ˇza´dn´ y pˇr´ınos. Pˇ r´ıklad: Agent je program hraj´ıc´ı d´amu. Stavem s je pozice kamen˚ u na hrac´ı desce. Moˇzn´e akce jsou pˇr´ıpustn´e tahy. Agent dost´av´a menˇs´ı odmˇenu za vzet´ı soupeˇrova kamene nebo z´ısk´an´ı d´amy, z´apornou odmˇenu (trest) za ztr´atu kamene, velkou odmˇenu za v´ yhru partie a velk´ y trest za prohru partie. Jedn´a se o Markovsk´ y rozhodovac´ı proces, nebot’ informace o tom, jak vypadala hrac´ı deska v pˇredchoz´ıch taz´ıch, nem´a ˇza´dn´ y pˇr´ınos pro pˇredpovˇed’ dalˇs´ıho v´ yvoje partie. To ale plat´ı pouze v pˇr´ıpadˇe, kdy neuvaˇzujeme moˇznost odhadnout z historie chov´an´ı soupeˇre. Pro ˇreˇsen´ı Markovsk´eho rozhodovac´ıho procesu lze pouˇz´ıt metody tzv. dynamick´eho programov´an´ı[2], kter´e postupnˇe zlepˇsuj´ı nejlepˇs´ı nalezenou strategii π, aˇz nakonec konverguj´ı k optim´aln´ı strategii π ∗ . Tyto metody pracuj´ı s funkc´ı V , kter´a pro danou strategii π ohodnocuje kaˇzd´ y stav s. Vπ (s) je oˇcek´avan´a kumulativn´ı odmˇena, kterou agent z´ısk´a, pokud zaˇcne ve stavu s a pokraˇcuje podle strategie π. V ∗ (s) = Vπ∗ (s) je funkce, kter´a kaˇzd´emu stavu pˇriˇrazuje kumulativn´ı odmˇenu, kterou agent z´ısk´a, pokud bude vych´azet ze stavu s a ˇr´ıdit se optim´aln´ı strategi´ı. Plat´ı tzv. Bellmanova rovnice: X Vπ (s) = r(s) + γ (P rπ(s) {s, s0 }Vπ (s0 )) (2.4) s0 ∈ S
Metody dynamick´eho programov´an´ı si typicky uchov´avaj´ı nejlepˇs´ı dosud nalezenou strategii π a j´ı odpov´ıdaj´ıc´ı funkci V v tabulce hodnot. Tyto hodnoty iterativnˇe upravuj´ı s vyuˇzit´ım 2 pˇredpis˚ u: Ã ! X π(s) ← arg max P ra {s, s0 }V (s0 ) (2.5) a
s0 ∈ S
V (s) ← r(s) + γ
X
P rπ(s) {s, s0 }V (s0 )
(2.6)
s0 ∈ S
Tyto kroky se opakuj´ı v poˇrad´ı, kter´e se r˚ uzn´ı mezi jednotliv´ ymi metodami tak, aby byly aktualizov´any hodnoty V a π pro vˇsechny stavy. Aktualizace prob´ıh´a do t´e doby, dokud se aktualizovan´e hodnoty neust´al´ı. Potom π konverguje k π ∗ a V konverguje k V ∗ . Mezi tyto metody patˇr´ı tzv. “Policy iteration”, pˇri kter´em stˇr´ıdavˇe prov´ad´ıme jednou prvn´ı krok pro vˇsechny stavy a pot´e opakujeme krok 2, dokud se hodnoty V mˇen´ı. D´ale sem patˇr´ı metoda “Value iteration”. Pˇri “Value iteration” si nepotˇrebujeme ukl´adat strategii π do tabulky, nebot’ se jej´ı hodnota vˇzdy odvod´ı podle potˇreby. Upravujeme tedy pouze funkci V , a to dle pˇredpisu: Ã ! X V (s) ← r(s) + γ max P ra {s, s0 }V (s0 ) (2.7) a
s0 ∈ S
Pouˇzit´ı tˇechto metod vˇsak vyˇzaduje, abychom pˇredem znali pravdˇepodobnosti v´ ysledk˚ u akc´ı agenta. V pˇr´ıpadˇe, ˇze je nezn´ame, m˚ uˇzeme pouˇz´ıt alternativn´ı metodu, kter´a se naz´ yv´a Q-uˇcen´ı[20]. Q-uˇcen´ı pouˇz´ıv´a m´ısto funkce V funkci Q, kter´a ohodnocuje vˇsechny dvojice stav-akce. Hodnota Qπ (s, a) oznaˇcuje oˇcek´avanou kumulativn´ı odmˇenu, 9
kterou agent z´ısk´a, pokud nejprve vykon´a ve stavu s akci a, a potom pokraˇcuje dle strategie π. Hodnota Q∗ (s, a) = Qπ∗ (s, a) oznaˇcuje oˇcek´avanou kumulativn´ı odmˇenu pˇri pouˇzit´ı optim´aln´ı strategie ve stavu s. Podobnˇe jako pro Vπ (s) plat´ı i pro Qπ (s, a) Bellmanova rovnice: X X Qπ (s, a) = r(s) + γ (P ra {s, s0 }.Vπ (s0 )) = r(s) + γ (P ra {s, s0 }.Qπ (s0 , π(s0 ))) (2.8) s0 ∈ S
s0 ∈ S
Agent se potom uˇc´ı pˇr´ımo bˇehem (simulovan´e) interakce s prostˇred´ım, takzvanˇe online viz d´ale. Ve stavu st z´ısk´a odmˇenu rt vykon´a akci a, kter´a ho pˇrenese do stavu st+1 , a pot´e uprav´ı hodnotu Q podle vzorce: Q(st , at ) ← Q(st , at ) + αt (rt + γ max Q(st+1 , a) − Q(st , at )), a
(2.9)
kde αt je parametr uˇcen´ı, 0 ≤ αt ≤ 1. Je dok´az´ano[20], ˇze s rostouc´ım t konverguje Q k Q∗ pokud plat´ı vˇsechny z n´asleduj´ıc´ıch podm´ınek: • Pro kaˇzdou akci a pouˇzitelnou ve stavu s je k dispozici neomezen´ y poˇcet pozorov´an´ı. • Posloupnost αt jde monot´onnˇe shora k nule. P • t αt = ∞
2.3
Omezen´ı dynamick´ eho programov´ an´ı
Popsan´e metody zpˇetnovazebn´eho uˇcen´ı reprezentuj´ı odhady funkc´ı V respektive Q pomoc´ı tabulky hodnot, jejich pamˇet’ov´e n´aroky jsou proto u ´mˇern´e poˇctu moˇzn´ ych stav˚ ua poˇctu provediteln´ ych akc´ı agenta. I kdyˇz je tento poˇcet koneˇcn´ y, b´ yv´a ˇcasto tak velk´ y, ˇze vyluˇcuje praktick´e pouˇzit´ı tˇechto metod. M´a-li napˇr´ıklad robot n senzor˚ u, z nichˇz kaˇzd´ y n m˚ uˇze b´ yt v nˇekter´em z m moˇzn´ ych stav˚ u, je celkov´ y poˇcet moˇzn´ ych stav˚ u robota m . Poˇcet moˇzn´ ych stav˚ u agenta tedy roste exponenci´alnˇe s poˇctem senzor˚ u, a velmi snadno se tak dostaneme k poˇctu stav˚ u, pˇri kter´em budou zmiˇ novan´e algoritmy dynamick´eho programov´an´ı nepouˇziteln´e. Nav´ıc kromˇe pamˇet’ov´e n´aroˇcnosti s poˇctem stav˚ u a provediteln´ ych akc´ı roste i ˇcas potˇrebn´ y ke konvergenci algoritmu. Tento probl´em se nˇekdy oznaˇcuje jako Bellmanovo proklet´ı dimensionality. Existuj´ı nicm´enˇe algoritmy, kter´e pouˇz´ıvaj´ı kompaktn´ı reprezentaci znalost´ı - snaˇz´ı se predikovan´e hodnoty V (s) pˇribl´ıˇzit pomoc´ı vhodn´e dostateˇcnˇe obecn´e, ale kr´atce popsateln´e funkce, napˇr. pomoc´ı nˇejak´e kombinace pˇr´ıznak˚ u odvozen´ ych z agentov´ ych vstup˚ u nebo pomoc´ı neuronov´e s´ıtˇe. Pˇr´ıkladem takov´eho algoritmu je Sutton˚ uv TD(λ). Tento algoritmus pouˇzil Gerald Tesauro ve sv´em TD-Gammonu[19], programu pro hran´ı hry Backgammon, kter´ y se na zaˇca´tku devades´at´ ych let t´emˇeˇr vyrovnal lidsk´ ym ˇsampion˚ um (viz n´ıˇze). Pˇredpoklady pro pouˇzit´ı v´ yˇse uveden´ ych algoritm˚ u jsou nav´ıc velmi omezuj´ıc´ı. Agent obvykle nedost´av´a na vstupu kompletn´ı reprezentaci stavu prostˇred´ı, ale “vid´ı jen jeho ˇca´st”. Ke spr´avn´e predikci v´ ysledku agentovy akce proto m˚ uˇze b´ yt potˇrebn´a informace 10
o vstupech, kter´e agent pozoroval v minulosti. V tom pˇr´ıpadˇe uˇz ale neplat´ı Markovsk´a podm´ınka a agent potˇrebuje pro kvalitn´ı rozhodov´an´ı tak´e nˇejak´ y vnitˇrn´ı stav, kter´ y zachycuje informaci o minul´ ych rozhodnut´ıch a pozorov´an´ıch. Pr´avˇe techniky vyuˇz´ıvaj´ıc´ı umˇel´e neuronov´e s´ıtˇe by ale mohly b´ yt vhodn´e i v situac´ıch, kde Markovsk´a podm´ınka neplat´ı. Pˇ r´ıklad: Uvaˇzme robota, kter´ y se uˇc´ı hr´at fotbal. Nahraje spoluhr´aˇci a otoˇc´ı se smˇerem k soupeˇrovˇe br´anˇe. V tu chv´ıli ztrat´ı z dohledu m´ıˇc. Pokud si v pamˇeti neuchov´av´a, ˇze m´ıˇc drˇz´ı spoluhr´aˇc, tˇeˇzko se m˚ uˇze rozhodnout, zda pokraˇcovat smˇerem k soupeˇrovˇe br´anˇe, a nebo se st´ahnout k obranˇe br´any vlastn´ı.
2.4
Z´ avˇ ereˇ cn´ e pozn´ amky
Nˇekter´e probl´emy zpˇetnovazebn´eho uˇcen´ı je v praxi moˇzn´e ˇreˇsit tak, ˇze u ´lohu nech´ame mnohokr´at odsimulovat, abychom agenta nauˇcili vhodnou strategii. Kdyˇz je pak nauˇcen´a strategie uspokojiv´a, uˇcen´ı zastav´ıme a nalezenou strategii nasad´ıme. Tento tzv. offline zp˚ usob uˇcen´ı ale nemus´ı b´ yt pouˇziteln´ y pro jin´e probl´emy. Potom mus´ı doj´ıt k uˇcen´ı online (za bˇehu) a my mus´ıme rozhodnout, kolik prostˇredk˚ u vynaloˇz´ı agent na tzv. exploraci (tj. uˇcen´ı, pr˚ uzkum nov´ ych moˇznost´ı) a exploataci (tj. vyuˇzit´ı nejlepˇs´ıho nalezen´eho postupu) tak, aby kumulativn´ı odmˇena za celou dobu ˇcinnosti agenta byla maxim´aln´ı. Pro zaj´ımavost jeˇstˇe poznamenejme, ˇze ned´avno byl objeven obecn´ y zp˚ usob, jak optim´alnˇe predikovat na z´akladˇe dosud pozorovan´ ych skuteˇcnost´ı. Na nˇem je zaloˇzen algoritmus optim´alnˇe se rozhoduj´ıc´ıho agenta AIXI Marcuse Huttera[8]. Tento algoritmus je ale velmi neefektivn´ı a prakticky nerealizovateln´ y, nebot’ funguje tak, ˇze se snaˇz´ı modelovat ˇ ycarsk´em prostˇred´ı pomoc´ı vˇsech pouˇziteln´ ych Turingov´ ych stroj˚ u. AIXI byl pops´an ve Sv´ institutu IDSIA, kde d´ale prob´ıh´a v´ yzkum z c´ılem naj´ıt podobn´ y algoritmus, kter´ y by byl prakticky pouˇzitelnˇejˇs´ı.
11
Kapitola 3 Neuronov´ e s´ıtˇ e 3.1
Umˇ el´ y neuron
Z´akladn´ı v´ ypoˇcetn´ı jednotkou umˇel´e neuronov´e s´ıtˇe je neuron. Neuron m´a n vstupn´ıch a jedno v´ ystupn´ı spojen´ı. Tato spojen´ı se naz´ yvaj´ı synapse. Kaˇzd´a vstupn´ı synapse i, 0 ≤ i < n m´a svoji v´ahu wi ∈ R. Pˇri kaˇzd´em kroku v´ ypoˇctu vstupuje do neuronu n vstupn´ıch hodnot x0 , x1 , . . . , xn−1 . Neuron vypoˇc´ıt´a v´aˇzen´ y souˇcet vstupn´ıch hodnot a odpov´ıdaj´ıc´ıch vah sn´ıˇzen´ y o tzv. pr´ah b. Tato hodnota se naz´ yv´a potenci´al neuronu a budeme ji znaˇcit ξ. Ã n−1 ! X ξ= xi w i − b (3.1) i=0
Na potenci´al je aplikov´ana tzv. pˇrenosov´a funkce f (ξ). V´ ysledn´a funkˇcn´ı hodnota je pak pˇriˇrazena v´ ystupu y. Tato hodnota se naz´ yv´a v´ ystup neuronu. Pˇrenosov´a funkce je typicky neklesaj´ıc´ı s hodnotami z intervalu [0, 1], m´enˇe ˇcasto z intervalu [−1, 1]. Nˇekdy se pouˇz´ıv´a funkce signum, vracej´ıc´ı 0 pro z´aporn´ y potenci´al a 1 pro nulu nebo kladn´ y ˇ potenci´al. Castˇeji se ale setk´ame s funkc´ı sigmoid´aln´ı: f (ξ) = σ(ξ) =
1 , 1 + e−λξ
(3.2)
kde λ > 0 je konstanta vyjadˇruj´ıc´ı tzv. strmost pˇrenosov´e funkce. V´ yhodou t´eto funkce je, ˇze je spojitˇe derivovateln´a podle sv´ ych vstupn´ıch vah, a nav´ıc lze tyto derivace velmi efektivnˇe vypoˇc´ıtat: ¶0 µ 1 0 (ξ) = σ (ξ) = 1 + e−λξ 1 = − (e−λξ .(−λ)) = (1 + e−λξ )2 e−λξ = λ = (1 + e−λξ )2 1 + e−λξ − 1 = λ = (1 + e−λξ )2 12
µ
1 1 = λ − −λξ 1+e (1 + e−λξ )2 = λ(σ(ξ) − σ 2 (ξ)) = = λσ(ξ).(1 − σ(ξ))
¶ =
(3.3)
Pokud nebude uvedeno, jinak, budeme v dalˇs´ım textu pˇredpokl´adat, ˇze hodnota parametru λ je 1. V ˇca´sti 4.4 se setk´ame tak´e s parametrem λ, ale ve zcela jin´em v´ yznamu. Je tˇreba tyto parametry d˚ uslednˇe odliˇsovat. Vz´ajemn´ ym propojen´ım v´ıce neuron˚ u vznik´a neuronov´a s´ıt’ (obr´azek 3.1). Neuronov´a s´ıt’ m´a obvykle nˇejak´e vstupn´ı a v´ ystupn´ı neurony, kter´e tvoˇr´ı jej´ı vnˇejˇs´ı rozhran´ı. V´ ystupy vstupn´ıch neuron˚ u pˇredstavuj´ı vstupy pro celou s´ıt’ a v´ ystupy v´ ystupn´ıch neuron˚ u pˇredstavuj´ı naopak v´ ystupy cel´e s´ıtˇe. Vstupn´ı neurony nemaj´ı ˇza´dn´e vstupn´ı synapse ani pr´ah a pˇrenosovou funkci. Neurony, kter´e nejsou vstupn´ı ani v´ ystupn´ı, se naz´ yvaj´ı skryt´e.
Obr´azek 3.1: Pˇ r´ıklad neuronov´ e s´ıtˇ e. Synaptick´ a spojen´ı mohou tvoˇrit cykly a dokonce mohou existovat reflexivn´ı vazby neuronu se sebou samotn´ym. Definice: Neuronov´a s´ıt’ je uspoˇr´adan´a sedmice N et = (N, C, I, O, w, b, F ), kde: • N je nepr´azdn´a koneˇcn´a mnoˇzina neuron˚ u • C ⊆ N × N je nepr´azdn´a mnoˇzina orientovan´ ych spoj˚ u - synaps´ı mezi neurony • I ⊆ N je nepr´azdn´a mnoˇzina vstupn´ıch neuron˚ u • O ⊆ N je nepr´azdn´a mnoˇzina v´ ystupn´ıch neuron˚ u • w : C → R je v´ahov´a funkce • b : (N \ I) → R je prahov´a funkce • F : (N \ I) → (R → R) pˇriˇrazuje kaˇzd´emu neuronu jeho pˇrenosovou funkci 13
Znaˇcen´ı • V´ahu synaptick´eho spoje w((i, j)) mezi neurony i a j budeme znaˇcit zkr´acenˇe wij . • Pr´ah b(i) neuronu i budeme t´eˇz znaˇcit bi . • Pˇrenosovou funkci F (i)(ξ) neuronu i budeme znaˇcit fi (ξ). V pˇr´ıpadˇe, ˇze maj´ı vˇsechny neurony stejnou pˇrenosovou funkci, budeme ps´at jen f (ξ). • V´ ystup neuronu i budeme znaˇcit yi . • Pˇri nˇejak´em dan´em seˇrazen´ı vstupn´ıch neuron˚ u i0 , i1 , . . . , il−1 budeme dan´ y vektor jejich v´ ystup˚ u (yi0 , yi1 , . . . , yil−1 ) znaˇcit ~x = (x0 , x1 , . . . , xl−1 ) a naz´ yvat vstupn´ı vektor. • Chceme-li vyznaˇcit, ˇze se hodnoty mˇen´ı v ˇcase, budeme ps´at napˇr. yi (t), wij (t), ~x(t) apod. Na m´ısto toho, aby mˇely neurony pr´ah, b´ yv´a s´ıti ˇcasto pˇrid´an jeden fiktivn´ı vstupn´ı neuron, kter´ y m´a konstantn´ı v´ ystup -1. Tento neuron je propojen se vˇsemi nevstupn´ımi neurony a hodnota v´ahy tˇechto synaps´ı odpov´ıd´a hodnotˇe p˚ uvodn´ıch prah˚ u. Existuje mnoho r˚ uzn´ ych model˚ u neuronov´ ych s´ıt´ı liˇs´ıc´ıch se zp˚ usobem propojen´ı jednotliv´ ych neuron˚ u a svoj´ı funkc´ı. Dle uspoˇra´d´an´ı synaps´ı rozliˇsujeme tzv. dopˇredn´e s´ıtˇe, kter´e neobsahuj´ı cyklick´a spojen´ı, a naopak tzv. rekurentn´ı (anglicky t´eˇz feedback) s´ıtˇe, kter´e cykly obsahuj´ı. Cyklick´a spojen´ı neuron˚ u, jak uvid´ıme d´ale, mohou slouˇzit k delˇs´ımu ’ uchov´av´an´ı informace v s´ıti, rekurentn´ı s´ıt tak m˚ uˇze m´ıt “pamˇet’”. Dle zp˚ usobu pouˇzit´ı m˚ uˇzeme neuronov´e s´ıtˇe rozdˇelit na statick´e a dynamick´e. V´ ypoˇcty statick´e s´ıtˇe jsou jednor´azov´e. V´ ysledek pˇredchoz´ıho v´ ypoˇctu statick´e s´ıtˇe nem´a vliv na v´ ypoˇcet n´asleduj´ıc´ı. Naproti tomu dynamick´a neuronov´a s´ıt’ bude obvykle rekurentn´ı a bude uchov´avat informace z pˇredchoz´ıho v´ ypoˇctu pro jejich vyuˇzit´ı ve v´ ypoˇctech n´asleduj´ıc´ıch. Pˇ r´ıklad: Naˇs´ım c´ılem je pˇredv´ıdat pomoc´ı neuronov´e s´ıtˇe poˇcas´ı v dan´e lokalitˇe na z´akladˇe u ´daj˚ u namˇeˇren´ ych pˇred jedn´ım, dvˇema a tˇremi dny. Budeme - li pouˇz´ıvat sta’ tickou s´ıt , budeme ji muset vybavit zvl´aˇstn´ımi vstupn´ımi neurony pro u ´daje ze vˇsech tˇr´ı pˇredchoz´ıch dn˚ u. Pouˇzijeme - li rekurentn´ı s´ıt’, staˇc´ı n´am pouze vstupn´ı neurony pro u ´daje z pˇredchoz´ıho dne, protoˇze starˇs´ı u ´daje si s´ıt’ mezi jednotliv´ ymi v´ ypoˇcty m˚ uˇze uchov´avat ve sv´ ych skryt´ ych neuronech.
3.2
S´ıt’ zpˇ etn´ eho ˇ s´ıˇ ren´ı
Pop´ıˇseme nyn´ı ˇsiroce pouˇz´ıvan´ y model s´ıtˇe zpˇetn´eho ˇs´ıˇren´ı1 . S´ıt’ zpˇetn´eho ˇs´ıˇren´ı je pˇr´ıkladem tzv. vrstevnat´e s´ıtˇe (viz obr´azek 3.2). Vrstevnat´a s´ıt’ je dopˇredn´a s´ıt’, jej´ıˇz neurony jsou rozdˇeleny do navz´ajem disjunktn´ıch mnoˇzin naz´ yvan´ ych vrstvy. Nult´a vrstva je vrstva vstupn´ı, obsahuje vstupn´ı neurony s´ıtˇe. Neurony v kaˇzd´e dalˇs´ı vrstvˇe jsou propojeny se vˇsemi neurony z vrstvy pˇredchoz´ı. Vrstva 1
anglick´ ym n´azvem backpropagation
14
k − 1 obsahuje v´ ystupn´ı neurony s´ıtˇe a naz´ yv´a se v´ ystupn´ı. Vˇsechny vrstvy kromˇe vstupn´ı a v´ ystupn´ı se naz´ yvaj´ı vrstvy skryt´e. Definice: Neuronov´a s´ıt’ N et = (N, C, I, O, w, b, F ) se naz´ yv´a vrstevnat´a, pokud existuj´ı nepr´azdn´e mnoˇziny N0 , N1 , . . . , Nk−1 ⊆ N (vrstvy) takov´e, ˇze: •
Sk−1 i=0
Ni = N
• pro i 6= j : Ni ∩ Nj = ∅ (vrstvy jsou navz´ajem disjunktn´ı) • N0 = I je tzv. vstupn´ı vrstva • Nk−1 = O je tzv. v´ ystupn´ı vrstva • C = {(i, j) | ∃l : 0 ≤ l ≤ k − 2 ∧ i ∈ Nl ∧ j ∈ Nl+1 } (Synapse vedou mezi po sobˇe n´asleduj´ıc´ımi vrstvami.)
Obr´azek 3.2: Vrstevnat´ a neuronov´ a s´ıt’. Zobrazen´a s´ıt’ m´a vstupn´ı vrstvu, 2 skryt´e vrstvy a jednu v´ ystupn´ı vrstvu. Kaˇzd´a z vrstev m´a ˇctyˇri neurony. V´ ypoˇcet vrstevnat´e s´ıtˇe (tzv. vybavov´an´ı) prob´ıh´a po vrstv´ach. Nejprve je na vstupn´ı vrstvu pˇredloˇzen vstupn´ı vektor ~x. Pot´e jsou vrstvu po vrstvˇe poˇc´ıt´any v´ ystupy neuron˚ u pomoc´ı jiˇz spoˇc´ıtan´ ych v´ ystup˚ u neuron˚ u z pˇredchoz´ı vrstvy. D´ıky tomu, ˇze jsou pˇrenosov´e funkce neline´arn´ı, jsou vrstevnat´e neuronov´e s´ıtˇe schopny poˇc´ıtat neline´arn´ı funkce sv´ ych vstup˚ u. Funkce, kterou s´ıt’ poˇc´ıt´a, je d´ana jej´ı strukturou a hodnotami jej´ıch vah a prah˚ u. Vrstevnat´e neuronov´e s´ıtˇe maj´ı velmi dobr´e aproximaˇcn´ı vlastnosti. Bylo teoreticky dok´az´ano, ˇze pˇri dostateˇcn´em poˇctu skryt´ ych neuron˚ u je vrs’ tevnat´a neuronov´a s´ıt schopna aproximovat libovolnou borelovskou funkci s libovolnou pˇresnost´ı[7]. Znaˇcen´ı 15
• Pˇri nˇejak´em dan´em seˇrazen´ı v´ ystupn´ıch neuron˚ u o0 , o1 , . . . , o|O|−1 vrstevnat´e s´ıtˇe N et budeme vektor jejich v´ ystup˚ u (yo0 , yo1 , . . . , yo|O−1| ) vypoˇc´ıtan´ y pro vstupn´ı vektor ~x znaˇcit N et(~x) a naz´ yvat v´ ystupn´ı vektor N et pro ~x. S´ıt´ı zpˇetn´eho ˇs´ıˇren´ı (chyby) budeme naz´ yvat vrstevnatou s´ıt’, jej´ıˇz ˇcinnost se ˇr´ıd´ı algoritmem[13], kter´ y pop´ıˇseme n´ıˇze. Pro s´ıt’ zpˇetn´eho ˇs´ıˇren´ı plat´ı ∀i ∈ N \ N0 : F (i) = σ (vˇsechny pˇrenosov´e funkce jsou sigmoidy), a tud´ıˇz pro ni m˚ uˇzeme ps´at N et = (N, C, I, O, w, b) a vynechat ze z´apisu F . Typick´e pouˇzit´ı s´ıt´ı zpˇetn´eho ˇs´ıˇren´ı je tzv. uˇcen´ı s uˇcitelem. V takov´em pˇr´ıpadˇe m´ame k dispozici neuronovou s´ıt’ N et a mnoˇzinu tr´enovac´ıch vzor˚ u T = {(~x0 , d~0 ), (~x1 , d~1 ), . . . , (~xn , d~n )}, kde vˇsechna d~m oznaˇcuj´ı vektor poˇzadovan´ ych v´ ystup˚ u m s´ıtˇe N et pro vstupn´ı vektor ~x . Naˇs´ım c´ılem je tedy, aby se pro kaˇzd´e m ∈ {0, 1, . . . , n} hodnota skuteˇcn´eho v´ ystupu s´ıtˇe N et(~xm ) co nejv´ıce bl´ıˇzila d~m . Pro tento u ´ˇcel zav´ad´ıme tzv. chybovou funkci n |O|−1 1X X 2 ~ (N et(~xm )l − dm ET (w, ~ b) = l ) , 2 m=0 l=0
(3.4)
kde w ~ znaˇc´ı vektor vˇsech vah s´ıtˇe a ~b znaˇc´ı vektor vˇsech prah˚ u s´ıtˇe. Naˇs´ım c´ılem je tuto funkci minimalizovat. Pokud budou pˇredkl´adan´e tr´enovac´ı vzory dostateˇcnˇe reprezentativn´ım vzorkem mnoˇziny vˇsech vzor˚ u, se kter´ ymi se s´ıt’ m˚ uˇze v pr˚ ubˇehu sv´e ˇcinnosti setkat, s´ıt’ by se mˇela minimalizac´ı chybov´e funkce nauˇcit generalizovat. To znamen´a, ˇze setk´a-li se s nov´ ym vstupn´ım vzorem, kter´ y se podob´a nˇekter´emu z tr´enovac´ıch vzor˚ u, vyd´a v´ ystup podobn´ y poˇzadovan´emu v´ ystupu pro dotyˇcn´ y tr´enovac´ı vzor. K minimalizaci chybov´e funkce n´am slouˇz´ı algoritmus zpˇetn´eho ˇs´ıˇren´ı chyby. Tento algoritmus patˇr´ı mezi tzv. gradientn´ı metody. To znamen´a, ˇze postupnˇe sniˇzuje hodnotu chybov´e funkce ET (w, ~ ~b) u ´pravami vah a prah˚ u proti smˇeru gradientu chybov´e funkce. To vyˇzaduje, abychom byli schopn´ı co nejefektivnˇeji vypoˇc´ıtat hodnoty parci´aln´ıch derivac´ı ET (w, ~ ~b) podle jednotliv´ ych vah a prah˚ u. Hodnota t´eto parci´aln´ı derivace ud´av´a, jak je tˇreba upravit hodnotu urˇcit´e v´ahy, respektive prahu, abychom sn´ıˇzili hodnotu chybov´e funkce. Uvaˇzme nejprve v´ahy wij tˇech synaps´ı, kter´e vedou do v´ ystupn´ı vrstvy (j ∈ O, i ∈ Nk−2 ) a tr´enovac´ı mnoˇzinu s jednou dvojic´ı vstupn´ıho vzoru a poˇzadovan´eho v´ ystupu ~ T = {(~x, d)}. |O|−1 X ∂ET ∂ 1 = (N et(~x)l − dl )2 = ∂wij ∂wij 2 l=0 µ ¶ 1 ∂ 2 (yj − d(j)) = = ∂wij 2 ∂yj = (yj − d(j)) = ∂wij = (yj − d(j))σ 0 (ξj )ξj0 (wij ) = 16
3.3
= (yj − d(j))λσ(ξj ).(1 − σ(ξj ))ξj0 (wij ) = X ∂ 3.1 = (yj − d(j))λσ(ξj ).(1 − σ(ξj )) yl wlj − bj = ∂wij l∈N k−2
= (yj − d(j))λyj (1 − yj )yi = −δj yi ,
(3.5)
kde d(j) pro j ∈ O znaˇc´ı poˇzadovanou hodnotu v´ ystupu j (tedy d(ol ) = dl ) a kde δj = −(yj − d(j))λyj (1 − yj ) = −
∂ET ∂ξj
(3.6)
naz´ yv´ame chybov´ y ˇclen neuronu j pro j ∈ O. Pˇredpokl´adejme nyn´ı, ˇze zn´ame chybov´e ˇcleny vˇsech neuron˚ u ve vrstvˇe NK . Pro wij splˇ nuj´ıc´ı j ∈ NK−1 , i ∈ NK−2 plat´ı: ∂ET ∂wij
X ∂ET ∂ξl ∂yj yi = ∂ξl ∂yj ∂ξj l∈NK X δl wjl σ 0 (ξj )yi = = =
l∈NK
X
=
δl wjl λyj (1 − yj )yi =
l∈NK
= −δj yi ,
(3.7)
kde podobnˇe jako v 3.6 plat´ı δj = −
X
δl wjl λyj (1 − yj ) = −
l∈NK
∂ET ∂ξj
(3.8)
pro j ∈ NK−1 . Podobnˇe pro pr´ah bj , j ∈ N \ I m˚ uˇzeme odvodit ∂ET = δj ∂bj
(3.9)
Vˇsimnˇeme si, ˇze vˇsechna δj pro j ∈ O je moˇzn´e vypoˇc´ıtat v ˇcase u ´mˇern´em poˇctu neuron˚ u ve v´ ystupn´ı vrstvˇe. Pˇri v´ ypoˇctu δj pro skryt´e neurony j n´asob´ıme v´ahami vˇsech synaps´ı jdouc´ıch z neuronu j a kaˇzdou vahou n´asob´ıme pr´avˇe jednou. Tedy δj pro vˇsechny skryt´e neurony j jsme schopni vypoˇc´ıtat v ˇcase u ´mˇern´em poˇctu vah. Z toho plyne, ˇze jsme schopni v ˇcase line´arn´ım vzhledem k d´elce z´apisu neuronov´e s´ıtˇe vypoˇc´ıtat parci´aln´ı derivaci chybov´e funkce dle vˇsech vah a prah˚ u s´ıtˇe. Algoritmus zpˇetn´eho ˇs´ıˇren´ı chyby neboli backpropagation postupuje tak, ˇze pˇredkl´ad´a s´ıti tr´enovac´ı vzory jeden po druh´em. Pro kaˇzd´ y vypoˇc´ıt´a skuteˇcn´ y v´ ystupn´ı vektor s´ıtˇe. Rozd´ıl mezi poˇzadovan´ ym v´ ystupem a skuteˇcn´ ym v´ ystupem pouˇzije k vypoˇc´ıt´an´ı 17
parci´aln´ıch derivac´ı chybov´e funkce dle vah a prah˚ u s´ıtˇe. V´ahy a prahy n´aslednˇe adaptuje tak, aby sn´ıˇzil hodnotu chybov´e funkce pro dan´ y vzor: wij (t + 1) ← wij (t) + αδj yi
(3.10)
bj (t + 1) ← bj (t) − αδj ,
(3.11)
kde α je mal´a konstanta - parametr uˇcen´ı, kter´ y ud´av´a velikost zmˇeny v kaˇzd´em kroku. Pot´e je pˇredloˇzen dalˇs´ı vzor a cyklus se opakuje. Algoritmus 1 (Backpropagation) 1. Inicializace vˇsech vah a prah˚ u n´ahodn´ ym mal´ ym ˇc´ıslem. 2. Pˇredloˇzme na vstup s´ıtˇe vstupn´ı vzor ~xm a postupnˇe vypoˇctˇeme v´ ystupy yi vˇsech neuron˚ u od prvn´ı skryt´e vrstvy aˇz k vrstvˇe v´ ystupn´ı N et(~x) podle vzorce: f (ξ) = σ(ξ) =
1 1 + e−λξ
3. Vypoˇctˇeme vˇsechny chybov´e ˇcleny δi poˇc´ınaje v´ ystupn´ı vrstvou aˇz po prvn´ı skrytou vrstvu dle vzorce δj = −(yj − d(j))λyj (1 − yj ) pro v´ ystupn´ı vrstvu a dle vzorce δj = −
X
δl wjl λyj (1 − yj )
l∈NK
pro ostatn´ı vrstvy. 4. Upravme v´ahy dle vzorce wij (t + 1) ← wij (t) + αδj yi a prahy dle vzorce bj (t + 1) ← bj (t) − αδj 5. Pokud nejsou splnˇeny podm´ınky ukonˇcen´ı, pokraˇcujeme krokem 2 pro dalˇs´ı vstupn´ı vzor. Podm´ınka ukonˇcen´ı m˚ uˇze b´ yt napˇr´ıklad pˇredem dan´ y poˇcet iterac´ı, kter´e se maj´ı prov´est. M˚ uˇzeme t´eˇz skonˇcit, pokud zjist´ıme, ˇze chybov´a funkce se jiˇz d´ale nesniˇzuje. Pot´e, co je uˇcen´ı ukonˇceno, se s´ıt’ pouˇz´ıv´a k v´ ypoˇctu v´ ystup˚ u pro nov´e vstupy. Jej´ı podoba se pˇritom uˇz nemˇen´ı. S´ıt’ se tedy uˇc´ı offline. S´ıt’ zpˇetn´eho ˇs´ıˇren´ı je tak´e statick´a, tj. pro v´ ypoˇcet v´ ystupu s´ıt’ nepracuje s pˇredchoz´ımi vstupy. Algoritmus m´a ˇradu modifikac´ı, kter´e ale pˇresahuj´ı r´amec t´eto pr´ace.2 2
Jednou z obvykl´ ych modifikac´ı je pˇrid´an´ı takzvan´eho momentu, coˇz je urˇcit´a “setrvaˇcnost” ve zmˇen´ ach vah. Moˇznost pouˇz´ıt tuto modifikaci je obsaˇzena v knihovnˇe Flexinets popisovan´e v pˇr´ıloze A. V´ıce o pouˇzit´ı momentu pˇri uˇcen´ı neuronov´ ych s´ıt´ı viz [3].
18
Algoritmus zpˇetn´eho ˇs´ıˇren´ı sice v obecn´em pˇr´ıpadˇe naj´ıt glob´aln´ı minimum chybov´e funkce, ale ˇcasto dok´aˇze naj´ıt postaˇcuj´ıc´ı minimum lok´aln´ı. Poznamenejme zde, ˇze naj´ıt takov´e v´ahy a prahy s´ıtˇe, pro kter´e bude chybov´a funkce ve sv´em glob´aln´ım minimu3 , je NP-tˇeˇzk´ y probl´em[9]. Gradientn´ı metody a obecnˇe metody, kter´e se snaˇz´ı s´ıt’ postupnˇe adaptovat mal´ ymi u ´pravami, z nichˇz kaˇzd´a sama o sobˇe je zlepˇsuj´ıc´ı, (viz t´eˇz Algoritmy 2 a 3 n´ıˇze), mohou trpˇet probl´emem lok´aln´ıch extr´em˚ u (obr´azek 3.3). Probl´em nastane, pokud nastav´ıme hodnoty vah a prah˚ u tak, ˇze kvalita s´ıtˇe bude ve sv´em lok´aln´ım maximu (V pˇr´ıpadˇe uˇcen´ı s uˇcitelem to znamen´a, ˇze chybov´a funkce bude ve sv´em lok´aln´ım minimu.). Toto maximum ale nemus´ı b´ yt glob´aln´ı a kvalita t´eto s´ıtˇe nemus´ı b´ yt postaˇcuj´ıc´ı. Pˇritom je ale moˇzn´e, ˇze algoritmus uˇz nenab´ız´ı ˇza´dnou zmˇenu vah a prah˚ u, kter´a by tuto s´ıt’ dok´azala zdokonalit. To zp˚ usob´ı ˇze pomoc´ı zvolen´e metody uˇz nedok´aˇzeme lepˇs´ı ˇreˇsen´ı naj´ıt.
Obr´azek 3.3: Probl´ em lok´ aln´ıho minima. Pokud bude v´aha odpov´ıdat vyznaˇcen´emu bodu, jej´ı u ´pravy proti smˇeru gradientu chybov´e funkce ji pˇrivedou do minima, kter´e nen´ı glob´ aln´ı. Pro tento probl´em nezn´ame ˇz´adn´e univerz´aln´ı ˇreˇsen´ı. V nˇekter´ ych pˇr´ıpadech m˚ uˇze ale pomoci adaptace velikosti pˇr´ıpustn´ ych zmˇen vah a prah˚ u s´ıtˇe. Toho v pˇr´ıpadˇe algoritmu zpˇetn´eho ˇs´ıˇren´ı doc´ıl´ıme zv´ yˇsen´ım parametru uˇcen´ı. V t´eto pr´aci se t´ımto probl´emem ale nebudeme hloubˇeji zab´ yvat. Dalˇs´ım probl´emem, se kter´ ym se pˇri pouˇz´ıv´an´ı algoritmu zpˇetn´eho ˇs´ıˇren´ı nˇekdy setk´av´ame, je tzv. pˇreuˇcen´ı. Doch´az´ı k nˇemu v situac´ıch, kdy neuronovou s´ıt’ pˇr´ıliˇs dlouho uˇc´ıme na nepˇr´ıliˇs velk´e mnoˇzinˇe tr´enovac´ıch vzor˚ u, a zp˚ usobuje zhorˇsen´ı schopnosti s´ıtˇe generalizovat. T´ımto probl´emem a moˇznostmi, jak jej omezit, se podrobnˇe zaob´ır´a L. Civ´ın v [3]. Pˇ r´ıklad: Vrat’me se k u ´loze s pˇredpovˇed´ı poˇcas´ı z pˇredchoz´ıho pˇr´ıkladu s pouˇzit´ım statick´e s´ıtˇe. Vstupn´ı vrstvu s´ıtˇe tvoˇr´ı neurony obsahuj´ıc´ı informaci o teplotˇe, rychlosti 3
viz tzv. loading problem, ˇcesky t´eˇz tr´eninkov´ y probl´em nebo probl´em uˇcen´ı
19
a smˇeru vˇetru, intenzitˇe sr´aˇzek, tlaku vzduchu atd. pro kaˇzd´ y ze tˇr´ı pˇredchoz´ıch dn˚ u. V´ ystupn´ı vrstva bude obsahovat pˇredpovˇed’ tˇechto u ´daj˚ u pro den n´asleduj´ıc´ı. V mnoˇzinˇe tr´enovac´ıch dat by mˇela b´ yt zastoupena co nejrozmanitˇejˇs´ı poˇcas´ı (kdyˇz bylo jasno a teplo, kdyˇz padaly kroupy, . . . ) v tomto dni a u ´daje namˇeˇren´e v jim pˇredch´azej´ıc´ıch tˇrech dnech. Pot´e, co pˇredloˇz´ıme s´ıti tyto tr´enovac´ı vzory, m˚ uˇzeme pˇredloˇzit s´ıti na vstup nˇejak´ y dosud ’ nezn´am´ y vzor. S´ıt by mˇela b´ yt schopn´a k tomuto vzoru vydat v´ ystup bl´ızk´ y poˇzadovan´ ym v´ ystup˚ um tr´enovac´ıch vzor˚ u, kter´e byly podobn´e. Toto je pochopitelnˇe velmi zjednoduˇsen´ y pˇr´ıklad. Pˇredpov´ıd´an´ı chov´an´ı tak sloˇzit´eho syst´emu, jako je zemsk´a atmosf´era, je v praxi velmi komplikovan´e a je ot´azka, nakolik by se tato predikce s´ıtˇe bl´ıˇzila skuteˇcn´emu poˇcas´ı.
20
Kapitola 4 Pouˇ zit´ı neuronov´ ych s´ıt´ı ve zpˇ etnovazebn´ em uˇ cen´ı 4.1
Specifika zpˇ etnovazebn´ eho uˇ cen´ı
Umˇel´e neuronov´e s´ıtˇe jsou inspirov´any nervovou soustavou biologick´ ych organism˚ u, ale zp˚ usob pr´ace s´ıt´ı zpˇetn´eho ˇs´ıˇren´ı a obecnˇe uˇcen´ı s uˇcitelem se od ˇcinnosti nervov´e souˇ stavy organism˚ u v mnoh´em z´asadnˇe odliˇsuje. Cinnost neuronov´ ych s´ıt´ı urˇcen´ ych pro zpˇetnovazebn´e uˇcen´ı by se v jist´em smyslu mˇela ˇcinnosti nervov´e soustavy organism˚ u v´ıce podobat. Takov´ato neuronov´a s´ıt’ by se mˇela uˇcit online, tj. f´aze uˇcen´ı a vybavov´an´ı by nemˇela b´ yt striktnˇe oddˇelena. Naopak, s´ıt’ by se mˇela uˇcit v cel´em pr˚ ubˇehu sv´e existence. Pokud bychom zcela trvali na biologick´e opodstatnˇenosti zvolen´eho modelu neuronov´e s´ıtˇe, mˇeli bychom poˇzadovat t´eˇz vlastnost, kterou J. Schmidhuber naz´ yv´a ˇcasovou a proˇ storovou lokalitou algoritmu[14]. Casov´ a lokalita je poˇzadavek, aby zmˇeny vah a prah˚ u v kaˇzd´em kroku z´avisely pouze na informac´ıch o s´ıti z urˇcit´eho pevn´eho ˇcasov´eho okna ˇ pˇredch´azej´ıc´ıho ten kter´ y krok algoritmu, kter´ ym se neuronov´a s´ıt’ ˇr´ıd´ı. Casov´ a lokalita u ´zce souvis´ı s online zp˚ usobem uˇcen´ı. Algoritmus je lok´aln´ı v prostoru, pokud zmˇena kaˇzd´e v´ahy a prahu v kaˇzd´em kroku z´avis´ı pouze na hodnot´ach v´ ystup˚ u sousedn´ıch neuron˚ u. Splˇ nuje-li algoritmus oba tyto poˇzadavky, nazveme jej lok´aln´ım. Pˇr´ıkladem lok´aln´ıho uˇc´ıc´ıho pravidla je Hebbovo pravidlo. Schmidhuber t´eˇz navrhuje jeden lok´aln´ı algoritmus uˇcen´ı v [14]. Zejm´ena poˇzadavek prostorov´e lokality je ale velmi omezuj´ıc´ı (nepˇripouˇst´ı napˇr´ıklad pouˇzit´ı parci´aln´ıch derivac´ı pro u ´pravy vah), a proto jej nebudeme vˇzdy dodrˇzovat. Pokud m´a b´ yt s´ıt’ schopna zvaˇzovat pro rozhodnut´ı v dan´em okamˇziku i vstupy pozorovan´e dˇr´ıve a dˇr´ıve vykonan´e akce, pak mus´ı s´ıt’ obsahovat zpˇetn´e vazby, kter´e umoˇzn´ı, aby se v n´ı nˇejak´ ym zp˚ usobem uchovaly hodnoty z pˇredch´azej´ıc´ıch v´ ypoˇct˚ u, a mus´ı b´ yt dynamick´a. U rekurentn´ı dynamick´e s´ıtˇe se v jednom kroku poˇc´ıt´a nov´a hodnota v´ ystupu kaˇzd´eho neuronu pouze z pˇredeˇsl´ ych hodnot bezprostˇrednˇe soused´ıc´ıch neuron˚ u (na rozd´ıl od vrstevnat´ ych s´ıt´ı, kde se nov´a hodnota vstupu ˇs´ıˇr´ı pˇres vˇsechny vrstvy aˇz na v´ ystup). Z hlediska implementace tak bude pro synchronnˇe aktualizovan´e rekurentn´ı s´ıtˇe tˇreba zvl´aˇst’ uchov´avat star´e a novˇe vypoˇc´ıtan´e hodnoty v´ ystup˚ u neuron˚ u, abychom si novˇe vypoˇc´ıtan´ ymi v´ ysledky nepˇrepsali hodnoty v´ ystup˚ u neuron˚ u, kter´e jeˇstˇe budeme potˇrebovat k v´ ypoˇctu jin´ ych hodnot. Pokud v rekurentn´ı s´ıti nen´ı pˇr´ım´e spojen´ı vstupn´ıch 21
a v´ ystupn´ıch neuron˚ u a pˇritom chceme, aby s´ıt’ dok´azala na nov´e vstupy okamˇzitˇe reagovat, je potˇreba pro kaˇzd´ y ˇcasov´ y krok prostˇred´ı poˇc´ıtat v´ıce krok˚ u rekurentn´ı s´ıtˇe. Pro u ´ˇcely zpˇetnovazebn´eho uˇcen´ı mohou pˇrich´azet v u ´vahu i dalˇs´ı, m´enˇe obvykl´e modely neuronov´ ych s´ıt´ı (spiking s´ıtˇe, kompetiˇcn´ı s´ıtˇe aj.). Techniky klasick´ ych vrstevnat´ ych s´ıt´ı typu zpˇetn´eho ˇs´ıˇren´ı n´am nicm´enˇe mohou b´ yt velmi uˇziteˇcn´e. Jsou totiˇz pomˇernˇe jednoduch´e a jejich vlastnosti jsou dobˇre prozkouman´e, a proto se jimi m˚ uˇzeme inspirovat pˇri stavbˇe s´ıt´ı pro zpˇetnovazebn´e uˇcen´ı. V n´asleduj´ıc´ım jsou diskutov´any r˚ uzn´e modely neuronov´ ych s´ıt´ı pouˇziteln´ ych pro ´ zpˇetnovazebn´e uˇcen´ı. Uspˇeˇsnost tˇechto model˚ u byla testov´ana na u ´loze koˇristi a dravce v simul´atoru, kter´ y jsme speci´alnˇe pro tento u ´ˇcel vyvinuli. Agent zde bude vystupovat v roli koˇristi, kter´a se mus´ı vyh´ ybat dravc˚ um a z´aroveˇ n vyhled´avat pro sebe potravu, aby ´ pˇreˇzila co nejd´ele. Uloha je pˇresnˇeji pops´ana spolu s experimenty v ˇc´asti 5.
4.2
S´ıt’ s n´ ahodn´ ymi zmˇ enami
Nejprve pˇredstav´ıme pomˇernˇe naivn´ı model vrstevnat´e s´ıtˇe, jej´ımiˇz vstupy jsou senzorick´e vstupy agenta a jej´ıˇz v´ ystupy k´oduj´ı agentovy akce. Agentova odmˇena do s´ıtˇe pˇr´ımo nevstupuje. S´ıt’ je zpoˇc´atku n´ahodnˇe inicializov´ana a uˇc´ı se za bˇehu agenta. V kaˇzd´em kroku probˇehne drobn´a n´ahodn´a zmˇena vah a prah˚ u. Pokud zmˇena pˇrinese v pˇr´ıˇst´ım kroku zv´ yˇsen´ı agentovy odmˇeny, tato zmˇena se zafixuje. S´ıt’ si tedy mus´ı uchov´avat pro old kaˇzdou v´ahu a pr´ah jejich aktu´aln´ı hodnotu bj , wij a pˇredchoz´ı hodnotu bold ale j , wij . D´ algoritmus mus´ı uchov´avat odmˇenu rold z pˇredchoz´ıho kroku pro porovn´an´ı s odmˇenou v n´asleduj´ıc´ım kroku r. Algoritmus 2 ˇ ´I ODMENY ˇ ˇ 1. (INICIALIZACE PREDCHOZ NULOU A VSECH VAH A PRAH˚ U ´ ´ C ˇ ´ISLEM) NAHODN YM rold ← 0 old ∀i, j : wij ← wij ← random() old ∀j : bj ← bj ← random() 2. naˇcten´ı nov´ ych vstup˚ u z prostˇred´ı ~x a odmˇeny r ˇ ´INOSU NAPOSLED VYKONANYCH ´ ´ 3. (VYHODNOCEN´I PR UPRAV VAH ˚ A PRAHU) pokud r > rold old ← wij ∀i, j : wij old ∀j : bj ← bj jinak old ∀i, j : wij ← wij ∀j : bj ← bold j ´ ´I ODMENY ˇ ˇ S ˇ´I POROVNAN ´ ´I) 4. (UCHOVAN PRO POZDEJ old r ←r 22
´ ´ ZMENA ˇ ˇ ˚ 5. (NAHODN A VSECH VAH A PRAHU) ∀i, j : wij ← wij + random(2M axChange) − M axChange ∀j : bj ← bj + random(2M axChange) − M axChange 6. spoˇc´ıtat v´ ystup s´ıtˇe N et(~x) 7. vykonat akci k´odovanou v´ ystupem s´ıtˇe N et(~x) 8. pokud agentova ˇcinnost neskonˇcila, pˇrej´ıt na krok 2 Konstanta M axChange zde oznaˇcuje v absolutn´ı hodnotˇe maxim´aln´ı pˇr´ıpustnou zmˇenu vah a prah˚ u. Idea motivuj´ıc´ı tento algoritmus je, ˇze po zmˇenˇe pˇrin´aˇsej´ıc´ı “zlepˇsen´ı” s´ıtˇe je pravdˇepodobn´e, ˇze se zv´ yˇs´ı z´ıskan´a odmˇena v bezprostˇrednˇe n´asleduj´ıc´ım kroku. Ponech´an´ım zmˇen zvyˇsuj´ıc´ıch okamˇzitou odmˇenu by se pak s´ıt’ mohla v ˇcase zlepˇsovat. V t´eto z´akladn´ı podobˇe ale, jak ukazuj´ı experimenty proveden´e v 5.1.3, algoritmus nefunguje. V iteraci n´asleduj´ıc´ı po vykon´an´ı akce zlepˇsuj´ıc´ı schopnost s´ıtˇe ˇreˇsit u ´lohu, je pravdˇepodobnost vzr˚ ustu z´ıskan´e odmˇeny vˇetˇs´ı neˇz 50%. Aby vˇsak algoritmus fungoval dostateˇcnˇe dobˇre, potˇrebovali bychom, aby platilo jin´e tvrzen´ı. Totiˇz, ˇze vzrostla-li z´ıskan´a odmˇena oproti posledn´ı iteraci, potom je pravdˇepodobnost, ˇze posledn´ı zmˇena pˇrinesla zlepˇsen´ı s´ıtˇe, vyˇsˇs´ı neˇz 50%. Toto ale zˇrejmˇe neplat´ı, protoˇze zlepˇsuj´ıc´ı zmˇeny s´ıtˇe jsou m´enˇe pravdˇepodobn´e neˇz zmˇeny zhorˇsuj´ıc´ı, a ˇc´ım lepˇs´ı je jiˇz dosaˇzen´e ˇreˇsen´ı, t´ım je pravdˇepodobnˇejˇs´ı, ˇze n´ahodn´a zmˇena s´ıt’ zhorˇs´ı. Naopak, pokud dojde ke zmˇenˇe zlepˇsuj´ıc´ı s´ıt’, zlepˇsen´ı nemus´ı pˇrin´est v´ ysledek uˇz v n´asleduj´ıc´ı iteraci algoritmu. V netrivi´aln´ıch u ´loh´ach obvykle doch´az´ı k tomu, ˇze d˚ usledky agentovy akce se v podobˇe odmˇeny nebo trestu projev´ı aˇz pozdˇeji. Tyto tzv. opoˇzdˇen´e odmˇeny1 se ale tento ”naivn´ı” algoritmus nesnaˇz´ı vysledovat (viz experimenty popsan´e v ˇc´asti 5.1.3). Uveden´ y probl´em s opoˇzdˇen´ ymi odmˇenami bychom mohli ˇc´asteˇcnˇe vyˇreˇsit t´ım, ˇze bychom n´ahodnou zmˇenu vah a prah˚ u umoˇznili pouze jednou za n iterac´ı (krok˚ u simulace). Po vykon´an´ı n iterac´ı bychom porovnali celkovou odmˇenu za tˇechto n iterac´ı rlast s odmˇenou z´ıskanou za n pˇredchoz´ıch iterac´ı rold . V pˇr´ıpadˇe, ˇze rlast je vyˇsˇs´ı neˇz rold , bychom posledn´ı u ´pravu vah a prah˚ u ponechali, v opaˇcn´em pˇr´ıpadˇe bychom ji odvolali. Tato modifikace je zahrnuta v algoritmu 3. Algoritmus 3 ˇ ´ITACE ˇ A PREDCHOZ ˇ ´I ODMENY ˇ ˇ 1. (INICIALIZACE C NULOU A VSECH VAH ˚ ´ ´ ˇ ´ A PRAHU NAHODNYM CISLEM) rold ← 0, rlast ← 0 count ← 0 old ← random() ∀i, j : wij ← wij old ∀j : bj ← bj ← random() 2. naˇcten´ı nov´ ych vstup˚ u z prostˇred´ı ~x a odmˇeny r 1
v angliˇctinˇe delayed rewards
23
ˇ ´ITACE ˇ A PRIPS ˇ ´ ´I NOVE ´ ODMENY) ˇ 3. (ITERACE C AN count ← count + 1 last last r ←r +r 4. pokud count = n ˇ ´INOSU NAPOSLED VYKONANYCH ´ ´ (a) (VYHODNOCEN´I PR UPRAV VAH ˚ A PRAHU) pokud rlast > rold old ∀i, j : wij ← wij old ∀j : bj ← bj jinak old ∀i, j : wij ← wij old ∀j : bj ← bj ´ ´I C ˇ ´ITACE ˇ A RESET PROMENN ˇ ´ ˇ (b) (VYNULOVAN YCH PRO ODMENU) count ← 0 rold ← rlast rlast ← 0 ´ ´ ZMENA ˇ ˇ (c) (NAHODN A VSECH VAH A PRAH˚ U) ∀i, j : wij ← wij + random(2M axChange) − M axChange ∀j : bj ← bj + random(2M axChange) − M axChange 5. spoˇc´ıtat v´ ystup N et(~x) 6. vykonat akci k´odovanou v´ ystupem s´ıtˇe N et(~x) 7. pokud agentova ˇcinnost neskonˇcila, pˇrej´ıt na krok 2 V mnoha experimentech, kter´e jsme provedli (viz 5.1.3), se nakonec u ´spˇeˇsnost s´ıtˇe ust´alila na urˇcit´e suboptim´aln´ı hodnotˇe. V pˇr´ıpadˇe n´ızk´e maxim´aln´ı pˇr´ıpustn´e zmˇeny vah m˚ uˇze s´ıt’ uv´ıznout v lok´aln´ım minimu. Ve vˇetˇsinˇe pˇr´ıpad˚ u se sp´ıˇs jedn´a o to, ˇze ˇc´ım je s´ıt’ kvalitnˇejˇs´ı, t´ım je niˇzˇs´ı pravdˇepodobnost, ˇze zvolen´a zmˇena ji bude zlepˇsovat. To vede k ust´alen´ı kvality s´ıtˇe v urˇcit´e rovnov´aze.
4.3 4.3.1
S´ıtˇ e s modelem svˇ eta Modeluj´ıc´ı s´ıtˇ e
S´ıt’ popsan´a v pˇredchoz´ı ˇc´asti nem´a pˇr´ıstup k hodnotˇe odmˇeny a nijak explicitnˇe si nemodeluje z´akony, jak´ ymi se ˇr´ıd´ı prostˇred´ı. Mohlo by ale b´ yt uˇziteˇcn´e, kdyby agent znal, jak´ y dopad maj´ı jeho akce na stav prostˇred´ı a pˇredevˇs´ım, jak z´avis´ı z´ıskan´a odmˇena na tom, v jak´e situaci vykonal kterou akci. Z t´eto znalosti by pak bylo moˇzn´e odvodit ide´aln´ı chov´an´ı agenta vedouc´ı k dosaˇzen´ı maxim´aln´ı odmˇeny. Zˇrejm´a je analogie tohoto ˇ ek se nejprve nauˇc´ı, jak svˇet funguje, k ˇcemu slouˇz´ı postupu s lidsk´ ym myˇslen´ım. Clovˇ r˚ uzn´e n´astroje, atd., a potom vyuˇz´ıv´a t´eto znalosti k dosaˇzen´ı sv´ ych c´ıl˚ u.
24
Agentovu intern´ı reprezentaci znalost´ı o tom, jak se chov´a prostˇred´ı, nazveme model svˇeta (nebo t´eˇz model prostˇred´ı). Je-li touto reprezentac´ı neuronov´a s´ıt’, nazveme ji modeluj´ıc´ı2 . Naproti tomu s´ıti, kter´a na z´akladˇe vstup˚ u generuje agentovy akce, budeme ˇr´ıkat ˇr´ıdic´ı3 . Uvaˇzme nyn´ı velmi zjednoduˇsen´ y hypotetick´ y model neuronov´e s´ıtˇe, kter´ y budeme po’ stupnˇe zdokonalovat. Pˇredpokl´adejme v prvn´ım pˇribl´ıˇzen´ı, ˇze modeluj´ıc´ı s´ıt je vrstevnat´a s´ıt’, jej´ıˇz vstupy reprezentuj´ı stav prostˇred´ı a agentovu akci a jej´ıˇz v´ ystupy reprezentuj´ı odmˇenu, ke kter´e tato akce povede. Tato s´ıt’ uchov´av´a znalost o tom, jakou odmˇenu pˇrinese vykon´an´ı urˇcit´e akce v urˇcit´em stavu prostˇred´ı. M´ame-li dostateˇcnou historii pozorov´an´ı n´asledk˚ u r˚ uzn´ ych akc´ı v r˚ uzn´ ych stavech, m˚ uˇzeme pouˇz´ıt k uˇcen´ı takov´e s´ıtˇe napˇr´ıklad algoritmus backpropagation. Tato pozorov´an´ı m˚ uˇzeme z´ıskat selektivn´ım v´ ybˇerem dostateˇcnˇe reprezentativn´ıho poˇctu situac´ı a vyzkouˇsen´ım r˚ uzn´ ych akc´ı agenta v tˇechto situac´ıch. Je moˇzn´e t´eˇz nechat agenta automaticky prozkoumat odmˇeny za r˚ uzn´e akce v r˚ uzn´ ych situac´ıch tak, ˇze vyˇclen´ıme nˇejak´ y ˇcas, ve kter´em se bude agent chovat n´ahodnˇe a pˇritom se uˇcit. Jelikoˇz se ale chceme zamˇeˇrit na online uˇcen´ı, budeme se zaob´ırat pˇredevˇs´ım moˇznost´ı uˇcit agenta v cel´em pr˚ ubˇehu jeho ˇcinnosti, pˇriˇcemˇz se setk´ame s jiˇz zm´ınˇen´ ym dilematem mezi explorac´ı nov´ ych moˇznost´ı a exploatac´ı dosavadn´ıch znalost´ı. M´ame-li pˇripravenu modeluj´ıc´ı s´ıt’, m˚ uˇzeme ji zkusit vyuˇz´ıt pro efektivnˇejˇs´ı ˇr´ızen´ı agenta. Necht’ se agent nach´az´ı ve stavu s. Pro kaˇzdou proveditelnou akci a ∈ A(s) m˚ uˇzeme pomoc´ı pˇripraven´e modeluj´ıc´ı s´ıtˇe predikovat odmˇenu. Pokud by moˇzn´ ych akc´ı byl mal´ y koneˇcn´ y poˇcet, mohli bychom ohodnotit modeluj´ıc´ı s´ıt´ı vˇsechny tyto akce a vybrat tu, kter´a pˇrinese nejvˇetˇs´ı okamˇzitou odmˇenu. Moˇzn´ ych akc´ı bude ale ˇcasto velk´ y poˇcet, potenci´alnˇe nekoneˇcno (napˇr´ıklad v pˇr´ıpadˇe, ˇze agentem je robot, jehoˇz motor se m˚ uˇze pohybovat jakoukoli rychlost´ı v rozmez´ı 0 - 10 km/hod). V takov´emto pˇr´ıpadˇe bychom velmi ocenili algoritmus, kter´ y by pro libovolnou vrstevnatou s´ıt’ s jedn´ım v´ ystupn´ım neuronem dok´azal naj´ıt vstupn´ı vektor ~x, kter´ y maximalizuje v´ ystup y v´ ystupn´ıho neuronu. Ukaˇzme si, jak by se takov´ yto algoritmus dal snadno zobecnit, aby pro dan´ y pevnˇe zvolen´ y stav s naˇsel akci a, kter´a povede k z´ısk´an´ı maxim´aln´ı odmˇeny modeluj´ıc´ı s´ıtˇe. Mˇejme vrstevnatou neuronovou s´ıt’ N et1 = (N, C, I, O, w, b). Oznaˇcme ty jej´ı vstupn´ı neurony, kter´e reprezentuj´ı stav prostˇred´ı, jako st0 , st1 , . . . , stm . Necht’ v´ ystupy tˇechto neuron˚ u ve stavu s jsou c0 , c1 , . . . , cm . Vstupn´ı neurony s´ıtˇe N et1, kter´e reprezentuj´ı def. agentovu akci, oznaˇc´ıme jako A0 , A1 , . . . , An . Definujme novou neuronovou s´ıt’ N et2 = N et1c0 ,c1 ,...,cm = (N 0 , C 0 , I 0 , O0 , w0 , b0 ) (viz obr´azek 4.1), kde • N 0 = N \ {st0 , st1 , . . . , stm } • C 0 = C ∩ (N 0 × N 0 ), kde × znaˇc´ı kart´ezsk´ y souˇcin mnoˇzin • I 0 = I \ {st0 , st1 , . . . , stm } • O0 = O 2 3
anglicky model network anglicky control network
25
0 • wij = wij pro (i, j) ∈ C 0 ½ P bi − m : i ∈ N1 0 l=0 cl wstl i • bi = bi : i ∈ N2 , . . . , Nk−1
Obr´azek 4.1: S´ıt’ pro pevn´ y stav prostˇ red´ı. Neurony reprezentuj´ıc´ı stav prostˇred´ı odstran´ıme tak, ˇze jejich pevn´e pˇr´ıspˇevky k potenci´ alu neuron˚ u prvn´ı skryt´e vrstvy zahr’ neme do prah˚ u tˇechto neuron˚ u. Obr´azek zn´azorˇ nuje s´ıt s jednou skrytou vrstvou a ˇctyˇrmi vstupn´ımi neurony obou typ˚ u. Z neuronov´e s´ıtˇe N et1 jsme odstranili ty neurony, kter´e k´odovaly stav prostˇred´ı, a prahy neuron˚ u ve vrstvˇe nad vstupn´ı vrstvou jsme upravili tak, aby obsahovaly zafixovan´ y stav prostˇred´ı s. Vˇsimnˇeme si, ˇze algoritmicky jsme pro danou s´ıt’ N et1 schopni sestrojit N et2 v line´arn´ım ˇcase vzhledem k |N | + |C|4 . Pˇredpokl´adejme, ˇze jsme pouˇzili algoritmus, kter´ y naˇsel takov´ y vstupn´ı vektor ~x2 = (yA0 , yA1 , . . . , yAn ) s´ıtˇe N et2, kter´ y maximalizuje v´ ystup N et2(~x2 ). Aktivujme vstupn´ı neurony (st0 , st1 , . . . , stm , A0 , A1 , . . . , An ) s´ıtˇe N et1 vstupn´ım vektorem ~x1 = (c0 , c1 , . . . , cm , yA0 , yA1 , . . . , yAn ). Chceme dok´azat, ˇze hodnota v´ ystupu N et1(~x1 ) bude maxim´aln´ı pro dan´ y stav prostˇred´ı s. K tomu n´am postaˇc´ı, kdyˇz pro libovoln´ y vstupn´ı vektor ~x = (x0 , x1 , . . . , xn ) s´ıtˇe N et2 bude platit: N et1(c0 , c1 , . . . , cm , x0 , x1 , . . . , xn ) = N et1c0 ,c1 ,...,cm (x0 , x1 , . . . , xn )
(4.1)
Pˇredloˇzme tyto dva vektory na vstup s´ıtˇe N et1 respektive N et2. Pro libovoln´ y neuron i ∈ N1 plat´ı: ÃÃ n ! Ã m ! ! ÃÃ n ! ! X X X yi = σ xl wAl i + cl wstl i − bi = σ xl wAl i − b0i = yi0 (4.2) l=0
l=0
l=0
4
Zde pˇredpokl´ad´ame, ˇze hodnoty, se kter´ ymi poˇc´ıt´ame, nejsou libovoln´a re´aln´a ˇc´ısla, ale ˇc´ısla s pevnˇe omezen´ ym poˇctem desetinn´ ych m´ıst, kter´a lze reprezentovat Turingov´ ym strojem.
26
Tedy v´ ystupy vˇsech neuron˚ u prvn´ı (skryt´e) vrstvy s´ıt´ı N et1 a N et2 se rovnaj´ı. V´ ystupy neuron˚ u kaˇzd´e n´asleduj´ıc´ı vrstvy z´avis´ı jen na v´ ystupech neuron˚ u pˇredchoz´ı vrstvy, vah´ach synaps´ı a praz´ıch neuron˚ u. Tedy i v´ ystupy obou s´ıt´ı jsou shodn´e. Uk´azali jsme tedy, ˇze probl´em nalezen´ı agentovy akce, kter´a v dan´em stavu prostˇred´ı povede k nejvyˇsˇs´ı oˇcek´avan´e okamˇzit´e odmˇenˇe, lze v line´arn´ım ˇcase pˇrev´est na probl´em nalezen´ı glob´aln´ıho maxima vrstevnat´e neuronov´e s´ıtˇe. Jelikoˇz druh´ y probl´em je speci´aln´ı pˇr´ıpad toho prvn´ıho, funguje pˇrevoditelnost i v opaˇcn´em smˇeru. Oba probl´emy maj´ı tedy asymptoticky stejnou sloˇzitost, nebot’ zˇrejmˇe nem˚ uˇze existovat algoritmus, kter´ y by ˇreˇsil tyto probl´emy rychleji neˇz v line´arn´ım ˇcase, a sloˇzitost pˇreveden´ı u ´loh tak m˚ uˇzeme zanedbat. Jak ale plyne z dalˇs´ıho, pro ˇreˇsen´ı tˇechto probl´em˚ u naneˇstˇest´ı nen´ı zn´am efektivn´ı algoritmus.
4.3.2
Zvolit akci je tˇ eˇ zk´ e
Abychom mohli u ´lohu form´alnˇe definovat pro Turing˚ uv stroj, omez´ıme se v t´eto ˇc´asti pouze na pr´aci s cel´ ymi ˇcisly. Hodnoty vˇsech vah a prah˚ u budou cel´a ˇc´ısla, povol´ıme pouze vstupy s´ıtˇe z mnoˇziny {0, 1} a budeme pouˇz´ıvat pˇrenosovou funkci definovanou takto: ½ 1 : ξ≥0 (4.3) f (ξ) = 0 : ξ<0 Takovouto s´ıt’ budeme naz´ yvat s´ıt´ı prahov´ ych hodnot. Poloˇzme si ot´azku, zda existuje ’ algoritmus, kter´ y by pro neuronovou s´ıt s jedn´ım v´ ystupn´ım neuronem dok´azal naj´ıt vstupn´ı vektor ~x, kter´ y maximalizuje v´ ystup y tohoto neuronu. V pˇr´ıpadˇe s´ıtˇe prahov´ ych hodnot je tato u ´loha ekvivalentn´ı nalezen´ı takov´eho vstupn´ıho vektoru, pro kter´ y bude v´ ystup s´ıtˇe roven jedn´e, pokud takov´ yto vstupn´ı vektor existuje. Nejprve zformulujme ot´azku jako rozhodovac´ı probl´em. Probl´ em maxim´ aln´ıho v´ ystupu: Instance: Celoˇc´ıseln´a vrstevnat´a neuronov´a s´ıt’ N et s jedn´ım v´ ystupn´ım neuronem, dvˇema skryt´ ymi vrstvami a n vstupn´ımi neurony Ot´azka: Existuje vstupn´ı vektor ~x = (x0 , x1 , . . . , xn−1 ) takov´ y, ˇze xj ∈ {0, 1} pro 0 ≤ j < n a N et(~x) = 1? Tento rozhodovac´ı probl´em je z hlediska ˇreˇsitelnosti v polynomi´aln´ım ˇcase nejv´ yˇse tak tˇeˇzk´ y, jako zjistit, jak vypad´a dotyˇcn´ y vstupn´ı vektor. Zn´ame - li totiˇz vektor, ve kter´em v´ ystup s´ıtˇe nab´ yv´a sv´eho maxima, dok´aˇzeme pro nˇej v polynomi´aln´ım ˇcase vypoˇc´ıst hodnotu v´ ystupu s´ıtˇe a porovnat ji s ˇc´ıslem 1. Vˇ eta 1 Probl´em maxim´aln´ıho v´ystupu je NP-´ upln´y. D˚ ukaz: Nejprve dok´aˇzeme, ˇze probl´em je NP-tˇeˇzk´ y a potom, ze patˇr´ı do mnoˇziny NP. Dok´aˇzeme, ˇze probl´em 3-SAT lze v polynomi´aln´ım ˇcase pˇrev´est na probl´em maxim´aln´ıho v´ ystupu. Protoˇze o tomto probl´emu je jiˇz dok´az´ano, ˇze je NP-tˇeˇzk´ y, dok´aˇzeme t´ımto pˇrevodem, ˇze i probl´em maxim´aln´ıho v´ ystupu je NP-tˇeˇzk´ y. Pˇripomeˇ nme, ˇze probl´em 3SAT odpov´ıd´a na ot´azku, zda libovoln´a dan´a formule v´ yrokov´e logiky ϕ v konjunktivn´ı 27
norm´aln´ı formˇe, kter´a se skl´ad´a z klausul´ı o pr´avˇe tˇrech liter´alech, je splniteln´a, tj. zda existuje pravdivostn´ı ohodnocen´ı jej´ıch v´ yrokov´ ych promˇenn´ ych ² takov´e, ˇze ² |= ϕ. Mˇejme formuli ϕ ≡ (A11 ∨ A12 ∨ A13 ) ∧ (A21 ∨ A22 ∨ A23 ) ∧ . . . ∧ (Av1 ∨ Av2 ∨ Av3 ) v konjunktivn´ı norm´aln´ı formˇe, kde vˇsechna A•• jsou liter´aly, tj. jsou ve tvaru X nebo ¬X, kde X oznaˇcuje v´ yrokovou promˇennou. Klausulemi naz´ yv´ame disjunkce liter´al˚ u (A•0 ∨ A•1 ∨ A•2 ). Zkonstruujme celoˇc´ıslenou vrstevnatou neuronovou s´ıt’ N et = (N, C, I, O, w, b, F ) (obr´azek 4.2), tak, ˇze vstupn´ı vrstva bude reprezentovat v´ yrokov´e promˇenn´e, prvn´ı skryt´a vrstva liter´aly, druh´a skryt´a vrstva klausule a v´ ystupn´ı neuron celou formuli ϕ: • N = I ∪ N1 ∪ N2 ∪ O (dvˇe skryt´e vrstvy) • I = {X| X je v´ yrokov´a promˇenn´a obsaˇzen´a v ϕ} • N1 = {YL | L je liter´al obsaˇzen´ y ve ϕ, Li 6≡ Lj → YLi 6= YLj } - Zde z technick´ ych d˚ uvod˚ u liter´aly samotn´e neztotoˇzn ˇujeme s neurony, nebot’ by t´ım neurony pro pozitivn´ı liter´aly splynuly s neurony pro v´ yrokov´e promˇenn´e z I. Budeme ˇr´ıkat, ˇze neuron YL odpov´ıd´a liter´alu L. • N2 = {Z| Z je klausule obsaˇzen´a ve ϕ} • O = {o} (pouze jeden v´ ystupn´ı neuron) • C = (I × N1 ) ∪ (N1 × N2 ) ∪ (N2 × O) • wij = 0 pro i ∈ I, j ∈ N1 pokud liter´al odpov´ıdaj´ıc´ı neuronu j neobsahuje v´ yrokovou promˇennou i. • wiYi = 1 pro i ∈ I, Yi ∈ N1 - synapse mezi neuronem pro pozitivn´ı liter´al a v nˇem obsaˇzenou v´ yrokovou promˇennou • wiYj = −1 pro j ≡ ¬i, i ∈ I, Yj ∈ N1 - synapse mezi neuronem pro negativn´ı liter´al a v nˇem obsaˇzenou v´ yrokovou promˇennou • wij = 1 pro i ∈ N1 , j ∈ N2 pokud je liter´al pˇr´ısluˇsej´ıc´ı i obsaˇzen v klausuli j. • wij = 0 pro i ∈ N1 , j ∈ N2 pokud liter´al pˇr´ısluˇsej´ıc´ı i nen´ı obsaˇzen v klausuli j. • wio = 1 pro i ∈ N2 . • bi = 1 pro i ∈ N1 , pokud i pˇr´ısluˇs´ı pozitivn´ımu liter´alu. • bi = 0 pro i ∈ N1 , pokud i pˇr´ısluˇs´ı negativn´ımu liter´alu. • bi = 1 pro i ∈ N2 . • bo = v
28
Obr´azek 4.2: Pˇ r´ıklad s´ıtˇ e zkonstruovan´ e popsan´ ym postupem pro formuli ϕ ≡ (A∨B ∨¬C)∧(A∨¬B ∨¬C). Synapse s nulovou v´ahou pro pˇrehlednost nejsou zakresleny. Mˇejme ohodnocen´ı ² v´ yrokov´ ych promˇenn´ ych formule ϕ. Vstupn´ı vektor ~x(²) vytvoˇr´ıme pˇr´ımoˇcaˇre tak, aby pˇriˇrazoval vstupn´ım neuron˚ um i ∈ I s´ıtˇe N et hodnotu 1, pokud ²(i) ≡ T RU E a hodnotu 0 pokud ²(i) ≡ F ALSE. Pro neuron i ∈ N1 odpov´ıdaj´ıc´ı pozitivn´ımu liter´alu j, kter´ y je totoˇzn´ y s neuronem v´ yrokovou promˇennou j plat´ı: yi = 1 ⇔
X
yk wki ≥ bi ⇔ yj = 1 ⇔ ²(i) ≡ T RU E
(4.4)
k∈I
Pro neuron i ∈ N1 odpov´ıdaj´ıc´ı negativn´ımu liter´alu ¬j, kde j ∈ I plat´ı: yi = 1 ⇔
X
yk wki ≥ bi ⇔ −(yj ) ≥ 0 ⇔ yj = 0 ⇔ ²(i) ≡ F ALSE
(4.5)
k∈I
Tedy v´ ystupy neuron˚ u v prvn´ı skryt´e vrstvˇe odpov´ıdaj´ı pravdivostn´ı hodnotˇe odpov´ıdaj´ıc´ıch liter´al˚ u. Pro neuron i ∈ N2 , i ≡ A∨B ∨C, kde A, B, C jsou liter´aly, kter´ ym odpov´ıdaj´ı neurony j, k, l ∈ N1 plat´ı: X
yi = 1 ⇔
ym wmi ≥ bi ⇔ yj + yk + yl ≥ 1
(4.6)
m∈N1
Tedy neurony pro klausule maj´ı jedniˇckov´e v´ ystupy, pr´avˇe kdyˇz aspoˇ n jeden z jejich liter´al˚ u je pˇri ohodnocen´ı ² splnˇen. Tedy v´ ystupy neuron˚ u v druh´e skryt´e vrstvˇe odpov´ıdaj´ı pravdivostn´ı hodnotˇe klausul´ı. Pro v´ ystupn´ı neuron o plat´ı: 29
yo = 1 ⇔
X i∈N2
yi wio ≥ bi ⇔
X i∈N2
yi ≥ v ⇔
X
yi ≥ |N2 |
(4.7)
i∈N2
Tedy v´ ystup s´ıtˇe neuronu yo je roven jedn´e, pr´avˇe kdyˇz jsou vˇsechny klausule splnˇeny. Plat´ı tedy ² |= ϕ pr´avˇe kdyˇz N et(~x(²)) = 1. Tedy existuje splˇ nuj´ıc´ı ohodnocen´ı formule ϕ, pr´avˇe kdyˇz existuje vstupn´ı vektor ~x ∈ {0, 1}|I| , pro kter´ y N et(~x) = 1. Pˇrevedli jsme probl´em 3-SAT v polynomi´aln´ım ˇcase na probl´em maxim´aln´ıho v´ ystupu. Tedy probl´em maxim´aln´ıho v´ ystupu je NP-tˇeˇzk´ y. Zb´ yv´a dok´azat, ˇze probl´em maxim´aln´ıho v´ ystupu patˇr´ı do mnoˇziny NP, tedy ˇze je v polynomi´aln´ım ˇcase ˇreˇsiteln´ y pomoc´ı nedeterministick´eho Turingova stroje. Turing˚ uv stroj vybere kandid´ata ~x na maximalizuj´ıc´ı vstup s´ıtˇe v line´arn´ım ˇcase vzhledem k poˇctu vstup˚ u s´ıtˇe. K ovˇeˇren´ı, zda N et(~x) = 1, staˇc´ı odsimulovat jeden v´ ypoˇcet neuronov´e s´ıtˇe, coˇz lze v line´arn´ım ˇcase vzhledem k poˇctu synaps´ı s´ıtˇe. Cel´ y probl´em tedy lze vyˇreˇsit nedeterministick´ ym Turingov´ ym strojem v line´arn´ım ˇcase vzhledem k d´elce instance u ´lohy. ¤ V´ıme, ˇze probl´em maxim´aln´ıho v´ ystupu je NP-´ upln´a u ´loha pro pˇr´ıpad s´ıtˇe prahov´ ych hodnot. V praxi ale obvykle pouˇz´ıv´ame neuronovou s´ıt’ se sigmoid´aln´ı pˇrenosovou funkc´ı, kter´a pracuje s vybranou reprezentac´ı pseudore´aln´ ych ˇc´ısel. M˚ uˇzeme pouˇz´ıvat napˇr´ıklad ˇc´ısla s pevn´ ym poˇctem desetinn´ ych m´ıst nebo ˇc´ısla s plovouc´ı desetinnou ˇca´rkou a pevnou d´elkou mantisy a exponentu. Pˇrenosov´a funkce pak nen´ı pˇresnˇe rovna sigmoidˇe, ale nˇejak´e jej´ı aproximaci. Na takovouto s´ıt’ se v´ yˇse uveden´ y d˚ ukaz nevztahuje, lze ale pˇredpokl´adat, ˇze i pro tuto s´ıt’ bude v obecn´em pˇr´ıpadˇe nalezen´ı vstupu, kter´ y maximalizuje v´ ystup s´ıtˇe, velmi teˇzk´e.
4.3.3
Backpropagation pro ˇ r´ızen´ı
Vrat’me se zpˇet k popsan´e hypotetick´e modeluj´ıc´ı s´ıti. V obecn´em pˇr´ıpadˇe nejsme schopni pro urˇcit´ y stav prostˇred´ı efektivnˇe naj´ıt agentovu akci, kter´a pˇrinese nejvyˇsˇs´ı okamˇzitou odmˇenu. M˚ uˇzeme ale s pomoc´ı algoritmu zpˇetn´eho ˇs´ıˇren´ı spoˇc´ıtat parci´aln´ı derivace v´ ystupn´ıho neuronu podle vstup˚ u cel´e s´ıtˇe. To m˚ uˇzeme pouˇz´ıt k tomu, abychom vylepˇsovali zvolenou agentovu akci, dokud nebude modeluj´ıc´ı s´ıt’ v lok´aln´ım maximu vzhledem k t´eto akci. Podobn´ ym smˇerem se vydal ve sv´e pr´aci Paul Munro [11]. Jeho ideou je pouˇz´ıt dvˇe neuronov´e s´ıtˇe, N et1 a N et2 (obr´azek 4.3). Tyto s´ıtˇe propoj´ıme do jedn´e s´ıtˇe N et tak, ˇze vstupy s´ıtˇe N et1 budou vstupy cel´e s´ıtˇe N et, v´ ystupy s´ıtˇe N et1 tvoˇr´ı vstupy s´ıtˇe N et2 a v´ ystupy s´ıtˇe N et2 jsou v´ ystupy cel´e s´ıtˇe N et. Zat´ımco v´ahy a prahy s´ıtˇe N et2 jsou ’ pevnˇe d´any, s´ıt N et1 m˚ uˇzeme uˇcit vytv´aˇret vhodn´e vstupy pro N et2 tak, aby cel´a s´ıt’ N et d´avala poˇzadovan´e v´ ystupy. Za N et2 m˚ uˇzeme vz´ıt modeluj´ıc´ı s´ıt’ nauˇcenou klasick´ ym algoritmem zpˇetn´eho ˇs´ıˇren´ı, kter´a pˇredv´ıd´a okamˇzitou odmˇenu v z´avislosti na agentovˇe akci (a stavu prostˇred´ı). S´ıt’ N et1 je v naˇsem pˇr´ıpadˇe ˇr´ıdic´ı s´ıt’ - popisuje agentovo chov´an´ı. M˚ uˇzeme ji uˇcit pomoc´ı upraven´e gradientn´ı metody. K tomu je zapotˇreb´ı zn´at hodnoty parci´aln´ıch derivac´ı 30
Obr´azek 4.3: Sch´ ema Munroovy s´ıtˇ e. modeluj´ıc´ı s´ıt’ Net2 m˚ uˇze b´yt uˇcena algoritmem ’ zpˇetn´eho ˇs´ıˇren´ı a ˇr´ıdic´ı s´ıt Net1 ve smˇeru gradientu odmˇeny predikovan´e s´ıt´ı Net2. v´ ystupu s´ıtˇe N et (oˇcek´avan´e odmˇeny) podle vah a prah˚ u s´ıtˇe N et1. Pomoc´ı algoritmu zpˇetn´eho ˇs´ıˇren´ı m˚ uˇzeme vypoˇc´ıst parci´aln´ı derivace v´ ystupu N et podle vstup˚ u N et2. Tyto parci´aln´ı derivace pak m˚ uˇzeme propagovat zpˇet do s´ıtˇe N et1, abychom z´ıskali parci´aln´ı derivace v´ ystupu N et podle vah a prah˚ u N et1. V pˇr´ıpadˇe, kdyˇz N et m´a jedin´ y v´ ystup pˇredstavuj´ıc´ı oˇcek´avanou odmˇenu, budeme upravovat vˇsechny v´ahy a prahy s´ıtˇe N et1 ve smˇeru gradientu v´ ystupu podle tˇechto vah, ˇc´ımˇz budeme zvyˇsovat odmˇenu dosaˇzenou v n´asleduj´ıc´ım kroku. Takto m˚ uˇzeme v principu nauˇcit agenta poˇzadovan´emu chov´an´ı, aniˇz bychom k tomu potˇrebovali jakoukoli informaci od vnˇejˇs´ıho uˇcitele. Cel´a s´ıt’ N et pak bude reprezentovat chov´an´ı soustavy agent - prostˇred´ı. Autor toto demonstroval na jednoduch´em pˇr´ıkladu. Nejprve byla s´ıt’ N et2 nauˇcena poˇc´ıtat funkci sinus. Pot´e byla u ´spˇeˇsnˇe uˇcena s´ıt’ N et1 ’ ’ tak, aby cel´a s´ıt N et poˇc´ıtala funkci cosinus. S´ıt N et1 se tak musela nauˇcit transformaci, kter´a pro kaˇzd´ y vstup x vypoˇc´ıt´a takov´ y v´ ystup y, ˇze sin(y) = cos(x). Bohuˇzel m´a tento pˇr´ıstup ˇradu probl´em˚ u: 1. Pouˇzijeme-li k uˇcen´ı s´ıt´ı N et1 a N et2 algoritmus zpˇetn´eho ˇs´ıˇren´ı, budeme nar´aˇzet na probl´em s lok´aln´ımi extr´emy, kter´ y m´a kaˇzd´a gradientn´ı metoda. 2. Pokud jsou obˇe s´ıtˇe, modeluj´ıc´ı i ˇr´ıdic´ı, s´ıtˇe vrstevnat´e, jak je pops´ano v´ yˇse, agent nem´a moˇznost si cokoli pamatovat. To m˚ uˇze znemoˇznit algoritmu vyvinout u ´ˇcinnou strategii, pokud se agent pohybuje v nemarkovsk´em prostˇred´ı. 3. V´ yˇse pouˇz´ıvan´a modeluj´ıc´ı s´ıt’ predikuje pouze okamˇzitou odmˇenu, tj. odmˇenu, kterou agent z´ısk´a v bezprostˇrednˇe n´asleduj´ıc´ım kroku. Pokud se agent chov´a tak, aby maximalizoval okamˇzitou odmˇenu, nedok´aˇze z´ısk´avat opoˇzdˇen´e odmˇeny a jeho strategie m˚ uˇze b´ yt velmi ne´ uˇcinn´a. Probl´emu ˇc´ıslo 1 se v t´eto pr´aci vˇenovat nebudeme. Probl´em 2 se pokus´ıme pˇrekonat s pomoc´ı rekurentn´ıch s´ıt´ı pozdˇeji. Ukaˇzme si nyn´ı moˇznost, jak se lze vypoˇr´adat se probl´emem tˇret´ım s pomoc´ı vrstevnat´e s´ıtˇe.
4.4
Algoritmus TD(λ)
Algoritmus pro uˇcen´ı neuronov´ ych s´ıt´ı TD(λ) byl navrhnut R. Suttonem v [18] a proslavil se pˇredevˇs´ım d´ıky G. Tesaurovi, kter´ y jej s u ´spˇechem pouˇzil k vytvoˇren´ı algoritmu 31
TD-Gammon pro hru Backgammon (ˇcesky t´eˇz vrhc´aby)[19], jehoˇz verze 2.0 se v roce 1992 t´emˇeˇr vyrovnala lidsk´ ym ˇsampion˚ um. Pˇredstavme si algoritmus TD(λ) na pˇr´ıkladu programu TD-Gammon. Backgammon je starobyl´a deskov´a hra pro 2 hr´aˇce (obr´azek 4.4). C´ılem hr´aˇc˚ u je dopravit do u ´krytu vˇsechny sv´e kameny dˇr´ıve, neˇz tak uˇcin´ı soupeˇr. Hr´aˇci postupuj´ı kameny po jednorozmˇern´e dr´aze smˇerem proti sobˇe. Moˇznosti pohybu jsou d´any hodem dvou kostek. Jedn´a se tedy o hru nedeterministickou. V kaˇzd´em tahu hr´aˇc pohybuje dvˇema kameny (lze i dvakr´at t´ım stejn´ ym), o tolik pol´ı, kolik je na kostk´ach. Pokud hr´aˇc pˇrem´ıst´ı sv˚ uj k´amen na pole, kde se nach´az´ı pr´avˇe jeden k´amen soupeˇre, vyhod´ı ho a soupeˇr˚ uv k´amen se vrac´ı na zaˇca´tek dr´ahy. Zv´ıtˇez´ı-li hr´aˇc, aniˇz by mu soupeˇr vyhodil jedin´ y k´amen, dos´ahl tzv. gammon a vyhr´av´a dvojn´asobek s´azky. Vstoupit na pole, kde m´a soupeˇr v´ıce neˇz jeden k´amen, je zak´az´ano, d´ıky ˇcemuˇz ve hˇre vznik´a prostor pro ˇradu zaj´ımav´ ych strategi´ı. Nav´ıc existuje tzv. n´asob´ıc´ı kostka (doubling cube), kter´a umoˇzn ˇuje hr´aˇci zdvojn´asobit s´azku hry, pokud mysl´ı, ˇze je jeho v´ yhra pravdˇepodobn´a. Zdvojn´asob´ı-li jeden z hr´aˇc˚ u s´azku, kostka je pˇred´ana soupeˇri, kter´ y m˚ uˇze kdykoli pozdˇeji s´azku opˇet zdvojn´asobit a pˇredat kostku prvn´ımu hr´aˇci.
Obr´azek 4.4: Hra Backgammon. (Obr´azek poˇr´ızen z www.wikipedia.org, kde lze t´eˇz nal´ezt veˇrejnou licenci k jeho pouˇz´ıv´an´ı.) Hra Backgammon je z pohledu umˇel´e inteligence pomˇernˇe sloˇzit´a. Poˇcet moˇzn´ ych stav˚ u 20 desky je pˇribliˇznˇe 10 , coˇz znemoˇzn ˇuje v souˇcasn´e dobˇe vyˇreˇsen´ı hry prohled´an´ım vˇsech moˇzn´ ych cest. Prohled´av´an´ı na nˇekolik tah˚ u dopˇredu pouˇz´ıvan´e s u ´spˇechem napˇr. u ˇsachu zde tak´e nen´ı vhodn´e, nebot’ n´ahodnost zp˚ usoben´a pouˇz´ıv´an´ım kostek velmi zvyˇsuje poˇcet moˇzn´ ych pˇrechod˚ u mez´ı stavy (tzv. branching factor). Hod dvˇema kostkami m˚ uˇze m´ıt 21 r˚ uzn´ ych v´ ysledk˚ u a na kaˇzd´ y z nich pˇripad´a v pr˚ umˇeru 20 moˇzn´ ych tah˚ u. V kaˇzd´em p˚ ultahu se tedy hra vˇetv´ı v pr˚ umˇeru nˇekoliksetkr´at (pro srovn´an´ı, u ˇsach˚ u je to tˇricetkr´at aˇz ˇctyˇricetkr´at). Rozhodneme-li se ke hˇre pˇristoupit pomoc´ı paradigmatu zpˇetnovazebn´eho uˇcen´ı, sloˇzitost hry n´am znemoˇzn´ı pouˇzit´ı algoritm˚ u dynamick´eho programov´an´ı a Q-uˇcen´ı (Bellmanovo proklet´ı dimensionality). V naˇs´ı terminologii, budeme nuceni pouˇz´ıt nˇejakou formu kompaktn´ı reprezentace. 32
Algoritmus TD(λ), je zaloˇzen na predikˇcn´ı metodˇe “Temporal Difference learning”. Tento princip, ˇcasto vyuˇz´ıvan´ y pro zpˇetnovazebn´e uˇcen´ı, se d´a struˇcnˇe charakterizovat jako postupn´e zpˇresˇ nov´an´ı modelu pro nˇejakou predikci pomoc´ı jin´e, dokonalejˇs´ı predikce. Sutton[18] uv´ad´ı tento pˇr´ıklad. Pˇ r´ıklad: Pˇredpokl´adejme, ˇze naˇs´ım c´ılem je pˇredpovˇedˇet poˇcas´ı na sobotu a ˇze m´ame modely, kter´e pˇredpov´ıdaj´ı sobotn´ı poˇcas´ı na z´akladˇe poˇcas´ı r˚ uzn´ ych dn˚ u v t´ ydnu. Pˇri klasick´em uˇcen´ı s uˇcitelem bychom poˇckali do soboty a podle skuteˇcn´eho sobotn´ıho poˇcas´ı opravili vˇsechny modely tak, aby l´epe predikovaly. Napˇr´ıklad v p´atek uˇz ale m´ame k dispozici mnohem lepˇs´ı odhad poˇcas´ı na sobotu, a tak jiˇz m˚ uˇzeme zdokonalit pondˇeln´ı model podle v´ ysledk˚ u p´ateˇcn´ıho modelu. Pro zaj´ımavost dodejme, ˇze “Temporal Difference learning” se t´eˇz tˇeˇs´ı z´ajmu neurolog˚ u, nebot’ bylo zjiˇstˇeno, ˇze “Temporal Difference learning” n´apadnˇe pˇripom´ın´a chov´an´ı nˇekter´ ych syst´em˚ u ve zv´ıˇrec´ım mozku[17]. Tesaur˚ uv TD-Gammon pouˇz´ıv´a vrstevnatou neuronovou s´ıt’ (N, C, I, O, w, b) se sigmoid´aln´ı pˇrenosovou funkc´ı a gradientn´ı metodu pro jej´ı uˇcen´ı. Derivaci v´ ystupu neuronu l l ∈ N podle v´ahy wij budeme znaˇcit pij a derivaci podle prahu bi budeme znaˇcit pli . Vstupn´ı neurony t´eto s´ıtˇe k´oduj´ı polohu vˇsech kamen˚ u na desce a informaci o tom, kter´ y hr´aˇc je na ˇradˇe. V´ ystupn´ı vrstva m´a ˇctyˇri neurony, kter´e pˇredpov´ıdaj´ı ˇctyˇri moˇzn´e v´ ysledky partie - v´ıtˇezstv´ı prvn´ıho / druh´eho hr´aˇce a gammon pro prvn´ıho / druh´eho hr´aˇce. S´ıt’ se tud´ıˇz uˇc´ı poˇc´ıtat funkci, kter´a ohodnot´ı v´ yhodnost situace na desce pro prvn´ıho a druh´eho hr´aˇce. S´ıt’ je zpoˇc´atku inicializov´ana n´ahodnˇe. Postup uˇcen´ı s´ıtˇe je potom n´asleduj´ıc´ı: V kaˇzd´em ˇcasov´em okamˇziku t (okamˇziky odpov´ıdaj´ı tah˚ um obou stran, tj. co p˚ ultah, to jeden ˇcasov´ y okamˇzik) je s´ıti pˇredloˇzen vstupn´ı vektor ~x(t) k´oduj´ıc´ı stav hrac´ı desky. S´ıt’ pro tento vstup vypoˇc´ıt´a (v naˇsem pˇr´ıpadˇe ˇctyˇrsloˇzkov´ y) v´ ystupn´ı vektor ~y (t). Pot´e jsou vypoˇcteny parci´aln´ı derivace v´ ystupn´ıch neuron˚ u s´ıtˇe podle hodnot vah plij a prah˚ u l pj pro l ∈ O a (i, j) ∈ C, respektive i ∈ N \ I pro pˇr´ıpad prah˚ u. V kaˇzd´em kroku jsou pak upraveny v´ahy a prahy s´ıtˇe tak, aby se predikce v´ ysledku partie v pˇredchoz´ım kroku pˇribl´ıˇzila t´e aktu´aln´ı: t X X wij (t + 1) = wij (t) + α (yl (t + 1) − yl (t)) λt−m plij (m)
bj (t + 1) = bj (t) + α
X
(4.8)
m=0
l∈O
(yl (t + 1) − yl (t))
t X
λt−m plj (m),
(4.9)
m=0
l∈O
kde α > 0 je parametr uˇcen´ı, kter´ y ud´av´a velikost u ´pravy v kaˇzd´em kroku (podobnˇe jako u algoritmu zpˇetn´eho ˇs´ıˇren´ı). Parametr λ ud´av´a, nakolik se chyba predikce propaguje zpˇet do minulosti. Pro λ = 0 se chyba propaguje pouze do pˇredchoz´ıho okamˇziku, zat´ımco pro λ = 1 se propaguje do minulosti bez omezen´ı. Hodnoty mezi 0 a 1 pak pˇredstavuj´ı kompromis mezi tˇemito dvˇema extr´emy. Jedinou odmˇenu respektive trest dost´av´a agent na z´avˇer partie v podobˇe ˇctyˇrsloˇzkov´eho vektoru ~z, jehoˇz sloˇzky odpov´ıdaj´ı ˇctyˇrem moˇzn´ ym v´ ysledk˚ um z´apasu. To je zajiˇstˇeno t´ım, ˇze v´ahy s´ıtˇe jsou na konci partie upraveny m´ısto podle rovnice 4.8 a 33
4.9 dle vzorc˚ u: t X X wij (t + 1) = wij (t) + α (zl − yl (t)) λt−m plij (m) m=0
l∈O
bj (t + 1) = bj (t) + α
(4.10)
t X X (zl − yl (t)) λt−m plj (m)
(4.11)
m=0
l∈O
P Jak zjistil Sutton[18], pro v´ ypoˇcet tm=0 λt−m plij (m) nen´ı nutn´e si v pamˇeti uchov´avat celou historii plij (t) pro vˇsechna i, j, l. Je-li totiˇz hodnota t´eto sumy pro nˇejak´a i, j, l v ˇcase t rovna S(t)lij , potom:
S(t +
1)lij
=
t+1 X
λt+1−m plij (m) =
m=0
=
plij (t
=
plij (t
+ 1) + λ
t X
λt−m plij (m) =
m=0
+ 1) + λS(t)lij
(4.12)
Podobnˇe lze pro vˇsechny prahy s´ıtˇe odvodit S(t + 1)lj = plj (t + 1) + λS(t)lj , kde S(t)lj =
Pt m=0
(4.13)
λt−m plj (m).
Bˇehem uˇcen´ı ovl´ad´a stejn´a neuronov´a s´ıt’ oba hr´aˇce. V kaˇzd´em p˚ ultahu ohodnot´ı s´ıt’ vˇsechny moˇzn´e tahy. Hr´aˇc, kter´ y je na ˇradˇe, pak zvol´ı ten tah, kter´ y pro nˇej m´a nejvyˇsˇs´ı oˇcek´avan´ y v´ ynos. Program se takto uˇc´ı hran´ım sama proti sobˇe. Jelikoˇz s´ıt’ samotn´a nereprezentuje ˇcinnost n´asob´ıc´ı kostky, v pr˚ ubˇehu uˇcen´ı s n´asob´ıc´ı kostkou nepracujeme. Pˇri samotn´e hˇre pak vyuˇz´ıv´a program teoretick´ y vzorec, kter´ y z odhadovan´eho v´ ysledku partie, kter´ y poskytne neuronov´a s´ıt’, rozhodne, zda se vyplat´ı zdvojn´asobit s´azku. O v´ ysledc´ıch tohoto algoritmu Tesauro p´ıˇse, ˇze: “Pomˇernˇe pˇrekvapiv´e bylo, ˇze dokonce i pˇri experimentech bez jak´ ychkoli poˇc´ateˇcn´ıch znalost´ı s pˇr´ım´ ym k´odov´an´ım stavu hrac´ı desky prob´ıhalo v´ yznamn´e mnoˇzstv´ı uˇcen´ı. ’ Bˇehem prvn´ıch nˇekolika tis´ıc tr´enovac´ıch her se s´ıt nauˇcila mnoˇzstv´ı z´akladn´ıch strategi´ı a taktik, kupˇr´ıkladu vyhazovat soupeˇrovy kameny nebo upˇrednostˇ novat bezpeˇcn´e pozice. Po nˇekolika tis´ıc´ıch tr´enovac´ıch her se pak objevily komplikovanˇejˇs´ı koncepty. Pravdˇepodobnˇe nejpovzbudivˇejˇs´ı bylo zjiˇstˇen´ı, ˇze s´ıt’ mˇela dobrou schopnost kategorizace v tom smyslu, ˇze pokud jsme zvyˇsovali velikost s´ıtˇe a dobu uˇcen´ı, v´ ykonnost s´ıtˇe se z´asadnˇe zvyˇsovala. Nejvyˇsˇs´ı v´ ykonnosti jsme dos´ahli se s´ıt´ı o 40 skryt´ ych neuronech, kter´a byla tr´enov´ana 200 000 her. Tato s´ıt’ dos´ahla u ´rovnˇe nadpr˚ umˇern´eho hr´aˇce pˇribliˇznˇe stejn´e kvality jako program Neurogammon (pˇredchoz´ı autor˚ uv program zaloˇzen´ y na neuronov´e s´ıti uˇcen´e s uˇcitelem, kter´ y zv´ıtˇezil v roce 1989 na mezin´arodn´ı poˇc´ıtaˇcov´e olympi´adˇe - pozn. autor). Podrobn´a anal´ yza vah jdouc´ıch ze vstupn´ıch do skryt´ ych neuron˚ u v t´eto s´ıt´ı odhalila zaj´ımav´e vzory pozitivn´ıch a negativn´ıch vah hrubˇe odpov´ıdaj´ıc´ıch tomu, co by znalostn´ı 34
inˇzen´ yr nazval pˇr´ıznaky uˇziteˇcn´e pro hru. S´ıt’ byla tedy schopn´a automaticky objevovat podstatn´e elementy, coˇz je jeden z dlouhodob´ ych c´ıl˚ u v´ yzkumu uˇcen´ı v oblasti her jiˇz od Samuelova programu pro hran´ı d´amy.” Pot´e se Tesauro pokusil program jeˇstˇe zdokonalit t´ım, ˇze na vstup neuronov´e s´ıtˇe pˇridal ruˇcnˇe vybran´e pˇr´ıznaky odpov´ıdaj´ıc´ı podstatn´ ym informac´ım o stavu hry (verze 1.0). To pˇrineslo z´asadn´ı zv´ yˇsen´ı v´ ykonnosti, kter´ ym program pˇrekonal vˇsechny tehdejˇs´ı programy pro hran´ı Backgammonu a stal se d˚ ustojn´ ym soupeˇrem lidsk´ ych ˇsampi´on˚ u. Pozdˇejˇs´ı verze 2.0 byla d´ale zdokonalena t´ım, ˇze program prohled´aval na dva p˚ ultahy dopˇredu a zohledˇ noval pˇri v´ ybˇeru nejlepˇs´ıho tahu i soupeˇr˚ uv protitah.
4.4.1
Pˇ r´ınos TD-Gammonu
TD(λ) tedy nedˇelaj´ı probl´em opoˇzdˇen´e odmˇeny, dokonce s ˇcasov´ ym odstupem i stovek krok˚ u. Tento model neuronov´e s´ıtˇe ˇreˇs´ı probl´em 3 popsan´ y v ˇca´sti 4.3.3 tak, ˇze modeluj´ıc´ı s´ıt’ nepˇredv´ıd´a pouze okamˇzitou odmˇenu v pˇr´ıˇst´ım kole, ale uˇc´ı se predikovat celkovou kumulativn´ı odmˇenu za partii. D´ale poznamenejme, ˇze v terminologii zpˇetnovazebn´eho uˇcen´ı vstupem t´eto neuronov´e s´ıtˇe nen´ı cel´ y popis stavu s ∈ S, kter´ y m´a agent k dispozici, kdyˇz se rozhoduje vykonat nˇejakou akci. Chyb´ı zde totiˇz informace o hodnot´ach, kter´e jsou na kostk´ach. To n´am ale nevad´ı, protoˇze modeluj´ıc´ı s´ıt’ n´am ohodnocuje “mezistav”, kter´ y nastane pot´e, co agent vykon´a urˇcitou akci, ale pˇredt´ım, neˇz se znovu h´az´ı kostkami. A v´ ysledek hodu kostkami je zcela n´ahodn´ y, nez´avis´ı na ˇz´adn´e pˇredchoz´ı ud´alosti. D´ıky tomu m˚ uˇzeme predikovat kumulativn´ı odmˇenu pro kaˇzdou moˇznou agentovu akci. Algoritmus umoˇzn ˇuje uˇcen´ı online i offline - uˇcen´ı m˚ uˇzeme v urˇcit´em okamˇziku pˇreruˇsit, ’ a nebo se s´ıt m˚ uˇze uˇcit cel´em pr˚ ubˇehu sv´eho ˇzivota. Pouˇzit´ı TD(λ) v Backgammonov´em programu TD-Gammon byl bezesporu velk´ y u ´spˇech v oblasti zpˇetnovazebn´eho uˇcen´ı. Zvaˇzme, ˇc´ım je u ´spˇech TD-Gammonu zp˚ usoben a nakolik je tento pˇr´ıstup aplikovateln´ y i pro jin´e u ´lohy. Vlastnosti hry Backgammon zp˚ usobuj´ı, ˇze je tato hra v mnoha ohledech ide´aln´ı pˇr´ıleˇzitost´ı pro aplikaci algoritmu TD(λ) [19]. 1. Jedn´a se o pravdˇepodobnostn´ı Markovsk´ y rozhodovac´ı probl´em - znalost o aktu´aln´ım stavu hrac´ı desky je vˇs´ım, co agent potˇrebuje zn´at ke spr´avn´emu rozhodov´an´ı. Proto zde vystaˇc´ıme s vrstevnatou neuronovou s´ıt´ı bez zpˇetn´ ych vazeb. 2. Poˇcet aplikovateln´ ych akc´ı v kaˇzd´em stavu je koneˇcn´ y a pomˇernˇe n´ızk´ y. To umoˇzn ˇuje vypoˇc´ıtat oˇcek´avan´e v´ ynosy pro kaˇzd´ y moˇzn´ y tah (ve verzi 2.0 dokonce pro kaˇzdou kombinaci tah - protitah) a zvolit tu nejlepˇs´ı. D´ıky tomu se tak´e obejdeme bez ˇr´ıdic´ı s´ıtˇe, kter´a by volila pro kaˇzdou situaci agentovu akci. 3. Je-li agent-hr´aˇc v urˇcit´em stavu (tj. kameny jsou v urˇcit´e poloze na desce a na kostk´ach jsou urˇcit´e dvˇe hodnoty), pak n´asledek kaˇzd´e akce (tj. stav desky po vykon´an´ı urˇcit´eho tahu) je deterministick´ y a je n´am pˇredem zn´am´ y. Agent se tedy nemus´ı uˇcit, jak se projevuj´ı jeho z´asahy do prostˇred´ı (modeluj´ıc´ı s´ıt’ nemus´ı predikovat, jak agentovy akce mˇen´ı prostˇred´ı), a m˚ uˇze ohodnotit v´ ysledek kaˇzd´e sv´e moˇzn´e akce. 35
4. Pouˇzit´ı kostek do hry vn´aˇs´ı n´ahodnost, d´ıky kter´e ta stejn´a strategie m˚ uˇze v r˚ uzn´ ych parti´ıch v´est do r˚ uzn´ ych situac´ı. D´ıky tomu doch´az´ı od poˇc´atku uˇcen´ı automaticky k prohled´av´an´ı (exploraci) velk´eho mnoˇzstv´ı stav˚ u. To pom´ah´a vyhnout se situaci, kter´a m˚ uˇze nastat napˇr. pokud se program uˇc´ı hr´at hru D´ama s´am proti sobˇe, a to, ˇze oba soupeˇri dos´ahnou pouze n´ızkou u ´roveˇ n a pˇrestanou se zdokonalovat, protoˇze oba v kaˇzd´e partii st´ale proch´azej´ı stejn´ ymi stavy. 5. I pˇri velmi ˇspatn´em zp˚ usobu hry nakonec vˇzdy jeden z hr´aˇc˚ u zv´ıtˇez´ı a z´ısk´a odmˇenu. D´ıky tomu se i poˇc´ateˇcn´ı agenti ˇr´ızen´ı n´ahodnˇe inicializovanou s´ıt´ı mohou nauˇcit, jak zv´ıtˇezit (n´ahodnˇe se chovaj´ıc´ı agenti obvykle dohr´ali v nˇekolika tis´ıc´ıch tah˚ u, zat´ımco norm´aln´ı hra trv´a v pr˚ umˇeru 50-60 tah˚ u). Kdybychom nechali hr´at proti sobˇe dva n´ahodnˇe se chovaj´ıc´ı algoritmy napˇr´ıklad ˇsachy, hra by pravdˇepodobnˇe st´ale konˇcila rem´ızou a agenti by se nikdy nemusili nauˇcit, za co lze odmˇenu z´ıskat.
4.4.2
TD(λ) v nemarkovsk´ em prostˇ red´ı
R´adi bychom aplikovali algoritmus TD(λ) i na sloˇzitˇejˇs´ı u ´lohy zpˇetnovazebn´eho uˇcen´ı, jako je napˇr´ıklad u ´loha koˇristi a dravce popsan´a v 5.1. Tato u ´loha uˇz nem´a vhodn´e vlastnosti popsan´e v´ yˇse, kter´e m´a hra Backgammon. Algoritmus budeme tedy muset pro naˇsi u ´lohu pˇrizp˚ usobit. 1. Nejedn´a se o Markovsk´ y rozhodovac´ı probl´em, protoˇze pro pˇredpovˇed’ budouc´ıho chov´an´ı prostˇred´ı jsou podstatn´e informace z minulosti, kter´e agent v dan´em okamˇziku nem´a na vstupech (Napˇr´ıklad pokud zkonzumuje agent vˇsechnu potravu na urˇcit´em m´ıstˇe a popojde o jedno pole vpˇred, nem´a jiˇz na vstupu informaci o tom, ˇze se na poli za n´ım nenach´az´ı potrava. Tato informace je pˇritom relevantn´ı pro predikci stavu, do kter´eho se m˚ uˇze agent v budoucnosti dostat.). Moˇzn´ ym ˇreˇsen´ım tohoto probl´emu by bylo pˇridat rekurentn´ı spoje, d´ıky kter´ ym by s´ıt’ z´ıskala urˇcitou kr´atkodobou pamˇet’. Rekurentn´ım s´ıt´ım se budeme vˇenovat v n´asleduj´ıc´ı ˇca´sti. V nˇekter´em pˇr´ıpadˇe m˚ uˇzeme tento probl´em t´eˇz ˇreˇsit tak, ˇze bychom agentovi umˇele pˇridali nov´e vstupy, kter´e by obsahovaly uˇziteˇcn´e informace z historie (napˇr´ıklad zda v posledn´ıch pˇeti kroc´ıch spatˇril dravce). My jsme se ale rozhodli ponechat vrstevnatou s´ıt’ se vstupy tak, jak jsou pops´any v 5.1 s t´ım, ˇze lze oˇcek´avat niˇzˇs´ı u ´spˇeˇsnost algoritmu oproti jeho pouˇzit´ı v Markovsk´em rozhodovac´ım procesu. 2. Jelikoˇz agentovy v´ ystupy v naˇs´ı u ´loze jsou spojit´e (kaˇzd´ y ze tˇr´ı vstup˚ u m˚ uˇze b´ yt libovoln´e ˇc´ıslo z intervalu [0, 1]), nebude moˇzn´e ohodnotit vˇsechny moˇzn´e akce a naj´ıt tu, kter´e odpov´ıd´a nejvˇetˇs´ı oˇcek´avan´a odmˇena. Budeme moci pouze heuristicky vybrat nˇejakou suboptim´aln´ı akci. Prvn´ı pˇr´ıstup, kter´ y zvol´ıme, bude diskretizovat moˇzn´e hodnoty vstup˚ u rovnomˇern´ ym rozdˇelen´ım intervalu [0, 1] na mnoˇzinu l hodnot. Takto napˇr´ıklad pro l = 3 budeme uvaˇzovat pouze vstupy z mnoˇziny {0, 0.5, 1}. Mus´ıme zde ale d´at pozor na v´ ypoˇcetn´ı sloˇzitost, nebot’ vyzkouˇsen´ı vˇsech variac´ı k vstup˚ u, kaˇzd´eho z mnoˇziny l hodnot bude u ´mˇern´e lk . Dalˇs´ım moˇzn´ ym ˇreˇsen´ım je napˇr´ıklad vygenerovat n´ahodnˇe 100 moˇzn´ ych akc´ı a pot´e vykonat tu, pro kterou je oˇcek´avan´a odmˇena nejvyˇsˇs´ı. 36
3. V pˇr´ıpade naˇs´ı u ´lohy agent nezn´a pˇredem, jak´ y dopad jeho akce zanech´a na prostˇred´ı. To je z´asadn´ı odliˇsnost oproti hˇre Backgammon, kter´a si vyˇza´d´a zmˇenu zp˚ usobu pr´ace s neuronovou s´ıt´ı. Vrstevnat´a neuronov´a s´ıt’, kterou pouˇzijeme, nebude reprezentovat odhad odmˇeny pro dan´ y stav, ale pro kombinaci stav × akce. Funkci, kterou s´ıt’ poˇc´ıt´a, tedy interpretujeme jako odhad kumulativn´ı odmˇeny z´ıskan´e bˇehem zbytku ˇzivotn´ıho cyklu agenta, kter´ y je v urˇcit´e situaci a vykon´a v n´ı urˇcitou akci. 4. N´ahodnost, vnesen´a do hry Backgammon h´azen´ım kostek, v naˇs´ı u ´loze chyb´ı, coˇz n´am bude p˚ usobit urˇcit´e probl´emy. Do prostˇred´ı zasahuj´ı nepˇredv´ıdateln´e elementy (napˇr´ıklad start na n´ahodn´em m´ıstˇe, pohyb dravc˚ u atd.), tud´ıˇz simulace prob´ıhaj´ı pokaˇzd´e jinak, i kdyˇz se agenti chovaj´ı st´ale stejnˇe. Pˇresto je ale tendence algoritmu ke zkouˇsen´ı nov´ ych moˇznost´ı (exploraci) v naˇsem pˇr´ıpadˇe niˇzˇs´ı neˇz u Backgammonu. M˚ uˇze, jak pop´ıˇseme n´ıˇze, doj´ıt k tomu, ˇze agent se mylnˇe nauˇc´ı, ˇze nˇejak´a akce je nev´ yhodn´a, a proto tuto akci pˇrestane zkouˇset. T´ım ztrat´ı moˇznost nauˇcit se, ˇze v jin´e situaci by tato akce mohla b´ yt pˇr´ınosnou. Budeme zvaˇzovat v´ıce ˇreˇsen´ı tohoto probl´emu, kter´a se budou snaˇzit vn´est do u ´lohy n´ahodnost “umˇele”. 5. Jak jsme uvedli, u Backgammonu je t´emˇeˇr jist´e, ˇze po urˇcit´em ˇcase n´ahodn´eho hran´ı jeden z hr´aˇc˚ u zv´ıtˇez´ı. Pˇredpokl´adejme, ˇze bychom ponechali v u ´loze dravce a koˇristi trv´an´ı jedn´e simulace 500 krok˚ u. Pˇritom bychom agenta odmˇen ˇovali podobnˇe jako v TD-Gammonu pouze na konci simulace jedniˇckou, pokud by pˇreˇzil, a nulou, pokud by umˇrel pˇred koncem simulace. Narazili bychom na probl´em, ˇze poˇca´teˇcn´ı n´ahodnˇe inicializovan´e s´ıtˇe by ˇr´ıdily agenta velmi ne´ uˇcinnˇe, a agent by se tak pravdˇepodobnˇe konce simulace nikdy nedoˇzil. Nemohl by se tak nauˇcit, jak´a situace a akce je v´ yhodn´a, protoˇze vede k pˇreˇzit´ı, a jak´a ne. Jednoduchou modifikac´ı by bylo na konci simulace udˇelit agentovi odmˇenu u ´mˇernou tomu, jak dlouho ˇzil. Zvaˇzme ale, ˇze od neuronov´e s´ıtˇe budeme poˇzadovat, aby v kaˇzd´em okamˇziku predikovala celou z´ıskanou odmˇenu za simulaci pouze s vyuˇzit´ım informace o tom, jak´ y sign´al m´a moment´alnˇe agent na senzorech a pro jakou akci se rozhodl. Pokud bychom ponechali d´elku jedn´e simulace 500 krok˚ u, s´ıt’ by nemˇela informaci o tom, kolik ˇcasu jeˇstˇe zb´ yv´a do konce simulace, a nemohla by tak smysluplnˇe pˇredv´ıdat, jak´a bude odmˇena. Kdyˇz pˇri stejn´em zp˚ usobu odmˇen ˇov´an´ı zruˇs´ıme ˇcasov´e omezen´ı jedn´e simulace (simulace potrv´a, dokud vˇsechna koˇrist nezahyne), s´ıt’ opˇet nebude m´ıt dost informac´ı k tomu, aby odhadovala odmˇenu, nebot’ nebude zn´at, jak dlouho jiˇz agent ˇzil. Z toho plyne, ˇze budeme potˇrebovat agenta odmˇen ˇovat pr˚ ubˇeˇznˇe. V kaˇzd´em ˇcasov´em kroku t dostane agent urˇcitou odmˇenu dle toho, jak je situace pˇr´ızniv´a pro jeho pˇreˇzit´ı. S´ıt’ pro dan´ y stav prostˇred´ı a zvolenou akci predikuje, kolik odmˇeny takto agent jeˇstˇe z´ısk´a, neˇz zahyne. V kaˇzd´em kroku tak budeme s´ıt’ adaptovat tak, aby pˇredchoz´ı predikce pˇredv´ıdaly predikci v ˇcase t plus okamˇzitou odmˇenu z´ıskanou v ˇcase t. Vzorce 4.8 a 4.9 nahrad´ıme: wij (t + 1) = wij (t) + α
X
(yl (t + 1) + rt+1 − yl (t))
t X m=0
l∈O
37
λt−m plij (m)
(4.14)
t X X bj (t + 1) = bj (t) + α (yl (t + 1) + rt+1 − yl (t)) λt−m plj (m),
(4.15)
m=0
l∈O
kde rt je okamˇzit´a odmˇena v ˇcase t. Je moˇzn´e, ˇze bude nutn´e tuto okamˇzitou odmˇenu podˇelit nˇejak´ ym koeficientem, aby velikost celkov´e z´ıskan´e odmˇeny za simulaci nepˇresahovala hodnotu 1. Vyˇsˇs´ı hodnotu by s´ıt’ s v´ ystupy z intervalu [0, 1] nedok´azala predikovat. V okamˇziku agentovy smrti je pak okamˇzit´a odmˇena nulov´a a predikce do budoucna t´eˇz, vzorce 4.10 a 4.11 tedy nahrad´ıme: wij (t + 1) = wij (t) + α
X
(0 − yl (t))
l∈O
bj (t + 1) = bj (t) + α
X
(0 − yl (t))
l∈O
t X
λt−m plij (t − m)
(4.16)
m=0 t X
λt−m plj (t − m)
(4.17)
m=0
Algoritmus bude tedy pracovat n´asledovnˇe: Algoritmus 4 ´ ´ INICIALIZACE VAH A PRAH˚ ´ ´I VSECH ˇ 1. (NAHODN A U A VYNULOVAN SUM ´ ´ ´ ´ ´ ˚ PARCIALNICH DERIVACI A VEKTORU STARYCH VYSTUPU) ∀i, j : wij ← random() ∀j : bj ← random() ∀i, j, l : Sijl ← 0 ∀j, l : Sjl ← 0 ~y old ← 0 2. Naˇcti z prostˇred´ı vstup ~s a odmˇenu r 3. Ohodnot’ vybranou podmnoˇzinu mnoˇziny moˇzn´ ych akc´ı A(~s) 4. ~a ← akce s nejlepˇs´ım nalezen´ ym hodnocen´ım ´ ˇ ´ ´I PREDIKCE KUMULATIVN´I ODMENY) ˇ 5. (VYPO CET AKTUALN ~y ← N et(~s, ~a) ´ ˇ ˇ ´ ´ICH DERIVAC´I S) 6. (VYPO CET VSECH SUM PARCIALN l l l ∀i, j, l : Sij ← pij + λSij ∀j, l : Sjl ← plj + λSjl ˇ ˇ ´I PREDCHOZ ˇ ´ICH PREDIKC´I S´ITE ˇ UPRAVOU ´ 7. (ZPRESN EN VAH A PRAH˚ U) P old l ∀i, j : wij ← wij P + α l∈O (yl + r − yl )Sij ∀j : bj ← bj + α l∈O (yl + r − ylold )Sjl ˇ ´I VYSTUP ´ ˚ ˇ S ˇ´I POROVNAN ´ ´I) 8. (ULOZEN U PRO POZDEJ ~y old ← ~y 9. Vykonej akci ~a 38
10. Pokud agent st´ale ˇzije, pˇrejdi na 2 ´ ERE ˇ ˇ ´ ´ 11. (PROVEDEN´I ZAV VAH A PRAH˚ U) P CNE UPRAVY old l ∀i, j : wij ← wij P + α l∈O (0 − yl )Sij ∀j : bj ← bj + α l∈O (0 − ylold )Sjl Nˇekter´e u ´lohy (viz napˇr´ıklad u ´loha z robotiky popsan´a v 5.2) nejsou rozdˇeleny na oddˇelen´e ˇcasov´e u ´seky nebo simulace, jako je tomu u backgammonu nebo v u ´loze dravce a koˇristi popsan´e v 5.1. Uˇcen´ı pak prob´ıh´a po teoreticky neomezenou dobu a v cel´em pr˚ ubˇehu tohoto uˇcen´ı agent z´ısk´av´a odmˇenu. Celkov´a kumulativn´ı odmˇena jde tedy s ˇcasem k nekoneˇcnu. Neuprav´ıme-li vzorce 4.14 a 4.15, budeme po s´ıti poˇzadovat, aby d´avala st´ale vyˇsˇs´ı a vyˇsˇs´ı v´ ystup. Proto je tˇreba uveden´e vzorce obohatit o konstantu γ ∈ (0, 1), jej´ıˇz v´ yznam je podobn´ y v´ yznamu parametru γ z ˇca´sti 2.1.
t X X wij (t + 1) = wij (t) + α (yl (t + 1) · γ + rt+1 − yl (t)) λt−m plij (m)
bj (t + 1) = bj (t) + α
X
(4.18)
m=0
l∈O
(yl (t + 1) · γ + rt+1 − yl (t))
t X
λt−m plj (m),
(4.19)
m=0
l∈O
V´ yˇse t´eto konstanty bude ud´avat, nakolik upˇrednostˇ nujeme odmˇenu v bl´ızk´e budoucnosti oproti odmˇenˇe v budoucnosti vzd´alen´e. Vzorce 4.16 a 4.17 nebudou v tomto pˇr´ıpadˇe v˚ ubec pouˇzity. I v tomto pˇr´ıpadˇe je nutn´e zajistit, aby v´ yˇse okamˇzit´e odmˇeny nebyla tak velk´a, ˇze bychom s´ıt’ uˇcili predikovat kumulativn´ı odmˇenu vyˇsˇs´ı neˇz 1. Aby mohl algoritmus 4 naj´ıt ˇreˇsen´ı, kdy agent bude schopen nˇejak´ ym zp˚ usobem diferencovat sv´e akce podle toho, jak´e m´a vstupn´ı informace o prostˇred´ı, budeme potˇrebovat minim´alnˇe jednu skrytou vrstvu. S´ıt’ bez skryt´e vrstvy by totiˇz nedok´azala reprezentovat informaci typu “v jedn´e situaci je v´ yhodn´a jedna akce a v jin´e situaci je v´ yhodn´a jin´a akce”. Rozhoduj´ıc´ı pro agent˚ uv v´ ybˇer akce by byla pouze v´aha synapse vedouc´ı od vstupn´ıho neuronu, kter´ y reprezentuje tuto akci, do neuronu v´ ystupn´ıho. Pokud by v´aha byla kladn´a, agent by se vˇzdy rozhodoval pro akci, kter´a je k´odov´ana hodnotou 1 tohoto neuronu. Naopak v pˇr´ıpadˇe, ˇze by tato v´aha byla z´aporn´a, agent by vˇzdy zvolil takovou akci, kter´a je k´odov´ana hodnotou 0.
4.4.3
Probl´ em “strachu z nezn´ ama”
Popiˇsme nyn´ı jeden z´asadn´ı probl´em, se kter´ ym se budeme muset vypoˇr´adat pˇri t´eto u ´pravˇe TD(λ), ale na kter´ y naraz´ıme i pozdˇeji pˇri aplikaci rekurentn´ıch neuronov´ ych s´ıt´ı pro zpˇetnovazebn´e uˇcen´ı. Pˇredpokl´adejme, ˇze aplikujeme v´ yˇse uvedenou modifikaci algoritmu TD(λ) na u ´lohu dravce a koˇristi z 5.1. Pouˇzijeme nˇejak´e λ mezi 0 a 1, napˇr. λ = 0.5. Agent bude v kaˇzd´em kroku svoji akci volit tak, ˇze vyzkouˇs´ı vˇsech moˇzn´ ych 33 = 27 variac´ı pro povolen´e hodnoty kaˇzd´eho vstupu z mnoˇziny {0, 0.5, 1} vznikl´ ych diskretizac´ı popsanou v´ yˇse. Vstupy a v´ ystupy jsou k´odov´any tak, jak je pops´ano v pˇr´ıloze 5.1, tedy speci´alnˇe nulov´a hodnota 39
v´ ystupu 0 znaˇc´ı, ˇze agent zrovna nekonzumuje potravu, a nulov´a hodnota v´ ystupu 2 znaˇc´ı, ˇze se nepohybuje. Jedniˇckov´e hodnoty v´ ystup˚ u maj´ı opaˇcn´ y v´ yznam. Pˇredpokl´adejme d´ale, ˇze s´ıt’ po poˇc´ateˇcn´ı inicializaci mal´ ymi n´ahodn´ ymi hodnotami d´av´a v´ ystup bl´ızk´ y 0.5. Necht’ je ale skuteˇcn´a kumulativn´ı odmˇena za simulaci podstatnˇe niˇzˇs´ı neˇz 0.5. Pouˇzit´a gradientn´ı metoda pak zp˚ usob´ı, ˇze v´ ystupn´ı neuron zaˇcne zvyˇsovat sv˚ uj pr´ah a naopak sniˇzovat vazby na cest´ach vedouc´ıch od aktivn´ıch vstup˚ u do v´ ystupn´ıho neuronu. Uvaˇzme nyn´ı vstupn´ı neurony k´oduj´ıc´ı agentovu akci. Pokud cesty vedouc´ı z nich do v´ ystupn´ıho neuronu pˇrisp´ıvaly kladnˇe k v´ ystupu tohoto neuronu, potom budou v tomto procesu zmˇenˇeny tak, ˇze budou pˇrisp´ıvat z´apornˇe. Tak se dostaneme do situace, ˇze modeluj´ıc´ı s´ıt’ povaˇzuje tyto akce za ˇspatn´e a agent je pˇrestane vykon´avat. Pot´e, co je s´ıt’ uˇcen´ım r´amcovˇe nastavena a jej´ı predikce se bl´ıˇz´ı pr˚ umˇern´e skuteˇcn´e odmˇenˇe, mˇela by se zaˇc´ıt uˇcit diferencovat, kter´e akce ve kter´e situaci ovlivˇ nuj´ı odmˇenu pozitivnˇe a kter´e negativnˇe. Jelikoˇz ale z neuron˚ u pro vˇsechny akce vedou negativn´ı cesty do v´ ystupu, agent tyto akce nevykon´av´a. Modeluj´ıc´ı s´ıt’ proto nem´a pˇr´ıleˇzitost se nauˇcit, jak´ y dopad by mˇelo vykon´an´ı tˇechto akc´ı. V´ ystupy odpov´ıdaj´ıc´ıch vstupn´ıch neuron˚ u budou vˇzdy 0, a t´ım p´adem jiˇz nikdy bˇehem algoritmu nedojde ke zmˇenˇe vah synaps´ı jdouc´ıch z tˇechto neuron˚ u (parci´aln´ı derivace v´ ystupu podle tˇechto vah bude totiˇz st´ale nula). Toto chov´an´ı s´ıtˇe jsme skuteˇcnˇe pˇri uveden´ ych podm´ınk´ach pozorovali. Po nˇekolika simulac´ıch se agenti zastavili, a nedoch´azelo tak ke zdokonalov´an´ı s´ıtˇe. Agenti pˇrestali konat jak´ekoli akce a pouze ˇcekali na m´ıstˇe, dokonce aniˇz by konzumovali potravu. Kdyˇz jsme ale zmˇenili k´odov´an´ı hodnot tak, ˇze hodnota 1 vstupn´ıho neuron˚ u znamenala, ˇze se agent bude pohybovat, agenti se po kr´atk´em ˇcase nauˇcili chovat tak, ˇze neust´ale bˇehali, aˇz umˇreli hladem. Pomohlo by, kdybychom pouˇzili jin´e k´odov´an´ı vstup˚ u, napˇr´ıklad hodnoty z intervalu [−1, 1]? Pak by se nemohlo snadno st´at, ˇze by hodnoty vstup˚ u pro akce byly nulov´e a odpov´ıdaj´ıc´ı parci´aln´ı derivace t´eˇz nulov´e. Bohuˇzel bychom t´ımto uveden´ y probl´em neodstranili. Uvaˇzme, co se stane, pokud budeme agentovu odmˇenu n´asobit vyˇsˇs´ım koeficientem tak, aby jej´ı hodnota pˇresahovala 0.5. Analogicky prvn´ımu pˇr´ıpadu, s´ıt’ zaˇcne nejprve zvyˇsovat v´ahy vˇsech cest od aktivn´ıch vstupn´ıch neuron˚ u k v´ ystupu. T´ım se vytvoˇr´ı v s´ıti cesty, kter´e budou pro vyˇsˇs´ı hodnoty vstup˚ u pro akce zvyˇsovat hodnoty v´ ystupu. Agent ’ pak bude v kaˇzd´em kroku tyto akce konat a s´ıt jiˇz nikdy nebude m´ıt moˇznost se nauˇcit, k ˇcemu by vedlo, kdyby agent tuto akci nevykonal a vstupn´ı hodnota by byla nulov´a. Uveden´ y probl´em m˚ uˇze nastat vˇzdy, kdyˇz se z´aroveˇ n agent uˇc´ı modelovat svˇet a pˇritom se rozhoduje vykon´avat svoje akce podle tohoto jeˇstˇe nehotov´eho modelu. V terminologii sekce 2.4, probl´em je v tom, ˇze agent vˇenuje vˇsechnu svoji ˇcinnost na exploataci jiˇz zn´am´eho. Naˇs´ım c´ılem ale je, aby explorace a exploatace byly v urˇcit´e rovnov´aze. Pokusili jsme se probl´em vyˇreˇsit tak, ˇze jsme agentovo chov´an´ı do urˇcit´e m´ıry zn´ahodnili, aby mˇel agent vˇzdy moˇznost pozorovat d˚ usledky sv´ ych r˚ uzn´ ych akc´ı a uˇcit se z nich. V experiment´aln´ı ˇca´sti srovn´av´ame v´ ysledky, kter´ ych jsme dos´ahli pomoc´ı r˚ uzn´ ych nastaven´ı parametr˚ u, r˚ uzn´eho zp˚ usobu odmˇen ˇov´an´ı a tak´e r˚ uzn´ ych metod zn´ahodnˇen´ı. Moˇzn´e metody zn´ahodnˇen´ı jsou napˇr´ıklad: 1. Nejprve agenta uˇc´ıme, pˇriˇcemˇz jeho chov´an´ı je zcela n´ahodn´e. Po urˇcit´em ˇcase zn´ahodnˇen´ı vypneme a agent se d´ale rozhoduje vykon´avat jen tu akci, kter´a predi40
kuje maxim´aln´ı kumulativn´ı odmˇenu. Pot´e lze jeˇstˇe agenta douˇcovat bez zn´ahodnˇen´ı. Faktorem sniˇzuj´ıc´ım u ´spˇeˇsnost t´eto metody je to, ˇze v prvn´ı f´azi se modeluj´ıc´ı s´ıt’ nauˇc´ı predikovat kumulativn´ı odmˇenu za pˇredpokladu, ˇze agent se bude do konce ˇzivota chovat n´ahodnˇe. Tento model pak pouˇz´ıv´ame k selekci nejlepˇs´ı akce v situaci, kdy se jiˇz agent n´ahodnˇe nechov´a. Predikce tak m˚ uˇze b´ yt zkreslena. V tomto pˇr´ıpadˇe se nejedn´a o online uˇcen´ı. 2. Jednou za nˇekolik (napˇr. 10) krok˚ u, nebo s urˇcitou pravdˇepodobnost´ı donut´ıme agenta vykonat n´ahodnou akci. 3. Abychom zabr´anili tomu, ˇze se agent vlivem nehotov´eho modelu bude chovat st´ale stejnˇe, m˚ uˇzeme zak´azat opakov´an´ı stejn´e akce mnohokr´at v ˇradˇe za sebou. Toho jsme doc´ılili pomoc´ı zaveden´ı speci´aln´ı promˇenn´e actionLimit pro kaˇzd´ y z agentov´ ych v´ ystup˚ u (akc´ı) - konzumaci, rotaci a pohyb. Hodnota tˇechto promˇenn´ ych se v kaˇzd´em kroku sn´ıˇz´ı o v´ ystup neuronu, kter´ y pˇr´ısluˇs´ı odpov´ıdaj´ıc´ı agentovˇe akci. Pot´e se zv´ yˇs´ı o 0.8. Pokud hodnota actionLimit pro nˇejakou akci klesne pod 0, agentovi je zak´az´ano tuto akci vykonat (hodnota v´ ystupu je zmˇenˇena na 0) a naopak pokud tato hodnota pˇrekroˇc´ı v´ ychoz´ı hodnotu, agent je nucen akci vykonat (odpov´ıdaj´ıc´ı v´ ystup pak bude roven jedn´e). Postup nejl´epe osvˇetl´ı citace k´odu napsan´eho v jazyce C++: int i; // for all action neurons: for(i=0; i
getAction(i); // the action neuron’s value has been high for too long // it’s forced to be 0: if(f>reserves[i]) f=0; if(reserves[i] > 2*actionLimit) // the action neuron’s value has been low for too long: { f = 1; // the action is forced to be 1 reserves[i]= 1; } // substract the current action neuron’s output from the reserve: reserves[i]-=f; // the reserve is refilling each step by 0.8: reserves[i]+=0.8f; // alter the action neuron’s output: setOldInput(i+stateInputs,f); }
41
4. Dalˇs´ım moˇzn´ ym zp˚ usobem zn´ahodnˇen´ı je jiˇz v´ yˇse zm´ınˇen´a moˇznost v kaˇzd´em kroku pokusnˇe n´ahodnˇe vygenerovat urˇcit´ y poˇcet akc´ı. Vygenerovan´e akce nech´ame s´ıt´ı ohodnotit, a pot´e z nich vybereme tu nejlepˇs´ı. Navrˇzen´a modifikace algoritmu TD(λ), pˇredevˇs´ım s metodou zn´ahodnˇen´ı 4, se pˇri ˇreˇsen´ı zadan´e u ´lohy dravce a koˇristi osvˇedˇcila - viz ˇc´ast 5.1.4.
4.5
Pouˇ zit´ı rekurentn´ı s´ıtˇ e
Doposud uveden´e modely neobsahuj´ı zpˇetn´e vazby a agentovi tak v pˇr´ıpadˇe nemarkovsk´eho prostˇred´ı chyb´ı moˇznost rozhodovat se na z´akladˇe vstup˚ u pozorovan´ ych v minulosti. Nejedn´a se tedy o dynamick´e s´ıtˇe. Modeluj´ıc´ı s´ıtˇe, kter´e jsme zat´ım popisovali, mˇely za c´ıl pouze predikovat agentovu odmˇenu. Pokud bychom ale umoˇznili s´ıti t´eˇz reprezentovat to, jak se mˇen´ı stav prostˇred´ı (respektive agentova vstupn´ı informace o tomto stavu) v z´avislosti na agentov´ ych akc´ıch ˇci na pˇredchoz´ıch stavech prostˇred´ı, agent by mˇel moˇznost vyuˇz´ıvat kompletn´ı znalost dynamiky prostˇred´ı. To by mu mohlo napˇr´ıklad umoˇznit implicitnˇe pl´anovat uˇziteˇcn´e mezic´ıle. V t´eto ˇca´sti se budeme zab´ yvat gradientn´ımi metodami pr´ace s rekurentn´ımi neuronov´ ymi s´ıtˇemi, pˇriˇcemˇz se zamˇeˇr´ıme na jeden konkr´etn´ı model, a ten zkus´ıme aplikovat. Pouˇzit´ım algoritmu zpˇetn´eho ˇs´ıˇren´ı v pˇr´ıpadˇe rekurentn´ı s´ıtˇe se zab´ yval jiˇz Rumelhart s Hintonem a Williamsem v [13]. Uk´azali, jak lze algoritmus zpˇetn´eho ˇs´ıˇren´ı v t´eto situaci pˇrizp˚ usobit tak, ˇze rekurentn´ı s´ıt’ pˇrevedeme na s´ıt’ vrstevnatou, kter´a v kaˇzd´em kroku naroste o jednu vrstvu (tzv. Backpropagation through time). Algoritmus bude m´ıt v tomto pˇr´ıpadˇe ale prostorovou sloˇzitost u ´mˇernou poˇctu ˇcasov´ ych krok˚ u, coˇz je vˇetˇsinou prakticky ne´ unosn´e. Efektivn´ı algoritmus pro pˇr´ıpad rekurentn´ı dynamick´e neuronov´e s´ıtˇe, ovˇsem pro pˇr´ıpad uˇcen´ı s uˇcitelem, navrhuje Robinson a Fallside [12] nebo Williams a Zipser [21]. Mimo jin´e z tˇechto prac´ı vych´azel Schmidhuber pˇri n´avrhu algoritmu pro pouˇzit´ı rekurentn´ıch s´ıt´ı v online zpˇetnovazebn´em uˇcen´ı v nemarkovsk´em prostˇred´ı[15], [16], kter´ y v dalˇs´ım pop´ıˇseme. Schmidhuber, podobnˇe jako Munro, navrhuje neuronovou s´ıt’ skl´adaj´ıc´ı se ze dvou vz´ajemnˇe propojen´ ych ˇc´ast´ı - ˇr´ıdic´ı a modeluj´ıc´ı s´ıtˇe. Obˇe s´ıtˇe jsou ale plnˇe rekurentn´ı (s tou v´ yjimkou, ˇze do vstup˚ u ˇr´ıdic´ı s´ıtˇe nevedou ˇz´adn´e synapse). Vstupy ˇr´ıdic´ı s´ıtˇe k´oduj´ı stav prostˇred´ı. Mezi nimi je jeden nebo v´ıce speci´aln´ıch neuron˚ u, kter´e k´oduj´ı hodnotu odmˇeny. V´ ystupem ˇr´ıdic´ı s´ıtˇe je akce, kterou agent v pˇr´ısluˇsn´e situaci vykon´a. Vstupy modeluj´ıc´ı s´ıtˇe jsou vˇsechny vstupn´ı a v´ ystupn´ı neurony ˇr´ıdic´ı s´ıtˇe (vˇcetnˇe odmˇeny). Modeluj´ıc´ı s´ıt’ obsahuje pro kaˇzd´ y agent˚ uv vstup jeden neuron, tzv. prediktor, jehoˇz hodnota pˇredpov´ıd´a hodnotu odpov´ıdaj´ıc´ıho vstupu v pˇr´ıˇst´ım okamˇziku. Pˇrenosov´e funkce vˇsech neuron˚ u jsou sigmoid´aln´ı. Pouˇzit´a neuronov´a s´ıt’ (obr´azek 4.5) tedy vypad´a takto: N et = (H ∪ I ∪ M, C, I, O, w, b, F ), kde • H je mnoˇzina vˇsech neuron˚ u ˇr´ıdic´ı s´ıtˇe, kter´e nejsou vstupn´ı. 42
• I je mnoˇzina vstup˚ u ˇr´ıdic´ı s´ıtˇe. Plat´ı I = IN ∪ IR , kde IN je mnoˇzina “norm´aln´ıch” vstupn´ıch neuron˚ u a IR je mnoˇzina vstupn´ıch neuron˚ u pro odmˇenu. IN a IR jsou disjunktn´ı. • M je mnoˇzina vˇsech neuron˚ u modeluj´ıc´ı s´ıtˇe. H, I a M jsou po dvou disjunktn´ı. • O ⊆ H je mnoˇzina v´ ystup˚ u ˇr´ıdic´ı s´ıtˇe. • P ⊆ M je mnoˇzina vˇsech prediktor˚ u. PR ⊆ P je mnoˇzina vˇsech prediktor˚ u odmˇen. Plat´ı P = {predk | k ∈ I}, kde predk oznaˇcuje prediktor neuronu k. • C = CC ∪CM , kde CC = {(i, j) | i ∈ H ∪I, j ∈ H, i 6= j}∪(O×O) je mnoˇzina synaps´ı vedouc´ıch do ˇr´ıdic´ı s´ıtˇe a CM = {(i, j) | i, j ∈ M, i 6= j} ∪ {(i, j) | i ∈ I ∪ O, j ∈ M } je mnoˇzina synaps´ı vedouc´ıch do modeluj´ıc´ı s´ıtˇe. Tedy synapse vedou mezi vˇsemi r˚ uzn´ ymi nevstupn´ımi neurony ˇr´ıdic´ı s´ıtˇe, mezi vˇsemi r˚ uzn´ ymi neurony modeluj´ıc´ı s´ıtˇe a ze vˇsech vstup˚ u a v´ ystup˚ u ˇr´ıdic´ı s´ıtˇe do vˇsech nevstupn´ıch neuron˚ u. Jedinˇe v´ ystupn´ı neurony ˇr´ıdic´ı s´ıtˇe jsou tedy spojeny samy se sebou. • ∀i ∈ N \ I : F (i) = σ
Obr´azek 4.5: Pˇ r´ıklad Schmidhuberovy rekurentn´ı s´ıtˇ e se dvˇ ema vstupn´ımi a dvˇ ema v´ ystupn´ımi neurony a bez skryt´ ych neuron˚ u. Oproti pˇredchoz´ım model˚ um budeme zde pro kaˇzdou odmˇenu m´ıt d´anu konstantu ud´avaj´ıc´ı jej´ı poˇzadovanou hodnotu. C´ılem algoritmu pak bude minimalizovat hodnotu XX (ci − yi (t))2 , (4.20) t
i∈IR
43
kde ci je poˇzadovan´a hodnota odmˇeny i a yi (t) hodnota t´eto odmˇeny v ˇcase t. Pro odmˇenu, tak jak jsme s n´ı pracovali doposud, bude hodnota ci typicky rovna jedn´e. M˚ uˇzeme ale napˇr. m´ısto odmˇeny pouˇz´ıvat trest, jehoˇz poˇzadovan´a hodnota bude nulov´a. Uk´aˇzeme si pozdˇeji jeˇstˇe jeden zvl´aˇstn´ı pˇr´ıpad odmˇeny - umˇelou zvˇedavost. V algoritmu si pro kaˇzd´ y neuron k budeme uchov´avat starou hodnotu jeho v´ ystupu ykold a novou hodnotu yknew , abychom mohli v rekurentn´ı s´ıti poˇc´ıtat nov´e v´ ystupy vˇsech neuron˚ u z pˇredchoz´ıch v´ ystup˚ u jejich soused˚ u. Promˇenn´a pkijnew bude uchov´avat odhad parci´aln´ı derivace v´ ystupu neuronu k podle wij a promˇenn´a pkijold jej´ı pˇredch´azej´ıc´ı hodnotu. V pr˚ ubˇehu algoritmu se z´aroveˇ n modeluj´ıc´ı s´ıt’ uˇc´ı de facto pomoc´ı uˇcen´ı s uˇcitelem co nejl´epe predikovat reakci prostˇred´ı na agentovy z´asahy. Paralelnˇe s t´ım se ˇr´ıdic´ı s´ıt’ uˇc´ı chovat tak, aby vyv´ıjen´ y model predikoval co nejvyˇsˇs´ı odmˇenu. Uˇcen´ı modeluj´ıc´ı s´ıtˇe prob´ıh´a tak, ˇze adaptujeme v´ahy proti gradientu chyby predikce. Uˇcen´P ı ˇr´ıdic´ı s´ıtˇe prob´ıh´a (v duchu Munroova pˇr´ıstupu) adaptac´ı vah ˇr´ıdic´ı s´ıtˇe proti gradientu i∈IR (ci − predi )2 , tedy chybu budeme propagovat zpˇet z modeluj´ıc´ı s´ıtˇe do ˇr´ıdic´ı s´ıtˇe. K tomu je tˇreba umˇet v rekurentn´ı s´ıt´ı vypoˇc´ıtat hodnoty parci´aln´ıch derivac´ı v´ ystup˚ u neuron˚ u dle vah. V z´ajmu efektivity algoritmu ale obˇetujeme pˇresnost v´ ypoˇct˚ u a budeme pouˇz´ıvat vzorec ! Ã X (4.21) wlk plijold + δjk yiold , pkijnew = yknew (1 − yknew ) l
kde δ je Kroneckerovo delta, δii = 1 a δik = 0 pro i 6= k. Nepˇresnost v´ ypoˇctu parci´aln´ıch derivac´ı je zp˚ usobena t´ım, ˇze pouˇzit´e hodnoty plijold jsou poˇc´ıt´any pro urˇcit´e hodnoty vah s´ıtˇe, kter´e se ale v pr˚ ubˇehu algoritmu pozvolna mˇen´ı. Tato nepˇresnost je ale, jak uk´azal Williams a Zipser, u ´nosn´a. Pro jednoduchost je povaˇzujeme v popisu algoritmu prahy neuron˚ u za v´ahy synapse vedouc´ı z fiktivn´ıho vstupn´ıho neuronu ˇr´ıd´ıc´ı s´ıtˇe, jehoˇz v´ ystupem je konstantnˇe -1. Algoritmus 5 (Schmidhuber) 1. (INICIALIZACE) Pro kaˇzd´e (i, j) ∈ C: wij ← random Pro kaˇzd´e k: pkijold ← 0, pkijnew ← 0 Pro kaˇzd´e k ∈ M ∪ H : ykold ← 0, yknew ← 0 Pro kaˇzd´e k ∈ I : naˇcti ykold z prostˇred´ı, yknew ← 0 ´ ´I S´ITE) ˇ 2. (VYBAVEN´I OVLADAC P Pro kaˇzd´e i ∈ H : yinew ← σ( j wji yjold ) P Pro kaˇzd´e (i, j) ∈ CC a k ∈ H: pkijnew = yknew (1 − yknew )( l∈H∪I wlk plijold + δjk yiold ) Pro kaˇzd´e k ∈ H: ykold ← yknew Pro kaˇzd´e (i, j) ∈ CC : pkijold ← pkijnew ˇ ´IM) 3. (INTERAKCE S PROSTRED Vykonej vˇsechny agentovy akce dle v´ ystup˚ u neuron˚ u v O. Aktualizuj prostˇred´ı. Pro kaˇzd´e k ∈ I : naˇcti yknew z prostˇred´ı. 44
ˇ 4. (VYBAVEN´I MODELOVAC´IPS´ITE) Pro kaˇzd´e i ∈ M : yinew ← σ( j wji yjold ) P Pro kaˇzd´e (i, j) ∈ C a k ∈ M : pkijnew = yknew (1 − yknew )( l∈M ∪I∪O wlk plijold + δjk yiold ) Pro kaˇzd´e k ∈ M : ykold ← yknew Pro kaˇzd´e (i, j) ∈ C : pkijold ← pkijnew ˇ ´I MODELOVAC´I A OVLADAC ´ ´I S´ITE) ˇ 5. (UCEN P k Pro kaˇzd´e (i, j) ∈ CM : wij ← wij + αM k∈I (yknew − ypredk old )ppred ijold P k Pro kaˇzd´e (i, j) ∈ CC : wij ← wij + αC k∈IR (ck − yknew )ppred ijold Pro kaˇzd´e k ∈ I : ykold ← yknew ypredk old ← yknew k Pro kaˇzd´e (i, j) ∈ CM : ppred ijold ← 0 k Pro kaˇzd´e (i, j) ∈ CC : pkijold ← ppred ijold 6. Jdi na 2. Nejv´ıce pozornosti zasluhuje blok 5, kde doch´az´ı k uˇcen´ı obou s´ıt´ı. αC > 0 zde oznaˇcuje parametr uˇcen´ı pro ˇr´ıdic´ı s´ıt’, αM > 0 je parametr uˇcen´ı pro modeluj´ıc´ı s´ıt’. Pouˇz´ıv´ame zde tzv. “teacher forcing” [21], pˇri kter´em na konci ˇcasov´eho kroku nahrazujeme v´ ystupy prediktor˚ u skuteˇcn´ ymi hodnotami predikovan´ ych vstup˚ u, coˇz usnadˇ nuje uˇcen´ı modeluj´ıc´ı s´ıtˇe. Nakonec aproximujeme derivace agentov´ ych vstup˚ u derivacemi v´ ystup˚ u odpov´ıdaj´ıc´ıch prediktor˚ u, coˇz opˇet zkvalitˇ nuje proces uˇcen´ı. ˇ Casov´ a sloˇzitost algoritmu je O(n4 ), kde n je poˇcet neuron˚ u, kv˚ uli v´ ypoˇct˚ um 3 parci´aln´ıch derivac´ı v kroc´ıch 2 a 4. Prostorov´a sloˇzitost je pak O(n ) kv˚ uli nutnosti uchov´avat v pamˇeti vˇsechna pkij . Povˇsimnˇeme si d´ale, ˇze popsan´ y algoritmus pˇredpokl´ad´a, ˇze chov´an´ı prostˇred´ı lze popsat modelem, kter´ y s´ıt’ vypoˇc´ıt´a v jednom kroku. Tedy pˇredpokl´ad´ame, ˇze z´avislost nov´eho stavu prostˇred´ı na pˇredchoz´ım stavu lze popsat tzv. line´arnˇe separabiln´ı funkc´ı (tj. vlastnˇe v´ ypoˇctem jednovrstv´e s´ıtˇe). Tento pˇredpoklad nen´ı v mnoha pˇr´ıpadech splnˇen, ale naˇstˇest´ı v takov´e situaci staˇc´ı algoritmus upravit tak, ˇze bloky 2 (pro zv´ yˇsen´ı v´ ypoˇcetn´ı s´ıly ˇr´ıdic´ı s´ıtˇe) a 4 (pro zv´ yˇsen´ı v´ ypoˇcetn´ı sily modeluj´ıc´ı s´ıtˇe) algoritmu opakujeme v kaˇzd´em kroku v´ıcekr´at. Stejnˇe jako model popsan´ y v 4.4.2, i tato s´ıt’ m˚ uˇze trpˇet probl´emem “strachu z nezn´ama”, kter´ y autor naz´ yv´a “deadlock”. Pro jeho ˇreˇsen´ı zav´ad´ı pravdˇepodobnostn´ı v´ ystupn´ı neurony. Pravdˇepodobnostn´ı neuron k se skl´ad´a z konvenˇcn´ıho neuronu kµ , kter´ y ud´av´a stˇredn´ı hodnotu k, a konvenˇcn´ıho neuronu kσ , kter´ y generuje rozptyl. V´ ystup yknew pravdˇepodobnostn´ıho neuronu je pak d´an vzorcem yknew = ykµnew + ykσnew ,
(4.22)
kde z je n´ahodnˇe rozdˇeleno napˇr´ıklad podle norm´aln´ıho rozdˇelen´ı. Odpov´ıdaj´ıc´ı pkij pak mus´ıme poˇc´ıtat dle n´asleduj´ıc´ı formule: pkijnew ← pkµ ijnew +
yknew − ykµnew kσ pijnew ykσnew 45
(4.23)
My vˇsak budeme v experimentech pˇredch´azet probl´emu “strachu z nezn´ama” t´ım, ˇze s pravdˇepodobnost´ı 5% budeme v´ ystup s´ıtˇe nahrazovat n´ahodn´ ym v´ ystupem, podobnˇe jako u modifikace algoritmu TD(λ) v´ yˇse. Dalˇs´ı moˇznost´ı, jak vn´est do algoritmu vˇetˇs´ı explorativn´ı schopnosti a zefektivnit uˇcen´ı modeluj´ıc´ı s´ıtˇe, je autorem navrhovan´a umˇel´a zvˇedavost a umˇel´a nuda [16]. Pro zdokonalov´an´ı modelu je d˚ uleˇzit´e, aby se agent dost´aval do situac´ı, ve kter´ ych zat´ım selh´avaj´ı predikce jeho modeluj´ıc´ı s´ıtˇe. Modeluj´ıc´ı s´ıt’ pak m´a moˇznost se z tˇechto chyb pouˇcit. Jak autor tvrd´ı, pro zdokonalen´ı modelu jsou nejzaj´ımavˇejˇs´ı situace, kde se model pouze “lehce m´ yl´ı”. Zvˇedavost a nudu budeme reprezentovat jedn´ım z odmˇen ˇovac´ıch neuron˚ u l ∈ IR , jehoˇz hodnota bude odpov´ıdat v kaˇzd´em okamˇziku eukleidovsk´e vzd´alenosti predikce vstup˚ u a jejich skuteˇcn´ ych hodnot. Jeho poˇzadovan´a hodnota cl bude odpov´ıdat zm´ınˇen´emu “lehk´emu omylu”. Zvˇedavost se tak stane jednou z agentov´ ych odmˇen a agent tak bude motivov´an, aby vyhled´aval situace, ve kter´ ych se m˚ uˇze “nˇeco nauˇcit”. Jak´a je schopnost uveden´eho algoritmu z´ısk´avat opoˇzdˇen´e odmˇeny? Modeluj´ıc´ı s´ıt’ predikuje pouze hodnotu okamˇzit´e odmˇeny, i kdyˇz v z´avislosti na historii stav˚ u a akc´ı. V kaˇzd´em kroku pak upravujeme ˇr´ıdic´ı s´ıt’ tak, aby s´erie jejich pˇredchoz´ıch akc´ı pˇrinesla v dan´em kroku co nejvˇetˇs´ı odmˇenu. Chyba ˇr´ıdic´ı s´ıtˇe se tedy propaguje do minulosti a s´ıt’ d´ıky tomu do urˇcit´e m´ıry um´ı z´ısk´avat opoˇzdˇen´e odmˇeny. Algoritmus lze ale jeˇstˇe zdokonalit tak, ˇze by modeluj´ıc´ı s´ıt’ predikovala kumulativn´ı odmˇenu s vyuˇzit´ım principu “Temporal Difference learning”. Pˇredpokl´adejme pro jednoduchost, ˇze pracujeme s obvyklou odmˇenou, tak jako v pˇredchoz´ım, kter´a nem´a poˇzadovanou hodnotu, ale jej´ıˇz kumulativn´ı hodnotu chceme maximalizovat. Necht’ k ∈ IR je vstupn´ı neuron pro odmˇenu. Chyba prediktoru predk ∈ PR v ˇcase t bude rovna (ypredk (t) − γypredk (t + 1) − yk (t + 1))2 , (4.24) kde 0 < γ < 1 m´a podobn´ y v´ yznam jako v 2.1. Zmˇenu pouˇzit´e chybov´e funkce provedeme u ´pravou prvn´ıho cyklu v bloku 5 algoritmu. Abychom ale byli schopni tuto chybu poˇc´ıtat, mus´ıme m´ıt k dispozici jiˇz predikci z n´asleduj´ıc´ıho kroku, a tedy budeme muset adaptaci vah modeluj´ıc´ı s´ıtˇe odloˇzit o jeden krok. Poˇzadovan´e hodnotu ck odmˇeny k nastav´ıme na dostateˇcnˇe velk´e ˇc´ıslo. Modeluj´ıc´ı s´ıt’ pak bude predikovat kumulativn´ı odmˇenu za cel´ y ˇzivot agenta a ˇr´ıdic´ı s´ıt’ bude upravov´ana podle gradientu predikce t´eto kumulativn´ı odmˇeny tak, aby agent tuto kumulativn´ı odmˇenu maximalizoval. Schmidhuber popisuje experiment[15], kdy s´ıt’ byla u ´spˇeˇsnˇe tr´enov´ana, aby zareagovala v´ ystupem na prvn´ı v´ yskyt vstupn´ıho vzoru B po posledn´ım v´ yskytu vzoru A, kdy mezi nimi mohl b´ yt libovolnˇekr´at vloˇzen vzor X. D´ale popisuje ˇc´asteˇcnˇe u ´spˇeˇsn´ y experiment s vyv´aˇzen´ım simulovan´e tyˇce stoj´ıc´ı na voz´ıku. Pˇri tomto experimentu byl algoritmus upraven tak, ˇze vˇsechny parci´aln´ı derivace byly pravidelnˇe po 8 kroc´ıch nulov´any. Podobnou u ´pravu pouˇz´ıv´ame i v naˇsich experimentech s t´ımto modelem, kter´e jsou pops´any v experiment´aln´ı ˇca´sti.
46
Kapitola 5 Experiment´ aln´ı ˇ c´ ast 5.1 5.1.1
´ Uloha dravce a koˇ risti Zad´ an´ı u ´ lohy
Naˇs´ım c´ılem bylo porovnat u ´spˇeˇsnost popsan´ ych model˚ u neuronov´ ych s´ıt´ı pˇri r˚ uzn´ ych nastaven´ıch jejich parametr˚ u pˇri ˇreˇsen´ı neprimitivn´ı u ´lohy zpˇetnovazebn´eho uˇcen´ı. Pro tento u ´ˇcel byla zvolena varianta simulace koˇristi a dravce. Popis pouˇzit´eho simul´atoru lze nal´ezt v pˇr´ıloze B. V dvourozmˇern´em diskr´etn´ım prostoru o velikosti 100 × 100 se pohybuje urˇcit´ y poˇcet jedinc˚ u koˇristi a urˇcit´ y poˇcet dravc˚ u. Agent v roli koˇristi ˇr´ıd´ıc´ı se testovan´ ym algoritmem zpˇetnovazebn´eho uˇcen´ı se snaˇz´ı co nejd´ele pˇreˇz´ıt. Koˇrist um´ır´a, pokud je seˇzr´ana dravcem nebo pokud z˚ ustane dlouho bez potravy (vyhladov´ı). V kaˇzd´em kroku simulace ztr´ac´ı koˇrist ˇc´ast sv´e vnitˇrn´ı z´asoby potravy, kterou m˚ uˇze doplnit pˇr´ıjmem potravy z prostˇred´ı. Potrava pro koˇrist se zpoˇc´atku nach´az´ı vˇsude v prostoru a pomalu dor˚ ust´a, pokud je seˇzr´ana. Pokud se koˇrist pohybuje, spotˇrebuje v´ıce potravy, neˇz pokud z˚ ust´av´a v klidu. V kaˇzd´em pˇr´ıpadˇe ale spotˇrebov´av´a potravu vˇetˇs´ı rychlost´ı, neˇz potrava dor˚ ust´a, a proto je nucena se pohybovat. Dravci, ˇr´ıd´ıc´ı se jednoduch´ ym napevno dan´ ym algoritmem, se snaˇz´ı co nejrychleji seˇzrat koˇrist. Pro zjednoduˇsen´ı jsme vylouˇcili moˇznost, ˇze dravec umˇre hladem. Vstupy: Kaˇzd´ y agent (koˇrist i dravec) m´a 4 vstupy (senzory), ˇc´ıslovan´e od 0: Vstup 0 - Hlad: Informace o tom, jak dlouho jeˇstˇe agent vydrˇz´ı bez potravy. Pokud je tato hodnota nulov´a, agent je zcela syt´ y. Pokud tato hodnota vystoup´ı na 1, jedinec vyhladov´ı a umˇre. ˇ Vstup 1 - Cich: ˇ Cich napov´ıd´a agentovi, kolik je v okol´ı jedinc˚ u jin´eho druhu (koˇristi nebo dravc˚ u), neˇz je on s´am. Kaˇzd´ y jedinec jin´eho druhu, kter´ y je v dosahu ˇcichu, zvyˇsuje hodnotu tohoto vstupu o pˇr´ıspˇevek odpov´ıdaj´ıc´ı rozd´ılu svoj´ı vzd´alenosti od agenta a dosahu agentova ˇcichu. Vstup 2 - Zrak: Zrak napov´ıd´a agentovi, zda se nach´az´ı nˇejak´ y jedinec jin´eho druhu ve smˇeru pˇred 47
n´ım. Hodnota tohoto senzoru odpov´ıd´a vzd´alenosti agenta od nejbliˇzˇs´ıho jedince jin´eho druhu, kter´ y se nach´az´ı pˇred agentem. Vstup 3 - Pˇ r´ıtomnost potravy: Tento vstup agentovi ˇr´ık´a, kolik je v dan´em m´ıstˇe potravy pro koˇrist (Pro dravce tak tato hodnota nen´ı pˇr´ıliˇs d˚ uleˇzit´a.). V kaˇzd´em kroku se m˚ uˇze agent otoˇcit aˇz o 90◦ v libovoln´em smˇeru a pot´e vykonat jednu ze dvou moˇzn´ ych akc´ı - konzumovat potravu nebo se pohybovat. Agent se pohybuje vˇzdy ve sv´em aktu´aln´ım smˇeru o poˇcet krok˚ u, kter´ y je omezen maxim´aln´ı rychlost´ı pˇr´ısluˇsnou jeho druhu. Koˇrist se nem˚ uˇze pohybovat, pokud je na stejn´em m´ıstˇe i dravec (je chycena). Pokud se dravec rozhodne konzumovat potravu, zabije t´ım jeden z kus˚ u koˇristi, kter´a se nach´az´ı na stejn´em m´ıstˇe jako on. Pokud zde ˇza´dn´a koˇrist nen´ı, dravcova akce nem´a ˇza´dn´ y v´ ysledek. Pokud se koˇrist rozhodne ˇzr´at, zkonzumuje vˇsechnu potravu v dan´em m´ıstˇe a zv´ yˇs´ı svoj´ı z´asobu u ´mˇernˇe tomu, kolik potravy se v dan´em m´ıstˇe vyskytovalo. V´ ystupy Agent ovl´ad´a koˇrist prostˇrednictv´ım ˇctyˇr v´ ystup˚ u. V´ ystup 0 - Pˇ r´ıjem potravy: Pokud je hodnota tohoto v´ ystupu vˇetˇs´ı neˇz hodnota v´ ystupu 2, agent se rozhodl konzumovat potravu. V´ ystupy 1 a 2 - Rotace: Kaˇzd´ y jedinec v simulaci je v kaˇzd´em okamˇziku otoˇcen v urˇcit´em smˇeru. V´ ystupy 1 a 2 ud´avaj´ı zda a na kterou stranu se agent otoˇc´ı (zmˇen´ı smˇer). V´ ystup 1 ud´av´a rotaci vpravo (ve smˇeru hodinov´ ych ruˇciˇcek), v´ ystup 2 rotaci vlevo (proti smˇeru hodinov´ ych ◦ ruˇciˇcek). Rozd´ıl tˇechto dvou hodnot je vyn´asoben 90 a o v´ yslednou hodnotu se agent pootoˇc´ı vpravo nebo vlevo, podle toho, kter´ y v´ ystup mˇel vyˇsˇs´ı hodnotu.1 V´ ystup 3 - Pohyb: Pokud je hodnota tohoto v´ ystupu vˇetˇs´ı neˇz hodnota v´ ystupu 0, agent se bude pohybovat. V takov´em pˇr´ıpadˇe se posune ve sv´em aktu´aln´ım smˇeru o vzd´alenost rovnou souˇcinu hodnoty v´ ystupu 2 a agentovy maxim´aln´ı rychlosti. Odmˇ ena V pr˚ ubˇehu experiment˚ u jsme porovn´avali v´ ysledky jednotliv´ ych algoritm˚ u pˇri tˇrech r˚ uzn´ ych zp˚ usobech odmˇen ˇov´an´ı. Odmˇ en ˇ ovac´ı funkce 1: V kaˇzd´em kroku ˇzivota je agentovi pˇridˇelena odmˇena velikosti 1. V okamˇziku smrti pak dost´av´a odmˇenu v hodnotˇe 0. Odmˇ en ˇ ovac´ı funkce 2: V kaˇzd´em kroku ˇzivota je agentovi pˇridˇelena odmˇena velikosti 1 m´ınus agent˚ uv hlad. Tuto hodnotu budeme naz´ yvat agentova z´asoba potravy F ood. V okamˇziku smrti pak agent dost´av´a odmˇenu v hodnotˇe 0. 1
Tento zp˚ usob k´odov´an´ı v´ ystup˚ u se osvˇedˇcil mnohem l´epe, neˇz pouˇzit´ı jedin´eho neuronu pro rotaci, jehoˇz krajn´ı hodnoty by k´odovaly maxim´aln´ı rotaci vpravo a vlevo. V takov´em pˇr´ıpadˇe mˇela koˇrist pˇr´ıliˇsnou tendenci se toˇcit na jednu ˇci druhou stranu, podle toho zda pˇr´ıspˇevek neuronu pro rotaci k predikci odmˇeny byl z´aporn´ y nebo kladn´ y.
48
Odmˇ en ˇ ovac´ı funkce 3: Odmˇena 3 zav´ad´ı obdobu “strachu z nepˇr´ıtele”. Agentova odmˇena bude pak minimum ze zb´ yvaj´ıc´ı z´asoby potravy a tohoto “strachu”: r = min(F ood, M ood),
(5.1)
kde F ood ∈ [0, 1] je agentova z´asobˇe potravin, a M ood ∈ [0, 1] je pˇr´ımo u ´mˇern´e vzd´alenosti nejbliˇzˇs´ıho dravce, kter´ y je v dosahu agentova ˇcichu. M ood bude rovno 1, pokud nebude ˇza´dn´ y dravec v dosahu agentova ˇcichu, a bude rovno 0, pokud se bude nach´azet dravec na stejn´em m´ıstˇe jako agent. V okamˇziku smrti pak jeˇstˇe agent dost´av´a odmˇenu v hodnotˇe 0. ´ Uloha m´a vˇsechny vlastnosti, kter´e potˇrebujeme k provˇeˇren´ı algoritm˚ u. Prostˇred´ı je nemarkovsk´e a pravidla, jak´ ymi se ˇr´ıd´ı, je agent˚ um zpoˇc´atku nezn´am´e. Agenti nemaj´ı ˇza´dnou apriorn´ı informaci o spr´avn´em ˇreˇsen´ı probl´emu. Agenti musej´ı umˇet vyhled´avat odmˇenu opoˇzdˇenou aspoˇ n o jeden krok, nebot’, aby mohli vyhledat potravu, mus´ı se pohybovat, coˇz je nejprve stoj´ı ˇca´st jejich z´asoby potravy, a pˇrinese v´ ynos aˇz po dvou kroc´ıch, a to jen pokud v n´asleduj´ıc´ım kroku agent konzumuje nalezenou potravu. Optim´aln´ı zp˚ usob, jak se vyh´ ybat dravc˚ um, nen´ı zˇrejm´ y, a vznik´a tak prostor pro sofistikovan´e strategie. Agenti se uˇc´ı online zp˚ usobem. Pro jejich u ´spˇeˇsnost bude t´eˇz v´ yznamn´e, kolik aktivity vynaloˇz´ı na exploraci a kolik na exploataci.
5.1.2
Mˇ eˇ ren´ı u ´ spˇ eˇ snosti
´ eˇsnost jednotliv´ Uspˇ ych algoritm˚ u budeme mˇeˇrit dvˇema typy test˚ u. Kaˇzd´ y test se skl´ad´a ze s´erie simulac´ı. V pr˚ ubˇehu cel´eho testu jsou s´ıtˇe uˇceny. V kaˇzd´e simulaci jsou jedinci rozm´ıstˇeni na nov´a n´ahodn´a m´ısta v n´ahodn´em smˇeru. Simulace konˇc´ı, pokud je vˇsechna koˇrist mrtv´a, nejd´ele vˇsak po 500 kroc´ıch. Pot´e jsou jedinci oˇziveni a zaˇc´ın´a dalˇs´ı simulace. Kaˇzd´ y jedinec koˇristi bude m´ıt svou vlastn´ı neuronovou s´ıt’, kter´a mezi jednotliv´ ymi simulacemi bude zachov´ana (bude si pamatovat, co se nauˇcil). ´ eˇsnost algoPˇri prvn´ım typu testu bude v prostˇred´ı 20 jedinc˚ u koˇristi a 5 dravc˚ u. Uspˇ ritmu ohodnot´ıme body tak, ˇze v kaˇzd´em kroku pˇrid´ame tolik bod˚ u, kolik je ˇzij´ıc´ıch jedinc˚ u koˇristi. Potom budeme poˇc´ıtat pr˚ umˇern´ y poˇcet bod˚ u za kaˇzd´ ych 100 po sobˇe jdouc´ıch simulac´ı a sledovat v´ yvoj v ˇcase. Celkov´a d´elka testu se bude v r˚ uzn´ ych pˇr´ıpadech liˇsit dle toho, zda se jeˇstˇe s´ıt’ zdokonaluje, a v z´avislosti na ˇcasov´e n´aroˇcnosti test˚ u. Nicm´enˇe srovn´avat v´ ysledky r˚ uzn´ ych konfigurac´ı budeme vˇzdy za stejnou dobu testov´an´ı. Druh´ y typ testu bude test bez dravc˚ u, kter´ y budeme prov´adˇet u vybran´ ych nejlepˇs´ıch konfigurac´ı. V tomto typu testu budeme zkouˇset, zda se jeden jedinec koˇristi dok´aˇze nauˇcit strategii, jak vyj´ıt s j´ıdlem tak, aby pˇreˇzil do konce simulace. Pˇr´ıkladem takov´e strategie je pravideln´e stˇr´ıd´an´ı jednoho kroku, ve kter´em se agent bude pohybovat, a jednoho kroku, ve kter´em bude konzumovat potravu. Protoˇze nauˇcen´e ˇreˇsen´ı nemus´ı b´ yt stabiln´ı, budeme jednak mˇeˇrit poˇcet simulac´ı, neˇz se agent tuto strategii nauˇc´ı poprv´e, jednak poˇcet simulac´ı nutn´ ych k tomu, aby se tuto strategii nauˇcil a dok´azal ji udrˇzet ve dvaceti n´asleduj´ıc´ıch simulac´ıch. Test budeme opakovat pˇri stejn´em nastaven´ı parametr˚ u a r˚ uzn´e n´ahodn´e inicializaci desetkr´at, pokaˇzd´e aˇz 10000 simulac´ı, nebo dokud algoritmus nenajde stabiln´ı ˇreˇsen´ı. 49
Kaˇzd´ y algoritmus s kaˇzdou konfigurac´ı testovanou testem prvn´ıho typu jsme oˇc´ıslovali ˇc´ıslem testu, kter´ ym se pak odkazujeme v grafech a tabulk´ach. Pot´e, co jsou pops´any v´ ysledky vˇsech test˚ u prvn´ıho typu, je uvedena jejich shrnuj´ıc´ı tabulka. N´aslednˇe je pops´an vzhled nauˇcen´e s´ıtˇe v nej´ uspˇeˇsnˇejˇs´ım z experiment˚ u z dan´ ym modelem. Tato konfigurace je pak testov´ana v testu typu 2 bez dravc˚ u. Testy tohoto typu jsou znaˇceny velk´ ymi p´ısmeny. Nakonec je prezentov´ano porovn´an´ı v´ yhod a nev´ yhod vˇsech testovan´ ych model˚ u. Pro srovn´an´ı jsme vytvoˇrili jednoduch´ y pevn´ y program skl´adaj´ıc´ı se z rozhodovac´ıch pravidel. Algoritmus 6 1. Pokud je dravec za tebou, ut´ıkej 2. Pokud je dravec pˇred tebou, otoˇc se o 90◦ u ut´ıkej 3. Pokud je na m´ıstˇe mal´e mnoˇzstv´ı potravy, popojdi a lehce se pootoˇc 4. Jinak z˚ ustaˇ n na m´ıstˇe a konzumuj potravu Test 0: Agenti ˇr´ıd´ıc´ı se t´ımto programem byli velmi u ´spˇeˇsn´ı a z´ıskali v pr˚ umˇeru okolo 721000 bod˚ u za 100 simulac´ı. Pokud jsme v simulaci vypnuli dravce, byli tito agenti schopni stabilnˇe pˇreˇz´ıt cel´e trv´an´ı simulace (500 krok˚ u). Test 1: D´ale jsme zmˇeˇrili u ´spˇeˇsnost n´ahodnˇe chovaj´ıc´ıho se algoritmu, opˇet pro u ´ˇcel porovn´an´ı s n´asleduj´ıc´ımi experimenty. N´ahodn´ y algoritmus byl t´eˇz pomˇernˇe u ´spˇeˇsn´ y, z´ısk´aval v pr˚ umˇeru okolo 220000 bod˚ u za 100 simulac´ı. V testu bez agent˚ u se ˇcasto povedlo n´ahodnˇe se chovaj´ıc´ımu agentu pˇreˇz´ıt celou simulaci, ale nikdy nesplnil kriterium stability. Uvˇedomme si, ˇze n´ahodn´ y algoritmus je v ˇreˇsen´ı t´eto u ´lohy pomˇernˇe u ´spˇeˇsn´ y z toho d˚ uvodu, ˇze jedinec rovnomˇernˇe rozdˇeluje ˇcas mezi konzumaci potravy a vyhled´av´an´ı nov´e potravy. Nav´ıc pro dravce nen´ı snadn´e chytit n´ahodnˇe se pohybuj´ıc´ı koˇrist. Naproti tomu neuronov´a s´ıt’ s nemˇennou n´ahodnou konfigurac´ı by si vedla mnohem h˚ uˇre, protoˇze by vˇetˇsinou opakovala st´ale stejnou akci.
5.1.3
S´ıt’ s n´ ahodn´ ymi zmˇ enami
V t´eto ˇc´asti popisujeme experimenty s algoritmy 2 a 3 popsan´ ymi v ˇc´asti 4.2. S´ıt’ ˇr´ızen´a tˇemito algoritmy byla testov´ana v simul´atoru dravce a koˇristi. S´ıt’ dost´avala na vstupu vjemy simulovan´eho organismu a mˇela za u ´kol vykonat takov´e akce, aby se organismus dok´azal vyhnout pred´ator˚ um a naj´ıt potravu. Pouˇzili jsme s´ıt’ bez skryt´ ych neuron˚ u, kter´a mˇela pouze 4 vstupn´ı a 4 v´ ystupn´ı neurony. Nejprve jsme pouˇzili odmˇen ˇovac´ı funkci 2, tj. u ´mˇernou agentovˇe z´asobˇe potravy. Test 2 a 3 (obr´ azek 5.1): Nejprve byl testov´an algoritmus 2 pˇri dvou r˚ uzn´ ych hodnot´ach omezuj´ıc´ıch maxim´aln´ı n´ahodnou zmˇenu v´ahy. V testu 2 to bylo ±0.01 a v testu 3 ±0.05. S´ıtˇe se v tomto pˇr´ıpadˇe uˇcily velmi m´alo nebo v˚ ubec. Test 3 byl o nˇeco u ´spˇeˇsnˇejˇs´ı neˇz test 2. Pˇri jeˇstˇe vyˇsˇs´ı maxim´aln´ı moˇzn´e zmˇenˇe vah byly v´ ysledky jeˇstˇe o nˇeco lepˇs´ı. To je ale pravdˇepodobnˇe zp˚ usobeno jen t´ım, ˇze pˇri vyˇsˇs´ıch zmˇen´ach vah se algoritmus v´ıce podob´a n´ahodn´emu algoritmu z testu 1. S´ıtˇe nakonec dospˇely do takov´eho 50
stavu, ˇze se jedinci pˇrestali pohybovat, a pouze konzumovali potravu na m´ıstˇe, dokud jim nedoˇsla. To je pˇr´ıkladem toho, ˇze algoritmus neum´ı vyhled´avat opoˇzdˇen´e odmˇeny, nebot’ d´av´a pˇrednost okamˇzit´emu v´ ynosu za konzumaci, pˇred potravou, kterou by musel hledat.
Obr´azek 5.1: Testy 1, 2, 3. Testy 4, 5 a 6 (obr´ azek 5.2): Pot´e byla m´ısto n´ahodn´e inicializace pouˇzita ruˇcnˇe pˇrednastaven´a s´ıt’, kter´a jiˇz zpoˇc´atku dosahovala sluˇsn´ ych v´ ysledk˚ u. Pokud jsme ji zafixovali a otestovali (test 4), z´ıskala v pr˚ umˇeru necel´ ych 340000 bod˚ u za 100 simulac´ı. Algoritmus s n´ahodn´ ymi zmˇenami ale ani pˇri t´eto inicializaci nefungoval a s´ıt’ dosahovala v kaˇzd´e dalˇs´ı simulaci st´ale horˇs´ıch v´ ysledk˚ u. Podoba s´ıtˇe nekonvergovala a sp´ıˇse se n´ahodnˇe mˇenila. A to pˇri nastaven´ı maxim´aln´ıch zmˇen ±0.01 (Test 5) i ±0.05 (Test 6).
Obr´azek 5.2: Testy 4, 5, 6. Bˇehem testu 5 se v prvn´ıch 100 simulac´ıch algoritmu povedlo pˇrekonat v´ ysledky ’ p˚ uvodn´ı s´ıtˇe, s´ıt tak vylepˇsil a dos´ahl necel´ ych 385000 bod˚ u. Jedinci se stali o nˇeco 51
aktivnˇejˇs´ımi a vyhled´avali novou potravu i kdyˇz jeˇstˇe jejich z´asoba nedoch´azela, na coˇz pˇri v´ ychoz´ım nastaven´ı s´ıtˇe ˇcekali. V n´asledn´ ych simulac´ıch ale u ´spˇeˇsnost jiˇz jen klesala a agenti se opˇet st´avali st´ale pasivnˇejˇs´ı. Diskuze nedostatk˚ u algoritmu 2 viz 4.2.
Obr´azek 5.3: Testy 2, 7, 9, 11.
Obr´azek 5.4: Testy 3, 8, 10, 12. Testy 7 - 12 (obr´ azky 5.3 a 5.4): S algoritmem 2 jsme porovn´avali algoritmus 3 pro d´elku periody zmˇeny 5, 10 a 20 krok˚ u. Jelikoˇz je v tomto algoritmu n´ahodn´a zmˇena prov´adˇena jen jednou za n krok˚ u (n je d´elka ˇcasov´e periody), vyn´asobili jsme v kaˇzd´em experimentu velikost maxim´aln´ı moˇzn´e zmˇeny ˇc´ıslem n, aby rozsah zmˇen z˚ ustal srovnateln´ y. Pouˇzit´e velikosti maxim´aln´ıch zmˇen tedy byly ±(n × 0.01) respektive ±(n × 0.05). Toto byly testy v poˇrad´ı 7, 9, 11 respektive 8, 10, 12. Algoritmus 3 znatelnˇe pˇrekonal algoritmus 52
2, pˇredevˇs´ım v pˇr´ıpadˇe periody 20 (obr´azek 5.5), a to u obou zkouˇsen´ ych maxim´aln´ıch hodnot pˇr´ıpustn´ ych zmˇen. Mezi jedinci se objevili takov´ı, kteˇr´ı stˇr´ıdavˇe konzumovali a vyhled´avali potravu, a “inteligentnˇe” reagovali u ´tˇekem na pˇr´ıtomnost dravc˚ u. A to pˇrestoˇze pouˇzit´a odmˇena nezohledˇ nuje bl´ızkost dravce. Projevily se tak u ´ˇcinky negativn´ı odmˇeny, kterou agent dost´av´a pˇri u ´mrt´ı. Probl´emy algoritmu 2 vˇsak v niˇzˇs´ı m´ıˇre st´ale pˇretrv´avaj´ı.
Obr´azek 5.5: V´ ahy a prahy s´ıtˇ e uˇ cen´ e v testu 11. Na obr´azku jsou v´ahy a prahy s´ıtˇe po 900 tr´eninkov´ych simulac´ıch (zaokrouhlen´e na jedno desetinn´e m´ısto). Synapse s kladn´ymi vahami jsou vyznaˇceny zelenˇe (synapse s nejvyˇsˇs´ımi vahami svˇetle zelenˇe), synapse s negativn´ımi vahami naopak ˇcervenˇe (svˇetle ˇcervenˇe pro v´ahy s nejniˇzˇs´ımi hodnotami). Pˇr´ısluˇsn´y agent umˇel vyhled´ avat potravu a do jist´e m´ıry se vyh´ybat dravc˚ um. ’ V´ ahy zajiˇst uj´ı, ˇze agent se vyd´a hledat potravu, pouze kdyˇz m´a hlad a zkonzumoval potravu na m´ıstˇe, kde se nach´az´ı. Pokud agent vid´ı dravce, neut´ık´ a, ale otoˇc´ı se na m´ıstˇe. T´ım se dostane do situace, kdy dravce c´ıt´ı, ale nevid´ı. V t´eto situaci pak ut´ık´ a. Agent m´a tendenci se toˇcit vlevo. I pˇri u ´tˇeku pˇred dravcem agent pravidelnˇe konzumuje potravu. Testy 13 a 14 (obr´ azek 5.6): Algoritmus 3 s periodou zmˇen 5 a maxim´aln´ımi povolen´ ymi zmˇenami vah nejprve ±(10 × 0.01) a pot´e ±(10 × 0.05) jsme aplikovali t´eˇz na s´ıt’ pˇrednastavenou jako v testu 4. V´ ysledek nepˇrinesl zdokonalen´ı. Testy 15, 16 a 17 (obr´ azky 5.7 a 5.8): Nej´ uspˇeˇsnˇejˇs´ı z test˚ u v´ yˇse jsme zkusili zopakovat s odmˇen ˇovac´ı funkc´ı 3, kter´a zahrnuje strach z dravc˚ u. Maxim´aln´ı zmˇena vah byla ±(n×0.01). Testovali jsme n´ahodnˇe inicializovan´ y algoritmus 2 (test 15) a algoritmus 3 s periodou 20 (test 16) a algoritmus 3 pˇrednastaven´ y jako v pˇredchoz´ıch testech (test 17). Zmˇena odmˇen ˇov´an´ı nepˇrinesla markantn´ı zlepˇsen´ı. V´ ysledky algoritmu 2 a 3 v testu s dravci s n´ahodnou inicializac´ı shrnuje tabulka 5.1, s pˇrednastaven´ım pak tabulka 5.2.
53
Obr´azek 5.6: Testy 4, 13, 14.
Obr´azek 5.7: Testy 2, 11, 15, 16.
54
Obr´azek 5.8: Testy 4, 5, 17. Test 2 3 7 8 9 10 11 12 15 16
Odmˇ ena
Perioda zmˇ en
Max. zmˇ ena
Nej. v´ ysledek
Pr˚ um. v´ ysledek
2 2 2 2 2 2 2 2 3 3
1 1 5 5 10 10 20 20 1 20
±0.01 ±0.05 ±(5 × 0.01) ±(5 × 0.05) ±(10 × 0.01) ±(10 × 0.05) ±(20 × 0.01) ±(20 × 0.05) ±0.01 ±(20 × 0.01)
129354 144907 156520 159940 149876 168060 196024 164802 151334 164698
128100 142849 152720 146356 138636 149958 174555 158255 140685 152093
Tabulka 5.1: V´ ysledky experiment˚ u s algoritmy 2 a 3, ve kter´ ych byla pouˇ zita n´ ahodn´ a inicializace. V sloupci “Nej. v´ysledek” je nejvyˇsˇs´ı poˇcet bod˚ u z´ıskan´y za sto simulac´ı z prvn´ıch deseti po sobˇe jdouc´ıch set simulac´ı. Ve sloupci “Pr˚ um. v´ysledek” je pr˚ umˇern´y poˇcet bod˚ u na sto simulac´ı mˇeˇren´y ve stejn´em obdob´ı. Nejlepˇs´ı v´ysledky byly dosaˇzeny v testu 11. Test 4 5 6 13 14 17
Odmˇ ena
Perioda zmˇ en
Max. zmˇ ena
Nej. v´ ysledek
Pr˚ um. v´ ysledek
2 2 2 2 3
1 1 1 10 10 1
±0.01 ±0.01 ±0.05 ±(10 × 0.01) ±(10 × 0.05) ±0.01
347542 384843 240072 268697 195122 339505
340160 299716 173787 200941 164943 263215
Tabulka 5.2: V´ ysledky experiment˚ u s algoritmy 2 a 3, ve kter´ ych byla s´ıt’ pˇ rednastavena ruˇ cnˇ e vybran´ ymi hodnotami. Ve sloupci “Nej. v´ysledek” je nejvyˇsˇs´ı poˇcet bod˚ u z´ıskan´y za sto simulac´ı z prvn´ıch deseti po sobˇe jdouc´ıch set simulac´ı. Ve sloupci “Pr˚ um. v´ysledek” je pr˚ umˇern´y poˇcet bod˚ u na sto simulac´ı mˇeˇren´y ve stejn´em obdob´ı. Pouze v testu 5 byla u ´spˇeˇsnost v´ychoz´ı s´ıtˇe kr´atkodobˇe zdokonalena. 55
Test A: S´ıt’ se stejnou konfigurac´ı, jako v testu 11 jsme testovali druh´ ym typem testu. V deseti n´ahodn´ ych pokusech jsme testovali, zda se agent bez pˇr´ıtomnosti dravc˚ u nauˇc´ı konzumovat a vyhled´avat potravu a pˇreˇz´ıt tak celou simulaci. Ve vˇsech deseti pˇr´ıpadech se toto agentovi povedlo v pr˚ umˇeru po 11.5 simulac´ıch. Stabiln´ı ˇreˇsen´ı se povedlo naj´ıt v osmi z deseti pˇr´ıpad˚ u a to v pr˚ umˇeru po 1006 simulac´ıch se smˇerodatnou odchylkou 980.
5.1.4
Modifikovan´ e TD(λ)
V n´asleduj´ıc´ım popisujeme experimenty s algoritmem 4 popsan´ ym v 4.4.2 - upravenou verz´ı TD(λ). Pouˇz´ıvali jsme vˇzdy parametr uˇcen´ı α = 0.5 a z´ıskanou odmˇenu jsme v kaˇzd´em kroku dˇelili ˇc´ıslem 50, aby celkov´a odmˇena za partii nemohla pˇr´ıliˇs pˇres´ahnout ˇc´ıslo 1. Pouˇzit´a hodnota λ, pokud nen´ı uvedeno jinak, byla 0.5. V experimentech, ve kter´ ych jsme pouˇz´ıvali metodu zn´ahodnˇen´ı ˇc´ıslo 2 a 3, jsme hodnoty kaˇzd´eho ze 4 vstup˚ u pro akci diskretizovali do mnoˇziny 0, 0.5, 1, ˇcili moˇzn´ ych akc´ı bylo 34 = 81. Testy 18, 19 a 20 (obr´ azek 5.9): Pouˇzili jsme odmˇen ˇovac´ı funkci ˇc´ıslo 2 a s´ıt’ bez skryt´ ych neuron˚ u. Porovn´avali jsme v´ ysledky pro r˚ uzn´e zp˚ usoby zn´ahodnˇen´ı popsan´e v 4.4.3. V testu 18 jsme pouˇzili zn´ahodnˇen´ı, pˇri kter´em je vygenerov´ano 50 akc´ı a z nich vybr´ana ta nejlepˇs´ı (metoda zn´ahodnˇen´ı ˇc. 4). V testu 19 jsme pouˇzili ˇreˇsen´ı, kter´e zakazuje agentovi pouˇz´ıvat stejnou akci mnohokr´at za sebou, pˇriˇcemˇz hodnota ACT ION LIM IT byla rovna tˇrem (metoda zn´ahodnˇen´ı ˇc´ıslo 3). V testu 20 jsme pak s pravdˇepodobnost´ı 5% nahradili nejlepˇs´ı akci n´ahodnou akc´ı (metoda zn´ahodnˇen´ı 2). V testu se prok´azalo, ˇze pro reprezentaci vlivu agentovy ˇcinnosti na z´ısk´an´ı odmˇeny je tˇreba s´ıtˇe se skryt´ ymi neurony. S´ıtˇe si nevedly zcela ˇspatnˇe, ale velmi brzy se pˇrestaly zdokonalovat a jejich u ´spˇeˇsnost stagnovala. Zdaleka nejlepˇs´ı v´ ysledky dos´ahla s´ıt’ v testu 18 pouˇz´ıvaj´ıc´ı zn´ahodnˇen´ı 4. S´ıt’ pouˇz´ıvaj´ıc´ı zn´ahodnˇen´ı 2 v testu 20 si vedla l´epe neˇz s´ıt’ se zn´ahodnˇen´ım 3 v testu 19.
Obr´azek 5.9: Testy 18, 19, 20. Testy 21, 22 a 23 (obr´ azek 5.10): Stejn´e testy jsme pot´e opakovali pro s´ıt’ s jednou skrytou vrstvou o ˇctyˇrech neuronech. V testu 21 jsme pouˇzili zn´ahodnˇen´ı 4 s nejlepˇs´ı z 50 56
n´ahodn´ ych akc´ı, v testu 22 jsme omezovali opakov´an´ı stejn´ ych akc´ı a v testu 23 jsme 5% akc´ı generovali n´ahodnˇe. Test 21 dopadl velmi u ´spˇeˇsnˇe. S´ıt’ se pomalu, ale nepˇretrˇzitˇe zdokonalovala a po 10000 tr´enovac´ıch simulac´ı dosahovala v pr˚ umˇeru pˇres 460000 bod˚ u za 100 simulac´ı, ˇc´ımˇz v´ yznamnˇe pˇrekonala i ruˇcnˇe nastavenou s´ıt’ z testu 4. S´ıt’ z testu 22 s metodou zn´ahodnˇen´ı 3 se t´eˇz uˇcila, ale ze tˇrech testovan´ ych s´ıt´ı nejpomaleji. S´ıt’ v testu 23 se v prvn´ıch 1000 simulac´ıch t´emˇeˇr nezdokonalovala, ale pozdˇeji se zaˇcala uˇcit a dos´ahla lepˇs´ıch v´ ysledk˚ u neˇz v testu 22.
Obr´azek 5.10: Testy 21, 22, 23. Lze ˇr´ıci, ˇze vˇsechny tˇri metody fungovaly. Agenti se dok´azali nauˇcit v´ yhodn´ ym zp˚ usobem volit mezi konzumac´ı nalezen´e potravy a vyhled´av´an´ım nov´e potravy. Agenti se tak´e nauˇcili reagovat u ´tˇekem na pˇr´ıtomnost dravc˚ u.
Obr´azek 5.11: Testy 22, 25. Testy 24, 25 a 26 (obr´ azky 5.11, 5.12 a 5.13): Stejn´e testy s jednou skrytou vrstvou jsme opakovali pˇri nahrazen´ı odmˇen ˇovac´ı funkce 2 odmˇen ˇovac´ı funkc´ı 3. V testu 24 bylo pouˇzito zn´ahodnˇen´ı 4, v testu 25 zn´ahodnˇen´ı 3 a v testu 26 zn´ahodnˇen´ı 2. 57
Zmˇena odmˇen ˇovac´ı funkce pˇrinesla v kombinaci se zn´ahodnˇen´ım 4 v testu 24 podstatn´e zlepˇsen´ı u ´spˇeˇsnosti v´ ysledn´e s´ıtˇe (obr´azek 5.14). Pˇritom v prvn´ıch cca 1000 simulac´ıch mˇela lepˇs´ı v´ ysledky s´ıt’ uˇcen´a s odmˇenou 2, kter´a byla pozdˇeji bˇehem uˇcen´ı s´ıt´ı s odmˇenou 3 pˇredstihnuta. Tento jev je moˇzn´e vysvˇetlit tak, ˇze jednoduˇsˇs´ı odmˇen ˇovac´ı funkce pomohla agentovi na poˇca´tku nauˇcit se z´akladn´ı taktiku pˇreˇzit´ı, zat´ımco v pozdˇejˇs´ı f´azi pom´ahala agentovi sofistikovanˇejˇs´ı odmˇena 3 se inteligentnˇeji vyh´ ybat nebezpeˇc´ı. Pˇri zb´ yvaj´ıc´ıch dvou typech zn´ahodnˇen´ı ke zdokonalen´ı s pouˇzit´ım odmˇeny 3 nedoˇslo. Vz´ajemn´e poˇrad´ı jednotliv´ ych metod zn´ahodnˇen´ı bylo stejn´e jako v pˇredchoz´ıch experimentech pˇri odmˇenˇe ˇc´ıslo 2.
Obr´azek 5.12: Testy 23, 26.
Obr´azek 5.13: Testy 21, 24, 27. Test 27 (obr´ azek 5.13): V´ ysledky z pˇredchoz´ıch test˚ u jsme zkusili t´eˇz porovnat s v´ ysledky s´ıtˇe pˇri metodˇe zn´ahodnˇen´ı 4 a nejjednoduˇsˇs´ı odmˇen ˇovac´ı funkce 1. S´ıt’ s touto odmˇenou pouze z poˇca´tku uˇcen´ı pˇredstihovala s´ıtˇe odmˇen ˇovac´ı funkc´ı 2 a 3, velmi z´ahy se ale pˇrestala zdokonalovat a jej´ı v´ ysledn´a u ´spˇeˇsnost byla mnohem niˇzˇs´ı. Potvrdilo se tak, ˇze jemnˇejˇs´ı odmˇen ˇovac´ı funkce zlepˇsuje proces zpˇetnovazebn´eho uˇcen´ı. 58
Obr´azek 5.14: S´ıt’ uˇ cen´ a algoritmem 4. S´ıt’ jednoho z nej´ uspˇeˇsnˇejˇs´ıch agent˚ u v testu 24 po 4000 tr´eninkov´ych simulac´ıch. V´ahy a prahy byly zaokrouhleny. Agent umˇel vyhled´ avat potravu a velmi u ´spˇeˇsnˇe unikat dravc˚ um. S´ıtˇe r˚ uzn´ych agent˚ u v testu si vz´ajemnˇe byly velmi podobn´e. Ze vˇsech neuron˚ u ve skryt´e vrstvˇe vedou kladn´e synapse do v´ystupn´ıho neuronu, maj´ı tedy kladn´y pˇr´ıspˇevek k oˇcek´ avan´e kumulativn´ı odmˇenˇe. S´ıti dominuj´ı dr´ahy, kter´e sniˇzuj´ı predikci odmˇeny, pokud je pozorov´ an dravec nebo pokud agent trp´ı hladem. V´ ahy zachycuj´ıc´ı vliv agentov´ych akc´ı jsou m´enˇe v´yrazn´e. Zelenˇe jsou vyznaˇceny dr´ahy, ˇ kter´e zachycuj´ı, ˇze je v´yhodn´e konzumovat potravu. Cervenˇ e jsou naopak oznaˇceny v´ahy, kter´e zachycuj´ı v´yhody pohybu. Agent se rozhodne konzumovat potravu a z˚ ustat na m´ıstˇe, pokud je v takov´em stavu, ˇze v´ystup skryt´eho neuronu oznaˇcen´eho ˇsipkou je rozhoduj´ıc´ı pro hodnotu v´ystupu cel´e s´ıtˇe. Jak uk´azaly experimenty v´ yˇse, metoda zn´ahodnˇen´ı 4 pˇrin´aˇs´ı podstatnˇe lepˇs´ı v´ ysledky neˇz ostatn´ı uvaˇzovan´e metody. V dalˇs´ım jiˇz experimentujeme pouze s metodou zn´ahodnˇen´ı 4. Testy 28 a 29 (obr´ azek 5.15): V tˇechto experimentech bylo testov´ano, zda druh´a skryt´a vrstva m˚ uˇze b´ yt pˇr´ınosem v ˇreˇsen´ı dan´e u ´lohy. V obou pˇr´ıpadech mˇela s´ıt’ dvˇe skryt´e vrstvy po ˇctyˇrech neuronech. V experimentu 28 byla pouˇzita odmˇen ˇovac´ı funkce ˇc´ıslo 2 a v experimentu 29 odmˇen ˇovac´ı funkce ˇc´ıslo 3. V obou testech byly dosaˇzeny horˇs´ı v´ ysledky neˇz v odpov´ıdaj´ıc´ıch variant´ach s jednou skrytou vrstvou. Dalˇs´ı skryt´a vrstva tedy nen´ı pˇr´ınosem pˇri ˇreˇsen´ı dan´e u ´lohy. Testy 30 - 33 (obr´ azek 5.16): V tˇechto testech jsme se pokusili naj´ıt nejlepˇs´ı hodnoty parametru λ pro danou u ´lohu. V kaˇzd´em testu jsme pouˇzili jednu skrytou vrstvu 59
Obr´azek 5.15: Testy 21, 24, 28, 29. a odmˇen ˇovac´ı funkci ˇc´ıslo 2. V testech 30, 31, 32 a 33 byly pouˇzity hodnoty λ v poˇrad´ı 0, 0.25, 0.75, 1 a v´ ysledky byly srovn´any s testem 21, ve kter´em byla pouˇzita hodnota λ = 0.5. Pˇri hodnotˇe λ = 1 se s´ıt’ zpoˇca´tku uˇcila nejrychleji, ale velmi brzy se pˇrestala zdokonalovat a v´ ysledky byly znatelnˇe horˇs´ı neˇz pro vˇsechny ostatn´ı hodnoty. Pro ostatn´ı hodnoty byly v´ ysledky srovnateln´e, nicm´enˇe nejl´epe se s´ıt’ uˇcila pˇri hodnotˇe λ = 0.75, m´enˇe dobˇre pro λ = 0.5, potom pro λ = 0.25 a jeˇstˇe h˚ uˇre pro λ = 0. Tedy od urˇcit´e hodnoty rostla u ´spˇeˇsnost s´ıtˇe s velikost´ı λ, patrnˇe d´ıky lepˇs´ı schopnosti pˇredv´ıdat opoˇzdˇen´e odmˇeny.
Obr´azek 5.16: Testy 21, 30, 31, 32, 33.
60
V´ ysledky experiment˚ u s modifikovan´ ym TD(λ) shrnuje tabulka 5.3. Test 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
Odmˇ ena
Zn´ ahodnˇ en´ı
λ
Skryt´ e neurony
Nej. v´ ysledek
Pr˚ um. v´ ysledek
2 2 2 2 2 2 3 3 3 1 2 3 2 2 2 2
4 3 2 4 3 2 4 3 2 4 4 4 4 4 4 4
0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0 0.25 0.75 1
0 0 0 4 4 4 4 4 4 4 4+4 4+4 4 4 4 4
293703 91675 135955 399840 220962 274455 427641 200613 247435 297242 299929 360709 348474 382142 418372 234959
251125 86156 132399 313315 151198 172748 330954 144956 160655 273909 244587 260887 266309 298424 323127 213849
Tabulka 5.3: V´ ysledky experiment˚ u s algoritmem 4. Pouˇzit´e metody zn´ahodnˇen´ı jsou oˇc´ıslov´ any tak, jak je pops´ ano v ˇc´ asti 4.4.3. V sloupci “Nej. v´ysledek” je nejvyˇsˇs´ı poˇcet bod˚ u z´ıskan´y za sto simulac´ı z prvn´ıch 38 po sobˇe jdouc´ıch set simulac´ı. Ve sloupci “Pr˚ um. v´ysledek” je pr˚ umˇern´y poˇcet bod˚ u na sto simulac´ı mˇeˇren´y ve stejn´em obdob´ı. Nejlepˇs´ı v´ysledky byly dosaˇzeny v testu 24. Test B: Pro test bez dravc˚ u byla vybr´ana konfigurace pouˇzit´a v testu 24 - odmˇen ˇovac´ı pˇredpis 3 se zn´ahodnˇen´ım ˇc´ıslo 4, jednou skrytou vrstvou a parametrem λ = 0.5. V kaˇzd´em z deseti test˚ u se agentovi povedlo pˇreˇz´ıt celou simulaci, pr˚ umˇernˇe k tomu doch´azelo po 77 simulac´ıch. Stabiln´ı ˇreˇsen´ı se povedlo naj´ıt pouze ve tˇrech z tˇechto pokus˚ u, v pr˚ umˇeru po 282 simulac´ıch se smˇerodatnou odchylkou 97. Avˇsak i bˇehem pokus˚ u, pˇri kter´ ych nebylo stabiln´ı ˇreˇsen´ı nalezeno, se s´ıt’ uˇz po nˇekolika stech simulac´ıch dostala do takov´eho stavu, ˇze agent pˇreˇz´ıval v pr˚ umˇeru kaˇzdou druhou testovac´ı simulaci.
5.1.5
Schmidhuberova rekurentn´ı s´ıt’
V t´eto ˇc´asti jsou pops´any experimenty s algoritmem 5 z ˇca´sti 4.5. Pro u ´ˇcely u ´lohy dravce a koˇristi byla ˇr´ıdic´ı s´ıt’ vybavena ˇctyˇrmi norm´aln´ımi vstupy (hlad, ˇcich, zrak a pˇr´ıtomnost potravy), jedn´ım odmˇen ˇovac´ım vstupem a ˇctyˇrmi v´ ystupy (konzumace potravy, rotace vpravo, rotace vlevo a pohyb vpˇred). Modeluj´ıc´ı s´ıt’ obsahovala prediktory pro vˇsechny vstupy ˇr´ıdic´ı s´ıtˇe. Poˇcet skryt´ ych neuron˚ u se mˇenil mezi r˚ uzn´ ymi testy. S´ıt’ je zn´azornˇena na obr´azku 5.17. Pouˇzit´e parametry uˇcen´ı pro ˇr´ıdic´ı i modeluj´ıc´ı s´ıt’ byly rovn´e 0.5. Vˇsechny aproximace parci´aln´ıch derivac´ı byly jednou za dvacet krok˚ u vynulov´any. Pokud jsme totiˇz tyto parci´aln´ı derivace nevynulovali, nar˚ ustaly jejich hodnoty bˇehem uˇcen´ı k nekoneˇcnu a s nimi i v´ahy ˇr´ıdic´ı s´ıtˇe. V testech nebyly pouˇzity zmiˇ novan´e modifikace rozˇsiˇruj´ıc´ı algoritmus o umˇelou zvˇedavost, pravdˇepodobnostn´ı v´ ystupy ani techniky “Temporal Difference learning”. Test 34 (obr´ azek 5.18): Nejprve jsme zkusili pouˇz´ıt algoritmus bez jak´ekoli formy zn´ahodnˇen´ı v´ ystup˚ u. Pro odmˇen ˇov´an´ı byl pouˇzit pˇredpis 2 zohledˇ nuj´ıc´ı agentovu z´asobu 61
Obr´azek 5.17: Schmidhuberova s´ıt’ pro u ´ lohu dravce a koˇ risti. Na obr´azku je sch´ema Schmidhuberovy rekurentn´ı s´ıtˇe pro ˇreˇsen´ı u ´lohy koˇristi a dravce se dvˇema skryt´ymi neurony modeluj´ıc´ı s´ıtˇe tak, jak byla pouˇzita napˇr´ıklad v testu 36. Modˇre jsou vybarveny norm´ aln´ı vstupn´ı neurony a jejich prediktory, oranˇzovˇe odmˇena a jej´ı prediktor, ˇzlutˇe v´ystupn´ı neurony a ˇsedˇe skryt´e neurony. Ze vˇsech vstupn´ıch a v´ystupn´ıch neuron˚ u ˇr´ıdic´ı s´ıtˇe vedou synapse do vˇsech neuron˚ u modeluj´ıc´ı s´ıtˇe. ˇ ıdic´ı s´ıt’ nemˇela ˇz´adn´ potravy ale nikoli nebezpeˇc´ı od dravc˚ u. R´ y skryt´ y neuron a modeluj´ıc´ı s´ıt’ mˇela 2 skryt´e neurony. Aby byla modeluj´ıc´ı s´ıt’ schopna reprezentovat sloˇzitˇejˇs´ı znalosti typu “v jedn´e situaci pˇrinese odmˇenu akce A a v jin´e situaci pˇrinese odmˇenu akce B”, opakovali jsme krok 4 algoritmu v kaˇzd´e iteraci dvakr´at. Vybaven´ı ˇr´ıdic´ı s´ıtˇe jsme v tomto experimentu prov´adˇeli pouze jednou.
Obr´azek 5.18: Testy 34. S´ıt’ bez zn´ahodnˇen´ı v testu 34 se nedok´azala vyrovnat s probl´emem “strachu z nezn´ama” popsan´ ym v ˇc´asti 4.4.3. S´ıtˇe se neuˇcily a vˇsichni agenti po urˇcit´em poˇctu simulac´ı dospˇeli do stavu, kdy neust´ale opakovali stejnou akci. Bud’ se nepˇretrˇzitˇe pohybovali a nekonzumovali potravu, a nebo st´ale z˚ ust´avali na m´ıstˇe a konzumovali potravu, dokud jim nedoˇsla ˇci dokud je nedostihl dravec. 62
Testy 35 - 38 (obr´ azek 5.19): Test 34 prok´azal nutnost urˇcit´e formy zn´ahodnˇen´ı. V tˇechto a n´asleduj´ıc´ıch testech proto byla v kaˇzd´e iteraci algoritmu s pravdˇepodobnost´ı 5% agentova akce nahrazena akc´ı n´ahodnou. V tˇechto testech jsme experimentovali s pouˇzitou odmˇen ˇovac´ı funkc´ı a poˇctem skryt´ ych neuron˚ u modeluj´ıc´ı s´ıtˇe. V testech 35 a 36 byla pouˇzita odmˇen ˇovac´ı funkce 2, zat´ımco v testech 37 a 38 odmˇen ˇovac´ı funkce 3. V testech 35 a 37 byla pouˇzita modeluj´ıc´ı s´ıt’ bez skryt´ ych neuron˚ u, v testech 36 a 38 mˇela modeluj´ıc´ı s´ıt’ 2 skryt´e neurony. Ostatn´ı podm´ınky byly stejn´e, jako v testu 34.
Obr´azek 5.19: Testy 35, 36, 37, 38. Vˇsechny tyto ˇctyˇri s´ıtˇe se dok´azaly u ´lohu zpoˇca´tku rychle nauˇcit. Dok´azaly vyhled´avat a konzumovat potravu i vyh´ ybat se dravc˚ um. S pˇr´ıliˇs dlouh´ ym uˇcen´ım se pak ale jejich kvalita zhorˇsovala a pˇribliˇznˇe po 2500 simulac´ıch velmi klesla a agenti mˇeli tendenci pasivnˇe z˚ ust´avat na jednom m´ıstˇe. Je moˇzn´e, ˇze tato s´ıt’ podl´eh´a obdobˇe tzv. pˇreuˇcen´ı, se kter´ ym se setk´av´ame pˇri uˇcen´ı s uˇcitelem - viz konec ˇc´asti 3.2. O nˇeco l´epe dok´azaly u ´lohu ˇreˇsit s´ıtˇe v testech 41 a 42 pˇri pouˇzit´ı odmˇen ˇovac´ı funkce 2. V tomto pˇr´ıpadˇe se tedy osvˇedˇcila sp´ıˇse jednoduˇsˇs´ı odmˇen ˇovac´ı funkce 2. Skryt´e neurony v modeluj´ıc´ı s´ıti nemˇely na u ´spˇeˇsnost pˇr´ıliˇs velk´ y vliv. Test 39 (obr´ azek 5.20): Pˇri dvou skryt´ ych neuronech modeluj´ıc´ı s´ıtˇe jsme t´eˇz provedli test s odmˇen ˇovac´ı funkc´ı ˇc´ıslo 1. Pˇri pouˇzit´ı t´eto odmˇen ˇovac´ı funkce vˇsak nedoch´azelo k uˇcen´ı a agenti po kr´atk´e dobˇe vykon´avali neust´ale stejn´e akce. Tedy primitivn´ı odmˇen ˇovac´ı funkce, kter´a rozliˇsuje pouze zda je agent ˇziv´ y nebo mrtv´ y, nestaˇc´ı k tomu, aby algoritmus fungoval. Testy 40 a 41 (obr´ azek 5.21): Testov´ana byla u ´spˇeˇsnost neuronov´e s´ıtˇe pˇri r˚ uzn´em poˇctu opakov´an´ı kroku 4 pouˇzit´eho algoritmu 5, tedy pˇri r˚ uzn´em poˇctu vybaven´ı modeluj´ıc´ı s´ıtˇe na jeden krok simulace. V testu 40 byl poˇcet opakov´an´ı 1 a v testu 41 byl roven 3. V´ ysledky byly porovn´any s testem 36, ve kter´em byl krok 4 opakov´an dvakr´at. Testy ukazuj´ı, ˇze s pˇrib´ yvaj´ıc´ım poˇctem opakov´an´ı v´ ypoˇctu modeluj´ıc´ı s´ıtˇe na jednu iteraci algoritmu roste u ´spˇeˇsnost s´ıtˇe. S´ıt’ v testu 41 pˇredstihla s´ıt’ z testu 36, kter´a byla 63
Obr´azek 5.20: Testy 36, 38, 39. ´ eˇsnost s´ıt´ı po urˇcit´em poˇctu iterac´ı opˇet zaˇcala v´ u ´spˇeˇsnˇejˇs´ı neˇz s´ıt’ v testu 40. Uspˇ yraznˇe klesat, pˇriˇcemˇz ale pˇri poˇctu iterac´ı 3 klesala znatelnˇe pomaleji.
Obr´azek 5.21: Testy 36, 40, 41. Testy 42, 43 a 44 (obr´ azek 5.22): V tˇechto testech jsme se d´ale snaˇzili zv´ yˇsit s´ılu s´ıtˇe. Vych´azeli jsme opˇet z konfigurace pouˇzit´e v testu 36. V testu 42 byly m´ısto 2 skryt´ ych neuron˚ u modeluj´ıc´ı s´ıtˇe pouˇzity 4 skryt´e neurony. V testu 43 jsme ponechali 2 skryt´e neurony v modeluj´ıc´ı s´ıti, ale ˇr´ıdic´ı s´ıt’ t´eˇz obsahovala 2 skryt´e neurony. Nastaven´ı testu 44 pak bylo stejn´e jako pro test 43 s tou v´ yjimkou, ˇze nejen modeluj´ıc´ı s´ıt’, ale t´eˇz ’ ˇr´ıdic´ı s´ıt vybavovala dvakr´at v jednom kroku simulace (Dvakr´at jsme opakovali krok 2 algoritmu 5.). ´ eˇsnost s´ıt´ı byla velmi podobn´a. Z´avˇerem je, ˇze zv´ Uspˇ yˇsen´ı poˇctu skryt´ ych neuron˚ u ani opakov´an´ı v´ ypoˇctu ˇr´ıdic´ı s´ıtˇe nav´ıc nepˇrin´aˇs´ı v´ yrazn´e zv´ yˇsen´ı u ´spˇeˇsnosti. V´ ysledky algoritmu 5 v experimentu s dravci jsou zaznamen´any v tabulce 5.4. 64
Obr´azek 5.22: Testy 36, 42, 43, 44. Test 34 35 36 37 38 39 40 41 42 43 44
Odmˇ ena
Kroky o + m
Skryt´ eo+m
N´ ahodnost
Nej. v´ ysl.
Pr˚ um. v´ ysl.
2 2 2 3 3 1 2 2 2 2 2
1+2 1+2 1+2 1+2 1+2 1+2 1+1 1+3 1+2 1+2 2+2
0+2 0+0 0+2 0+0 0+2 0+2 0+2 0+2 0+4 2+2 2+2
5% 5% 5% 5% 5% 5% 5% 5% 5% 5%
102777 179324 181512 165068 156824 86026 150783 188129 190217 184423 177350
92910 135352 133507 129025 116359 63893 119371 152446 145156 147094 142303
Tabulka 5.4: V´ ysledky experiment˚ u s algoritmem 5. Sloupec “Kroky o + m” oznaˇcuje, kolik v´ypoˇct˚ u ˇr´ıdic´ı respektive modeluj´ıc´ı s´ıtˇe bylo opakov´ ano v jednom kroku algoritmu. Sloupec “Skryt´e o + m” obsahuje poˇcet skryt´ych neuron˚ u v ˇr´ıdic´ı a modeluj´ıc´ı s´ıti. V sloupci “Nej. v´ysl.” je nejvyˇsˇs´ı poˇcet bod˚ u z´ıskan´y za sto simulac´ı z prvn´ıch 30 po sobˇe jdouc´ıch set simulac´ı. Ve sloupci “Pr˚ um. v´ysl.” je pr˚ umˇern´y poˇcet bod˚ u na sto simulac´ı mˇeˇren´y ve stejn´em obdob´ı. Nejlepˇs´ı v´ysledky byly dosaˇzeny v testech 36, 41, 42 a 43. Test C: Pro test bez dravc˚ u byla zvolena konfigurace z testu 36. Ve vˇsech z deseti pokus˚ u bylo pomˇernˇe rychle nalezeno stabiln´ı ˇreˇsen´ı, pˇri kter´em agent pˇreˇzil dvacet simulac´ı v ˇradˇe. Poprv´e agent pˇreˇzil celou simulaci v pr˚ umˇeru po 58 tr´eninkov´ ych simulac´ıch, stabiln´ı ˇreˇsen´ı nach´azel v pr˚ umˇeru po 101 simulac´ıch se smˇerodatnou odchylkou 99. V´ ysledn´ı jedinci obvykle pravidelnˇe stˇr´ıdali krok, ve kter´em konzumovali potravu, a krok, ve kter´em se pˇresouvali na jin´e m´ısto. Na obr´azku 5.23 je zobrazena s´ıt’ podobn´a t´e, kter´a byla v´ ysledkem testu C. V modeluj´ıc´ı s´ıti lze pozorovat k´odov´an´ı mnoha z´akladn´ıch znalost´ı, napˇr´ıklad, ˇze pokud m´a agent hlad a n´ızkou odmˇenu, je pravdˇepodobn´e, ˇze bude m´ıt hlad a odmˇena bude n´ızk´a i v pˇr´ıˇst´ım kroku. S´ıt’ t´eˇz zachycuje znalost o tom, ˇze konzumace potravy pˇrin´aˇs´ı po65
Obr´azek 5.23: Schmidhuberova s´ıt’ uˇ cen´ a v testu bez pred´ ator˚ u. Agent ˇr´ızen´y touto s´ıt´ı umˇel pˇreˇz´ıt v prostˇred´ı bez pred´ator˚ u neomezenˇe dlouhou dobu. Narozd´ıl od testu C zde pro jednoduchost nebyly pouˇzity skryt´e neurony (pouˇzita konfigurace z testu 35). Pro pˇrehlednost jsme t´eˇz nezakreslili vstupn´ı neurony pro ˇcich a zrak, ani jejich prediktory, nebot’ v tomto testu nebyly tyto vstupy nikdy aktivn´ı. Obr´azek neobsahuje ani v´ystupn´ı neurony pro rotaci, kter´e nejsou pˇr´ıliˇs d˚ uleˇzit´e. Pro pochopen´ı funkce modeluj´ıc´ı s´ıtˇe je tˇreba vz´ıt v u ´vahu, ˇze v´ypoˇcet modeluj´ıc´ı s´ıtˇe prob´ıhal dvakr´at v kaˇzd´e iteraci algoritmu. V´ ahy byly zaokrouhleny na jedno desetinn´e m´ısto. travu, ale sniˇzuje dostupnost potravy v pˇr´ıˇst´ım kroku. Za pozornost stoj´ı dvˇe dr´ahy, kter´e jsou vyznaˇceny ˇcervenˇe. Jedna obsahuje znalost o tom, ˇze pohyb sniˇzuje z´ıskanou odmˇenu v n´asleduj´ıc´ım kroku (nebot’ agent nekonzumuje potravu a naopak pohybem j´ı v´ıce spotˇrebuje). Druh´a dr´aha reprezentuje znalost, ˇze pohyb pˇrin´aˇs´ı potravu a potrava pˇrin´aˇs´ı odmˇenu. Tyto dvˇe znalosti p˚ usob´ı protich˚ udnˇe pˇri tr´enov´an´ı vah synaps´ı ˇr´ıdic´ı s´ıtˇe, kter´e vedou do v´ ystupn´ıho neuronu pro pohyb. To nut´ı ˇr´ıdic´ı s´ıt’ rovnomˇernˇe stˇr´ıdat mezi pohybem a konzumac´ı potravy. N´avaznost ˇcerven´ ych synaps´ı z neuronu pro pohyb do prediktoru potravy a ze vstupu pro potravu do prediktoru odmˇeny pˇri uˇcen´ı ˇr´ıdic´ı s´ıtˇe je d´ana t´ım, ˇze na posledn´ım ˇra´dku bloku 5 algoritmu 5 jsou parci´aln´ı derivace v´ ystup˚ u vstupn´ıch neuron˚ u nahrazov´any parci´aln´ımi derivacemi aktivac´ı jejich prediktor˚ u. Zobrazen´e nastaven´ı ˇr´ıdic´ı s´ıtˇe vede agenta k tomu, aby konzumoval potravu, pokud je pˇr´ıtomna, a pohyboval se v opaˇcn´em pˇr´ıpadˇe. Kladn´e v´ahy kˇr´ıˇzov´ ych vazeb mezi v´ ystupn´ımi neurony pro konzumaci potravy a pohyb nav´ıc vedou agenta k tomu, aby akce stˇr´ıdal (Doch´az´ı zde k vyuˇzit´ı rekurentn´ı dr´ahy coby pamˇeti.).
66
5.1.6
Srovn´ an´ı testovan´ ych algoritm˚ u
Pro srovn´an´ı v´ ysledk˚ u algoritm˚ u 3, 4 a 5 jsme vybrali jejich nej´ uspˇeˇsnˇejˇs´ı konfigurace z test˚ u 11, 24 a 36 (obr´azek 5.24). Pro kaˇzd´e z tˇechto tˇr´ı nastaven´ı jsme opakovali test s dravci desetkr´at pˇri r˚ uzn´ ych n´ahodn´ ych inicializac´ıch. Pro kaˇzd´e opakov´an´ı jsme zaznamenali dosaˇzen´e body v nejlepˇs´ı stovce z prvn´ıch 3000 tr´enovac´ıch simulac´ı. Pro kaˇzd´ y z algoritm˚ u jsme spoˇc´ıtali pr˚ umˇer bod˚ u za nejlepˇs´ı stovku a smˇerodatnou odchylku pˇres vˇsech 10 opakov´an´ı. Jak ukazuje tabulka 5.5, v testech prvn´ıho typu byl jednoznaˇcnˇe nej´ uspˇeˇsnˇejˇs´ı algoritmus 4, kter´ y se v cel´em pr˚ ubˇehu testov´an´ı dok´azal zdokonalovat a dosahoval pˇribliˇznˇe dvojn´asobn´ y poˇcet bod˚ u oproti ostatn´ım dvˇema algoritm˚ um. Proto lze se statistickou spolehlivost´ı 95% a dokonce i 99% tvrdit, ˇze tento algoritmus dosahuje lepˇs´ıch v´ ysledk˚ u neˇz ostatn´ı dva algoritmy. Sofistikovanˇejˇs´ı algoritmus 5, kter´ y oproti obˇema zb´ yvaj´ıc´ım algoritm˚ um vybavuje agenta t´eˇz pamˇet´ı, se po 1500 simulac´ıch pˇrestal zdokonalovat. Mˇeˇren´ı ukazuj´ı, ˇze u ´spˇeˇsnost tohoto algoritmu byla velmi podobn´a u ´spˇeˇsnosti algoritmu 3. V testech druh´eho typu pak nejl´epe uspˇel algoritmus 5, kter´ y se vˇzdy pomˇernˇe rychle nauˇcil pˇreˇz´ıt cel´e trv´an´ı simulace.
Obr´azek 5.24: Srovn´ an´ı algoritm˚ u 3, 4, 5 Moˇznosti algoritmu 3 jsou zˇrejmˇe omezen´e a nebyla oˇcek´av´ana jeho pˇr´ıliˇsn´a u ´spˇeˇsnost v ˇreˇsen´ı u ´lohy. V´ ysledky jsou nicm´enˇe zaj´ımavou uk´azkou toho, ˇceho lze dos´ahnout s velmi jednoduch´ ym algoritmem. Vysok´a u ´spˇeˇsnost algoritmu 4 je pomˇernˇe pˇrekvapiv´a, nebot’ algoritmus byl p˚ uvodnˇe urˇcen pro odliˇsn´ y typ u ´loh a s´ıt’ nem´a moˇznost si uchov´avat informace z minulosti. Co se t´ yˇce algoritmu 5 pro rekurentn´ı s´ıt’, v´ ysledky dosaˇzen´e v testech bez dravc˚ u jsou povzbudiv´e. Naproti tomu v testech prvn´ıho typu se algoritmus pˇr´ıliˇs neosvˇedˇcil, a vezmeme-li v u ´vahu jeho vysokou v´ ypoˇcetn´ı n´aroˇcnost, algoritmus neprok´azal svoji uˇziteˇcnost v ˇreˇsen´ı dan´e u ´lohy. Je ale pravdˇepodobn´e, ˇze existuj´ı rezervy ve zdokonalen´ı tohoto algoritmu, napˇr´ıklad v pouˇzit´ı propracovanˇejˇs´ı metody zn´ahodnˇen´ı. 67
Algoritmus 3 4 5
Test 11 24 36
Test bez dravc˚ u
Pr˚ umˇ ern´ e body 5
80% 30% 100%
1.805 · 10 3.929 · 105 1.815 · 105
Smˇ er. odch. 1.06 · 104 1.78 · 104 1.64 · 104
Tabulka 5.5: Srovn´ an´ı u ´ spˇ eˇ snosti algoritm˚ u 3, 4 a 5 pˇ ri nejlepˇ s´ım nalezen´ em nastaven´ı jejich parametr˚ u. Sloupec “Test bez dravc˚ u” oznaˇcuje pod´ıl test˚ u druh´eho typu (bez dravc˚ u), pˇri kter´ych bylo nalezeno stabiln´ı ˇreˇsen´ı. Sloupec “Pr˚ umˇern´e body” oznaˇcuje pr˚ umˇer z bod˚ u z´ıskan´ych algoritmem v nejlepˇs´ı stovce z prvn´ıch 3000 tr´enovac´ıch simulac´ı pˇres vˇsech deset opakov´ an´ı. Sloupec “Smˇer. odch. ud´av´ a pˇr´ısluˇsnou smˇerodatnou odchylku.” Na disku CD pˇriloˇzen´em k t´eto pr´aci se nach´az´ı spustiteln´a verze simul´atoru pˇrednastaven´a pro spuˇstˇen´ı experimentu s dravci i bez dravc˚ u pro vybran´e konfigurace kaˇzd´eho ze tˇr´ı popsan´ ych algoritm˚ u spoleˇcnˇe se sv´ ym zdrojov´ ym k´odem.
68
5.2
Aplikace v robotice
Jak jiˇz bylo uvedeno, vhodnou oblast´ı pro aplikaci zpˇetnovazebn´eho uˇcen´ı je robotika. Rozhodli jsme se proto otestovat nej´ uspˇeˇsnˇejˇs´ı z popsan´ ych algoritm˚ u - algoritmus 4 (modifikovan´ y TD(λ)) na u ´loze robotiky. Pouˇzit´ ym robotem byl e-puck 2 , navrˇzen´ y t´ ymem ´ ˇ okolo Francesca Mondady z Ecole Polytechnique F´ed´erale de Lausanne ve Sv´ ycarsku. Epuck je jednoduch´ y robot ve tvaru kotouˇce o pr˚ umˇeru cca 8 cm, kter´ y je vybaven dvˇema nez´avisle poh´anˇen´ ymi koly a osmi infraˇcerven´ ymi senzory schopn´ ymi detekovat bl´ızkost pˇrek´aˇzky. Robot je t´eˇz vybaven dalˇs´ımi senzory a efektory, kter´e v testu nebyly pouˇzity. Hled´an´ı vhodn´eho nastaven´ı a uˇcen´ı neuronov´e s´ıtˇe bylo prov´adˇeno z d˚ uvodu u ´spory ˇ ˇcasu na simul´atoru Webots 5.1.13 vytvoˇren´eho takt´eˇz Sv´ ycarskou firmou Cyberbotics 3 . V´ ysledn´a neuronov´a s´ıt’ byla nakonec otestov´ana na fyzick´em robotu.
Obr´azek 5.25: Robot e-puck je vybaven osmi infraˇcerven´ ymi senzory, kter´e mohou sn´ımat vzd´alenost nejbliˇzˇs´ı pˇrek´aˇzky ve smˇeru, kter´ ym m´ıˇr´ı. Obr´azek byl pˇrejat z webov´e str´anky http://www.e-puck.org.
5.2.1
ˇ sen´ Reˇ au ´ loha robotiky
C´ılem bylo nauˇcit agenta - robota pohybovat se ve vymezen´em prostoru a pˇritom se vyh´ ybat pˇrek´aˇzk´am (obr´azek 5.26). T´ımto prostorem je ohrazen´e ˇctvercov´e pole velikosti 60 × 60 cm. Aby nebylo u ´lohu moˇzn´e ˇreˇsit pˇr´ıliˇs snadno j´ızdou po st´ale stejn´e trase, 2 3
http://www.e-puck.org http://www.cyberbotics.com
69
Obr´azek 5.26: Prostˇ red´ı, ve kter´ em se pohybuje robot e-puck v pr˚ ubˇ ehu experimentu. Obr´ azek byl vygenerov´ an programem Webots. v prostoru se t´eˇz nach´az´ı ˇctvercov´a pˇrek´aˇzka velikosti 20 × 20 cm, kter´a je v pr˚ ubˇehu ’ experimentu pˇrem´ıst ov´ana. Jak ohr´adka, tak pˇrek´aˇzka maj´ı svˇetle ˇsedivou barvu. Vstupy: Jak je patrn´e z obr´azku 5.25, robot je infraˇcerven´ ymi senzory hustˇeji osazen vepˇredu. To umoˇzn ˇuje u ´ˇcinnˇeji zabr´anit kolizi s pˇrek´aˇzkou, pokud se robot pohybuje vpˇred. Hodnoty sn´ıman´e senzory ve stejn´e situaci se mezi r˚ uzn´ ymi fyzick´ ymi roboty liˇs´ı, protoˇze kaˇzd´ y robot je jedineˇcn´ y. Dosah senzor˚ u je v ˇra´du centimetr˚ u a z´aleˇz´ı tak´e na barvˇe pˇrek´aˇzky. Svˇetl´e tˇeleso l´epe odr´aˇz´ı infraˇcerven´e paprsky a je tedy l´epe vidˇet. Lze ˇr´ıci, ˇze pokud nen´ı v dosahu senzoru ˇza´dn´a pˇrek´aˇzka, hodnota senzoru se pohybuje pod hodnotou 300 4 . S bl´ıˇz´ıc´ı se pˇrek´aˇzkou roste tato hodnota aˇz k nˇekolika tis´ıc˚ um, a to neline´arnˇe vzhledem ke vzd´alenosti pˇrek´aˇzky. Abychom zjednoduˇsili agentovu neuronovou s´ıt’, omez´ıme poˇcet jeho vstupn´ıch neuron˚ u k´oduj´ıc´ıch stav prostˇred´ı na 4, kter´e budeme znaˇcit st0 , st1 , st2 , st3 . Kaˇzd´ y z tˇechto vstup˚ u bude odpov´ıdat dvˇema z infraˇcerven´ ych senzor˚ u, pˇresnˇeji tomu z nich, kter´ y je v dan´em okamˇziku aktivnˇejˇs´ı. Vstup st0 odpov´ıd´a dvojici senzor˚ u na lev´e stranˇe robota (IR 5, IR 6), vstup st1 odpov´ıd´a dvojici pˇredn´ıch senzor˚ u (IR 7, IR 0), vstup st2 odpov´ıd´a dvojici senzor˚ u na prav´e stranˇe robota (IR 1, IR 2) a vstup st3 odpov´ıd´a dvojici zadn´ıch neuron˚ u (IR 3, IR 4). Hodnoty senzor˚ u jsou jako takov´e pro vstup neuronov´e s´ıtˇe nevhodn´e, proto je tˇreba je pˇredzpracovat. Jsou-li sign´aly dvojice senzor˚ u odpov´ıdaj´ıc´ıch urˇcit´emu vstupn´ımu neuronu sti rovny S1 , respektive S2 , potom bude pro hodnotu yi tohoto neuronu platit: p max(max(S1 − 300, 0), max(S2 − 300, 0)) (5.2) ysti = 70 Hodnoty vstup˚ u nejprve sn´ıˇz´ıme o 300, abychom se zbavili ˇsumu. Potom vybereme aktivnˇejˇs´ı z obou neuron˚ u, jeho hodnotu odmocn´ıme, abychom omezili nelinearitu vzhledem 4
Pro fyzick´e roboty plat´ı, ˇze kaˇzd´ y senzor d´av´a ponˇekud r˚ uzn´e hodnoty, a senzory je tˇreba pro kaˇzd´eho zvl´aˇst’ kalibrovat .
70
ke vzd´alenosti pˇrek´aˇzky, a v´ ysledek nakonec vydˇel´ıme ˇc´ıslem 70, aby hodnota spadala do intervalu [0, 1], nebo jen m´ırnˇe pˇrevyˇsovala 1. V´ ystupy (akce): Obˇe z robotov´ ych kol se mohou nez´avisle na sobˇe pohybovat vpˇred nebo vzad. Agent bude m´ıt v pojet´ı zpˇetnovazebn´eho uˇcen´ı 4 v´ ystupy, z pohledu algoritmu 4 se bude jednat o 4 vstupn´ı neurony pro akce A0 , A1 , A2 , A3 . Pro usnadnˇen´ı uˇcen´ı jsme se rozhodli k´odovat zvl´aˇstn´ım neuronem pohyb kaˇzd´eho kola vpˇred a vzad. V´ ystup A0 odpov´ıd´a pohybu lev´eho kola vpˇred, v´ ystup A1 pohybu lev´eho kola vzad, v´ ystup A2 pohybu prav´eho kola vpˇred a v´ ystup A3 pohybu prav´eho kola vzad5 . Robot povoluje rychlost kaˇzd´eho kola z intervalu [−1000, 1000], kde 1000 oznaˇcuje maxim´aln´ı rychlost vpˇred, -1000 maxim´aln´ı rychlost vzad a 0 situaci, kdy je kolo v klidu. My omez´ıme rychlosti obou kol na interval [−500, 500]. Pro rychlost lev´eho kola Speed1 tedy bude platit: Speed1 = 500(yA0 − yA1 )
(5.3)
Podobnˇe pro rychlost Speed2 prav´eho kola plat´ı: Speed2 = 500(yA2 − yA3 )
(5.4)
Odmˇ ena: Abychom nemuseli v kaˇzd´em kroku pos´ılat nˇejak´ ym zp˚ usobem robotu zvnˇejˇsku informaci o tom, jak velkou z´ıskal odmˇenu, byla odmˇen ˇovac´ı funkce navrˇzena tak, aby robot s´am byl schopen svoji odmˇenu spoˇc´ıtat. To komplikuje fakt, ˇze robot s´am nezn´a svou pˇresnou polohu v prostˇred´ı. Proto bude, ponˇekud nepˇresnˇe, poˇc´ıtat robot ujetou vzd´alenost a detekovat kolizi s pˇrek´aˇzkou pouze z hodnot sv´ ych senzor˚ u (Jedn´a se o tzv. intern´ı ohodnocovac´ı funkci.). Pouˇzit´ y vzorec pro v´ ypoˇcet odmˇeny v ˇcase t bude: µ q ¶ (1) (2) (3) rt = rt · 1 − rt · (1 − rt ), (5.5) kde
|yA0 (t − 1) − yA1 (t − 1)| |yA2 (t − 1) − yA3 (t − 1)| + 2 2 je ˇclen odmˇen ˇuj´ıc´ı za pohyb kol (motivuje robota k pohybu), (1)
rt =
(5.6)
|yA0 (t − 1) − yA1 (t − 1) − yA2 (t − 1) + yA3 (t − 1)| (5.7) 2 je ˇclen penalizuj´ıc´ı pohyb kol proti sobˇe (odrazuje robota od toˇcen´ı se na m´ıstˇe) a µ ¶ |yst0 (t) + yst1 (t) + yst2 (t) + yst3 (t)| (3) rt = min 1, (5.8) 2 (2)
rt =
je ˇclen penalizuj´ıc´ı za aktivaci infraˇcerven´ ych senzor˚ u (odrazuje robota od bour´an´ı do pˇrek´aˇzek). Povˇsimnˇeme si, ˇze odmˇenu v ˇcase t urˇcujeme z hodnoty stavov´ ych vstup˚ u v ˇcase t (z toho, co moment´alnˇe zaznamen´avaj´ı senzory) a z hodnoty akˇcn´ıch vstup˚ u z ˇcasu t − 1 (z pˇredchoz´ı agentovy akce). Hodnota odmˇeny je nav´ıc v kaˇzd´em kroku podˇelena speci´aln´ım koeficientem, jak je uvedeno v n´asleduj´ıc´ı ˇca´sti. Neuronov´a s´ıt’ pouˇzit´a pro ˇr´ızen´ı robota je na obr´azku 5.27. 5
Podobnˇe jako v experimentu s dravcem a koˇrist´ı, i zde se osvˇedˇcilo pouˇz´ıt v´ıce v´ ystupn´ıch neuron˚ u. Kdybychom pro kaˇzd´ y z motor˚ u pouˇzili pouze jeden v´ ystupn´ı neuron, agent by se velmi tˇeˇzko uˇcil vykon´avat akce, pˇri kter´ ych z˚ ust´av´a jedno z kol nehybn´e.
71
Obr´azek 5.27: Neuronov´ a s´ıt’ pro experiment s robotem. Neuronov´e s´ıt’ m´a 4 vstupn´ı neurony pro stav, 4 vstupn´ı neurony pro akci, 8 skryt´ych neuron˚ u a jeden v´ystup predikuj´ıc´ı kumulativn´ı odmˇenu.
5.2.2
Specifika u ´ lohy
Popsan´a u ´loha je netrivi´aln´ı a je stejnˇe jako u ´loha popsan´a v 5.1 nemarkovsk´a. Nav´ıc, stejnˇe jako pˇredchoz´ı u ´loha i tato vyˇzaduje od algoritmu schopnost nauˇcit se z´ısk´avat opoˇzdˇen´e odmˇeny. Takov´a situace nast´av´a napˇr´ıklad, pokud se pˇred agentem nach´az´ı nˇejak´a pˇrek´aˇzka, kterou je tˇreba objet. Bˇehem zat´aˇcen´ı se totiˇz kola toˇc´ı proti sobˇe, coˇz sniˇzuje agentovu okamˇzitou odmˇenu. Ta pˇrijde ale pozdˇeji, pot´e co se agentovi podaˇr´ı vzd´alit se od pˇrek´aˇzky. Uvˇedomme si, ˇze ˇreˇsen´ım takov´e situace pro robota ˇr´ızen´eho popsanou s´ıt´ı nen´ı couvat zpˇet. To by sice pˇrineslo odmˇenu okamˇzitˇe (agent se pohybuje a nav´ıc se vzdaluje od pˇrek´aˇzky), ale dost´av´a se do stejn´eho stavu, v jak´em byl pˇredt´ım, neˇz se dostal do bl´ızkosti pˇrek´aˇzky (nem´a pamˇet’). V tomto stavu pak vykon´a znovu tu stejnou akci a opˇet se dostane do bl´ızkosti pˇrek´aˇzky. Takov´eto chov´an´ı, kdy se robot opakovanˇe pˇribliˇzoval k pˇrek´aˇzce a opˇet od n´ı vzdaloval, bylo v pr˚ ubˇehu experiment˚ u nˇekolikr´at pˇrechodnˇe pozorov´ano. Uk´azalo se tak´e, ˇze tato u ´loha klade vyˇsˇs´ı n´aroky na explorativn´ı schopnost algoritmu, neˇz u ´loha z ˇca´sti 5.1. Odmˇena v pˇredchoz´ı u ´loze byla typicky opoˇzdˇena nejv´ yˇse o jeden ˇcasov´ y krok, protoˇze agentovi staˇcilo se pohnout o jedno pole, aby naˇsel nov´ y zdroj potravy. Proto k objeven´ı cesty, jak tuto odmˇenu z´ıskat, staˇcilo jen slab´e zn´ahodnˇen´ı agentova chov´an´ı. Naproti tomu je v t´eto u ´loze nˇekdy tˇreba k tomu, aby se robot vzd´alil od pˇrek´aˇzky, vykonat delˇs´ı posloupnost krok˚ u, kter´e odmˇenu nepˇrin´aˇsej´ı. Modifikovan´ y algoritmus je schopen se takovouto posloupnost krok˚ u nauˇcit, ovˇsem pouze v pˇr´ıpadˇe, ˇze bude disponovat dostateˇcnou schopnost´ı prozkoum´avat nov´e moˇznosti. Uvaˇzme pˇr´ıpad, ˇze by algoritmus agentovi tuto schopnost ned´aval. Potom by se agent dok´azal pouze nauˇcit to, ˇze rychl´ y pohyb rovn´ ym smˇerem pˇrin´aˇs´ı odmˇenu. Snaˇzil by se tedy st´ale rovnˇe pohybovat a velmi brzo by narazil na pˇrek´aˇzku. Jelikoˇz nikdy pˇredt´ım ˇza´dnou pˇrek´aˇzku u ´spˇeˇsnˇe neobjel, nemˇel pˇr´ıleˇzitost se nauˇcit, ˇze takov´a posloupnost akc´ı 72
pˇrinese v budoucnu odmˇenu. Proto se o to ani nepokus´ı. Nastal by tak probl´em “strachu z nezn´ama” diskutovan´ y v 4.4.3. V algoritmu bylo provedeno nˇekolik drobn´ ych modifikac´ı, abychom tento probl´em omezili. Pˇrestoˇze v pˇredchoz´ı u ´loze bylo u ´spˇeˇsnˇejˇs´ı zn´ahodnˇen´ı ˇc´ıslo 4 popsan´e v ˇc´asti 4.4.3, pouˇzili jsme zde metodu zn´ahodnˇen´ı 2. Tato metoda d´av´a agentovi vˇetˇs´ı explorativn´ı schopnosti, nebot’ agent obˇcasnˇe vykon´av´a zcela n´ahodnou akci. Pravdˇepodobnost vykon´an´ı n´ahodn´e akce byla zv´ yˇsena na 10%. Povolen´e hodnoty kaˇzd´eho neuronu pro akci byly 0, 0.5 a 1. Nastavili jsme tak´e pomˇernˇe velkou d´elku ˇcasov´eho kroku, za kter´ y m˚ uˇze robot zmˇenit rychlost pohybu sv´ ych kol - 256 ms. D´ıky tomu m´a jeden n´ahodn´ y tah delˇs´ı u ´ˇcinnost. Aby se nest´avalo, ˇze se u ´ˇcinek n´ahodn´eho otoˇcen´ı na jednu stranu vyruˇs´ı n´asledn´ ym n´ahodn´ ym otoˇcen´ım robota na opaˇcnou stranu, generujeme pouze takov´e n´ahodn´e akce, pˇri kter´ ych se lev´e kolo toˇc´ı vpˇred v´ıce neˇz kolo prav´e (plat´ı yA0 −yA1 ≥ yA2 −yA3 ). T´ım jsme na jednu stranu omezili agentovu schopnost prozkoum´avat d˚ usledky rotace vlevo, na druhou stranu pos´ılili schopnost poznat, jak´ y v´ ysledek pˇrin´aˇs´ı rotace vpravo. Jelikoˇz ot´aˇcen´ım vpravo se robot m˚ uˇze dostat do kaˇzd´e pozice, do kter´e se lze dostat ot´aˇcen´ım vlevo, nemˇelo by toto omezen´ı p˚ usobit pˇr´ıliˇsnou u ´jmu. Dalˇs´ı odliˇsnost´ı t´eto u ´lohy oproti u ´loze pˇredchoz´ı je fakt, ˇze tato u ´loha se neskl´ad´a z jednotliv´ ych oddˇelen´ ych simulac´ı. Budeme tedy v algoritmu 4 m´ısto vzorc˚ u 4.14 a 4.15 pouˇz´ıvat vzorce 4.18 a 4.19 tak, jak je pops´ano na konci ˇca´sti 4.4.2, aby nedosahovala kumulativn´ı odmˇena nekoneˇcn´ ych hodnot. Parametr γ bude m´ıt hodnotu 0.9. Vzorce 4.16 a 4.17 pro posledn´ı uˇc´ıc´ı krok nebudou pouˇzity v˚ ubec. Hodnota okamˇzit´e odmˇeny bude v kaˇzd´em kroku podˇelena ˇc´ıslem 10, aby s´ıt’ nebyla uˇcen´ım nucena vybavovat v´ ystup o hodnotˇe vyˇsˇs´ı neˇz 1.
5.2.3
Pr˚ ubˇ eh experimentu s robotem
Simulace a uˇcen´ı bude prob´ıhat nepˇretrˇzitˇe. Po kaˇzd´ ych 200 kroc´ıch simulace je ˇctvercov´a pˇrek´aˇzka velikosti 20 × 20 cm n´ahodnˇe pˇrem´ıstˇena (tak, aby nekolidovala s robotem), a robot je n´ahodnˇe pootoˇcen, ale z˚ ust´av´a na stejn´em m´ıstˇe. Robota poot´aˇc´ıme, abychom zamezili tomu, ˇze v pr˚ ubˇehu uˇcen´ı uv´ızne v nˇejak´e pozici (napˇr´ıklad v rohu ohr´adky), ze kter´e by se tˇeˇzko dost´aval. Za kaˇzd´ ych 2000 krok˚ u simulace zmˇeˇr´ıme celkovou z´ıskanou odmˇenu, celkovou ujetou vzd´alenost a celkov´ y poˇcet robotov´ ych n´araz˚ u. Pouˇzit´a neuronov´a s´ıt’ bude m´ıt jednu skrytou vrstvu o osmi neuronech, nastaven´ı parametr˚ u bylo α = 0.5, λ = 0.75. V´ yvoj experimentu zachycuje obr´azek 5.28. Bˇehem prvn´ıho tis´ıce krok˚ u simulace se robot po urˇcit´em v´ah´an´ı nauˇcil jezdit rovnˇe maxim´aln´ı rychlost´ı. Aspektem komplikuj´ıc´ım se nauˇcit pˇr´ımou j´ızdu mohlo b´ yt to, ˇze nˇekter´ y n´ahodn´ y tah naznaˇcil neuronov´e s´ıti, ˇze pohyb kupˇredu pˇrin´aˇs´ı odmˇenu, a jin´ y naopak, ˇze odmˇenu pˇrin´aˇs´ı pohyb vzad. V´ ysledn´e u ´pravy vah s´ıtˇe se t´ım mohly ˇca´steˇcnˇe ruˇsit a uˇcen´ı prodlouˇzit. Zaj´ımav´e je, ˇze se robot nauˇcil jezdit pozadu. D˚ uvodem je, ˇze robotova intern´ı odmˇen ˇovac´ı funkce 5.5 identifikuje kolizi pomoc´ı aktivac´ı infraˇcerven´ ych senzor˚ u ve ˇclenu 5.8. Jelikoˇz je robot senzory hustˇeji osazen vepˇredu, pocit’oval agent kolize pˇri pohybu zpˇet jako m´ırnˇejˇs´ı trest. Robot se tak pohyboval kupˇredu, dokud nenarazil na stˇenu, pod´el kter´e klouzal aˇz do rohu ohr´adky, kde vˇzdy uv´ızl aˇz do doby, neˇz byl n´ahodnˇe otoˇcen vnˇejˇs´ım z´asahem. Robot s´am se jen obˇcas lehce pootoˇcil vpravo (respektive ve smˇeru hodinov´ ych ruˇciˇcek). Preference rotace 73
Obr´azek 5.28: Pr˚ ubˇ eh experimentu se simulovan´ ym robotem t´ımto smˇerem je patrnˇe zp˚ usobena t´ım, ˇze n´ahodn´e kroky, kter´a s´ıt mohla pozorovat, mˇely vˇzdy rotaci t´ımto smˇerem. Toto chov´an´ı robotu z˚ ustalo velmi dlouho, cca aˇz do 1.3-miliont´eho kroku uˇcen´ı. Pot´e se jeho chov´an´ı lehce zmˇenilo tak, ˇze st´ale jezdil plnou rychlost´ı vzad, ale kdyˇz se ocitnul v rohu, otoˇcil se a zam´ıˇril do stˇredu prostoru. Nˇekdy se tak´e dok´azal odvr´atit od rovn´e zdi. Na grafu 5.28 je patrn´e zv´ yˇsen´ı odmˇeny i ujet´e vzd´alenosti, a naopak sn´ıˇzen´ı poˇctu koliz´ı. K dalˇs´ı zmˇenˇe chov´an´ı doˇslo po cca 1.46 milionech krok˚ u simulace. Robot se nauˇcil jezdit opatrnˇeji, poloviˇcn´ı rychlost´ı, a po n´arazu do pˇrek´aˇzky se otoˇcil vpravo a pˇrek´aˇzce se vyhnul. Schopnost vyh´ ybat se pˇrek´aˇzk´am se postupnˇe zdokonalovala aˇz se robot nauˇcil j´ım vyh´ ybat jeˇstˇe pˇred koliz´ı, tak, ˇze couvnul, pˇriˇcemˇz se pootoˇcil ve smˇeru hodinov´ ych ruˇciˇcek. Na grafu 5.28 je tato zmˇena opˇet dobˇre patrn´a. Koliz´ı ub´ yv´a a ujet´a vzd´alenost ’ z˚ ust´av´a pˇribliˇznˇe stejn´a, nebot robot se na jednu stranu nezasek´av´a o pˇrek´aˇzky, ale na druhou stranu se pohybuje poloviˇcn´ı rychlost´ı. Pozoruhodn´e ale je, ˇze hodnota z´ıskan´e odmˇeny poklesla. To je zp˚ usobeno nepˇresnost´ı pouˇzit´e intern´ı odmˇen ˇovac´ı funkce 5.5, kter´a urˇcuje robotovu rychlost dle nastaven´e rychlosti kol, a proto nedostateˇcnˇe trest´a n´araz plnou zpˇetnou rychlost´ı do pˇrek´aˇzky. Toto robotovo u ´spˇeˇsn´e, i kdyˇz pˇr´ıliˇs opatrn´e chov´an´ı trvalo pˇribliˇznˇe do 1.6-miliont´eho kroku. Pot´e se s´ıt’ dostala do nestabiln´ıho stavu a robotovo chov´an´ı se velmi rychle mˇenilo. Nˇejak´ y ˇcas se ot´aˇcel na m´ıstˇe. Po dalˇs´ıch cca 20000 kroc´ıch se zaˇcal rychle pohybovat smˇerem vpˇred pˇriˇcemˇz zpoˇca´tku hodnˇe boural, ale brzy se nauˇcil pˇrek´aˇzk´am vyh´ ybat rotac´ı vpravo, pozdˇeji opˇet i s mal´ ym couvnut´ım zpˇet. Zaj´ımav´e je, ˇze v t´eto dobˇe se robot nˇekdy, pˇredevˇs´ım za nepˇr´ıtomnosti pˇrek´aˇzky, st´aˇcel i proti smˇeru hodinov´ ych ruˇciˇcek. Pot´e se znovu zaˇcal chovat promˇenlivˇe. To skonˇcilo po cca 1.68-miliont´em kroku, kdy se robot opˇet zaˇcal pohybovat zpˇet, tentokr´at plnou rychlost´ı, pˇriˇcemˇz se u ´spˇeˇsnˇe vyh´ ybal koliz´ım s pˇrek´aˇzk´ami. Naˇsel tedy t´emˇeˇr ide´aln´ı ˇreˇsen´ı. Po pˇribliˇznˇe 1.77-miliont´em kroku se robot n´ahle pˇrestal pohybovat a d´ale jiˇz nejevil zn´amky uˇcen´ı se. Konfigurace vyv´ıjej´ıc´ı se neuronov´e s´ıtˇe byly pr˚ ubˇeˇznˇe ukl´ad´any a nej´ uspˇeˇsnˇejˇs´ı z nich byly pozdˇeji otestov´any na fyzick´em robotu e-puck (obr´azek 5.29), kde t´eˇz fungovaly. Robot se i zde dok´azal u ´spˇeˇsnˇe vyh´ ybat pˇrek´aˇzk´am. Na pˇriloˇzen´em CD jsou uloˇzeny videa a fotografie experimentu na re´aln´em i simulovan´em robotu, pouˇzit´e zdrojov´e k´ody i vˇsechny historick´e konfigurace neuronov´e s´ıtˇe z pr˚ ubˇehu experimentu. 74
Obr´azek 5.29: Experiment s fyzick´ ym robotem e-puck - robot se pohybuje ve vymezen´em prostoru, pˇriˇcemˇz se u ´spˇeˇsnˇe vyh´ yb´a pˇrek´aˇzk´am.
75
Kapitola 6 Meze zpˇ etnovazebn´ eho uˇ cen´ı V t´eto ˇca´sti (nepˇr´ıliˇs form´alnˇe) srovn´ame u ´lohu zpˇetnovazebn´eho uˇcen´ı s prohled´av´an´ım stavov´eho prostoru. D´ıky tomu budeme moci navrhnout urˇcit´e doporuˇcen´ı pro stanoven´ı vhodn´e odmˇen ˇovac´ı funkce a tak´e vyvod´ıme nˇekter´e obecn´e z´avˇery o mez´ıch praktick´eho pouˇzit´ı zpˇetnovazebn´eho uˇcen´ı.
6.1
Zpˇ etnovazebn´ e uˇ cen´ı a stavov´ y prostor
Formalismus zpˇetnovazebn´eho uˇcen´ı m´a pomˇernˇe bl´ızko k formalismu prohled´av´an´ı stavov´eho prostoru [10], kter´ y b´ yv´a ˇcasto pouˇz´ıv´an napˇr´ıklad pˇri ˇreˇsen´ı her. Podobnˇe jako vu ´loze zpˇetnovazebn´eho uˇcen´ı (viz ˇca´st 2.1), i zde je d´ana koneˇcn´a mnoˇzina stav˚ uS a koneˇcn´a mnoˇzina akc´ı (oper´ator˚ u) A, z nichˇz kaˇzd´a je parci´aln´ım zobrazen´ım z mnoˇziny stav˚ u S do mnoˇziny stav˚ u S. Tedy, podobnˇe jako pˇri zpˇetnovazebn´em uˇcen´ı, akce vede z jednoho stavu do druh´eho stavu, pˇriˇcemˇz ne vˇsechny akce mus´ı b´ yt aplikovateln´e v kaˇzd´em stavu. D´ale je d´an poˇc´ateˇcn´ı stav ∫0 a mnoˇzina koncov´ ych stav˚ u Z ⊆ A. C´ılem u ´lohy je naj´ıt posloupnost akc´ı vedouc´ı ze stavu ∫0 do libovoln´eho z koncov´ ych stav˚ u, pˇr´ıpadnˇe naj´ıt nejkratˇs´ı takovou posloupnost akc´ı. ´ Ulohu prohled´av´an´ı stavov´eho prostoru lze pˇr´ımoˇcaˇre pˇrev´est na u ´lohu zpˇetnovazebn´eho uˇcen´ı. Mnoˇzina stav˚ u, mnoˇzina akc´ı i poˇca´teˇcn´ı stav z˚ ustane beze zmˇeny a odmˇen ˇovac´ı funkci definujeme takto: ½ 1 : s ∈Z r(s) = (6.1) −1 : s 6∈ Z Maximalizac´ı z´ıskan´e kumulativn´ı odmˇeny bychom pak donutili agenta, aby co nejkratˇs´ı cestou dorazil do koncov´eho stavu, a pˇrestal tak z´ısk´avat z´aporn´e odmˇeny. Povˇsimnˇeme si, ˇze v obecn´em pˇr´ıpadˇe je u ´loha zpˇetnovazebn´eho uˇcen´ı tak, jak jsme ji definovali v 2.1, sloˇzitˇejˇs´ı, neˇz u ´loha prohled´av´an´ı stavov´eho prostoru. V pˇr´ıpadˇe prohled´av´an´ı stavov´eho prostoru m´ame zaruˇcenu koneˇcnost mnoˇziny stav˚ u i mnoˇziny akc´ı. Prostˇred´ı se chov´a deterministicky, markovsky a nav´ıc z´akony jeho dynamiky jsou pˇresnˇe zn´am´e (Agent se nemus´ı uˇcit, jak´e maj´ı jeho akce dopad na prostˇred´ı.). V pˇr´ıpadˇe prohled´av´an´ı stavov´eho ´ prostoru pˇredpokl´ad´ame typicky offline uˇcen´ı. Uloha prohled´av´an´ı stavov´eho prostoru je vyˇreˇsena, kdyˇz je dosaˇzen c´ılov´ y stav, zat´ımco pˇri zpˇetnovazebn´em uˇcen´ı nemus´ı koncov´ y 76
stav existovat a ˇcinnost agenta nemus´ı b´ yt ˇcasovˇe omezen´a. Tyto pˇredpoklady umoˇzn ˇuj´ı k ˇreˇsen´ı u ´lohy prohled´av´an´ı stavov´eho prostoru pouˇz´ıvat algoritmy, jako je napˇr´ıklad prohled´av´an´ı do hloubky (backtracking) nebo prohled´av´an´ı do ˇs´ıˇrky. Lze tedy ˇr´ıci, ˇze prohled´av´an´ı stavov´eho prostoru je speci´aln´ım pˇr´ıpadem u ´lohy ´ zpˇetnovazebn´eho uˇcen´ı. Ulohu prohled´av´an´ı stavov´eho prostoru um´ıme v obecn´em pˇr´ıpadˇe pomoc´ı prohled´avac´ıch algoritm˚ u ˇreˇsit, to ale m˚ uˇze b´ yt prakticky nesch˚ udn´e v pˇr´ıpadˇe ´ pˇr´ıliˇs velk´e mnoˇziny S. Uloha zpˇetnovazebn´eho uˇcen´ı je v obecn´em pˇr´ıpadˇe jeˇstˇe sloˇzitˇejˇs´ı a napˇr´ıklad pro nekoneˇcnˇe velkou mnoˇzinu S nemus´ıme b´ yt v˚ ubec schopni nal´ezt takovou strategii, aby agent dos´ahnul maxim´aln´ı odmˇeny. Pˇr´ıstup zpˇetnovazebn´eho uˇcen´ı se ale oproti prohled´av´an´ı stavov´eho prostoru liˇs´ı i v tom, ˇze ˇcasto netrv´ame na nalezen´ı optim´aln´ıho ˇreˇsen´ı - strategie kter´a agentovi z´ısk´a maxim´aln´ı kumulativn´ı odmˇenu, ale spokoj´ıme se s ˇreˇsen´ım suboptim´aln´ım - strategi´ı, kter´a z´ısk´a “dostateˇcnˇe velkou” kumulativn´ı odmˇenu. Pˇrestoˇze u ´loha zpˇetnovazebn´eho uˇcen´ı je v obecn´em pˇr´ıpadˇe efektivnˇe neˇreˇsiteln´a, u ´lohy, se kter´ ymi se setk´ame v praxi, nemus´ı b´ yt takto sloˇzit´e. Faktory, kter´e mohou ˇreˇsen´ı u ´lohy usnadnit, jsou pˇredevˇs´ım: 1. Pouˇzit´ y zp˚ usob odmˇen ˇov´an´ı 2. Sloˇzitost pravidel dynamiky prostˇred´ı Tyto faktory jsou rozebr´any v n´asleduj´ıc´ıch dvou ˇca´stech.
6.2
Jak stanovit odmˇ enu
Dle naˇs´ı definice u ´lohy zpˇetnovazebn´eho uˇcen´ı je jiˇz mechanismus odmˇen ˇov´an´ı pevnˇe souˇca´st´ı zad´an´ı. V re´aln´e situaci vˇsak obvykle m´amˇe nˇejak´ y c´ıl, kter´eho chceme dos´ahnout, a pro tento u ´ˇcel se snaˇz´ıme odmˇen ˇovac´ı funkci nadefinovat co nejvhodnˇeji tak, aby se maximalizac´ı celkov´e odmˇeny agent bl´ıˇzil dosaˇzen´ı c´ıle. Takto napˇr´ıklad v ˇca´sti 5.1 bylo naˇs´ım c´ılem, aby agent v roli koˇristi pˇreˇzil co nejd´ele, a v ˇca´sti 5.2, aby se robot rychle pohyboval, aniˇz by nar´aˇzel do pˇrek´aˇzek. Odmˇen ˇovac´ı funkci jsme zkouˇseli definovat tak, aby agenta vedla k dosaˇzen´ı tohoto c´ıle. Jin´ ym pˇr´ıkladem jsou ˇzivoˇcichov´e, kteˇr´ı se zˇrejmˇe v biologick´e evoluci vyvinuli tak, ˇze jejich c´ılem je pˇreˇzit´ı a reprodukce, a jejich mozky je odmˇen ˇuj´ı za akce, kter´e k tomuto c´ıli vedou. Vhodn´a definice odmˇen ˇovac´ıho mechanismu je z´asadn´ım faktorem ovlivˇ nuj´ıc´ım, zda pouˇzit´ı zpˇetnovazebn´eho uˇcen´ı bude u ´spˇeˇsn´e. Pˇresto t´eto problematice neb´ yv´a v literatuˇre vˇenov´ano pˇr´ıliˇs pozornosti. Pˇredpokl´adejme opˇet, ˇze u ´lohu m´ame zad´anu ve formˇe prohled´av´an´ı stavov´eho prostoru. D´ana je mnoˇzina stav˚ u S, mnoˇzina akc´ı A, poˇca´teˇcn´ı stav ∫o a mnoˇzina koncov´ ych stav˚ u Z. Prostˇred´ı je tedy deterministick´e, markovsk´e, jeho dynamika je zn´am´a a poˇcet moˇzn´ ych stav˚ u a akc´ı je koneˇcn´ y. V pˇredchoz´ı ˇca´sti definujeme formul´ı 6.1 jednu moˇznou variantu odmˇen ˇov´an´ı, kter´a, pokud bude odpov´ıdaj´ıc´ı u ´loha zpˇetnovazebn´eho uˇcen´ı optim´alnˇe vyˇreˇsena, povede t´eˇz k vyˇreˇsen´ı p˚ uvodn´ıho probl´emu prohled´av´an´ı stavov´eho prostoru. Navrhovan´a odmˇen ˇovac´ı funkce ale agentovi neposkytuje ˇz´adnou uˇziteˇcnou informaci o tom, zda jeho jednotliv´e akce vedou k c´ıli ˇci nikoliv. Pouze ho informuje o jeho 77
u ´spˇechu aˇz v pˇr´ıpadˇe nalezen´ı ˇreˇsen´ı. K tomu m˚ uˇze v´est ale velmi dlouh´a sekvence agentov´ ych akc´ı, kterou m˚ uˇze b´ yt tˇeˇzk´e nal´ezt. To bude kl´ast pˇr´ıliˇs vysok´e n´aroky na pouˇzit´ y algoritmus zpˇetnovazebn´eho uˇcen´ı, kter´ y se bude muset pot´ ykat s velmi komplikovan´ ym probl´emem opoˇzdˇen´ ych odmˇen popsan´ ym v 4.2. Vhodnou u ´pravou odmˇen ˇovac´ı funkce m˚ uˇze b´ yt ale moˇzn´e tento probl´em omezit aˇz eliminovat. Pˇredpokl´adejme, ˇze pouˇz´ıv´ame algoritmus zpˇetnovazebn´eho uˇcen´ı, kter´ y v kaˇzd´em 1 kroku vyb´ır´a tu akci, kter´a pˇrinese nejvyˇsˇs´ı okamˇzitou odmˇenu . Tento algoritmus nazvˇeme hladov´ ym. D´ıky uveden´ ym pˇredpoklad˚ um na vlastnosti prostˇred´ı nebude tˇeˇzk´e hladov´ y algoritmus implementovat. Hladov´ y algoritmus je primitivn´ı v tom smyslu, ˇze ned´av´a agentovi v˚ ubec ˇz´adnou schopnost z´ısk´avat opoˇzdˇen´e odmˇeny. Pokud by byl pouˇzit s odmˇenou 6.1, v´ ysledky by byly velmi ˇspatn´e. Pˇresto je hypoteticky moˇzn´e zvolit odmˇen ˇovac´ı funkci r tak, aby tento algoritmus dok´azal u ´lohu optim´alnˇe ˇreˇsit. Pro ∫ ∈ S definujme D(∫ ) jako nejniˇzˇs´ı moˇzn´ y poˇcet akc´ı vedouc´ı ze stavu ∫ do libovoln´eho koncov´eho stavu. Pokud neexistuje cesta z ∫ do ˇz´adn´eho koncov´eho stavu, poloˇz´ıme D(∫ ) = ∞ (nebo dostateˇcnˇe vysok´e re´aln´e ˇc´ıslo). Odmˇen ˇovac´ı funkci potom definujeme takto: r(∫ ) = −D(∫ )
(6.2)
Je zˇrejm´e, ˇze pˇri takov´eto odmˇen ˇovac´ı funkci najde hladov´ y algoritmus strategii, kter´a maximalizuje kumulativn´ı odmˇenu, a t´ım tak´e najde nejkratˇs´ı posloupnost akc´ı vedouc´ı z poˇca´teˇcn´ıho do koncov´eho stavu pro odpov´ıdaj´ıc´ı u ´lohu prohled´av´an´ı stavov´eho prostoru. Abychom dos´ahli pˇrirozen´eho vztahu, ˇze hodnota dosud z´ıskan´e kumulativn´ı odmˇeny bude pˇr´ımo u ´mˇern´a (s koeficientem -1) vzd´alenosti, kter´a zb´ yv´a k dosaˇzen´ı c´ıle v odpov´ıdaj´ıc´ı u ´loze prohled´av´an´ı stavov´eho prostoru, a z´aroveˇ n zaruˇcili dalˇs´ı pˇr´ıjemnou vlastnost, ˇze hodnota okamˇzit´e odmˇeny v pr˚ ubˇehu ˇcinnosti hladov´eho algoritmu neust´ale neporoste, ale bude rovna jedn´e, uprav´ıme 6.2 na: r(∫t ) = D(∫t−1 ) − D(∫t ) = −∆D(∫t )
(6.3)
Okamˇzit´a odmˇena tak bude odpov´ıdat u ´bytku vzd´alenosti od nejbliˇzˇs´ıho koncov´eho stavu 2 3 v prostoru stav˚ u . Pˇri takov´eto odmˇen ˇovac´ı funkci bude hladov´ y algoritmus fungovat stejnˇe dobˇre jako pˇri odmˇen ˇovac´ı funkci 6.2. Uvˇedomme si, ˇze v tomto pˇr´ıpadˇe ale nen´ı okamˇzit´a odmˇena funkc´ı stavu, ale pˇrechodu mezi stavy (viz pozn´amka 2 z ˇc´asti 2.1). D´ıky tomu, ˇze pˇri dan´ ych pˇredpokladech a odmˇen ˇovac´ı funkci 6.2, respektive 6.3 dosahuje optim´aln´ıch v´ ysledk˚ u i nejprimitivnˇejˇs´ı hladov´ y algoritmus, lze tyto odmˇen ˇovac´ı funkce povaˇzovat za ide´aln´ı. Odmˇen ˇovac´ı funkce 6.2 a 6.3 jsou narozd´ıl od odmˇen ˇovac´ı funkce 6.1 definov´any tak, ˇze okamˇzit´a odmˇena tak´e velmi dobˇre agentovi napov´ıd´a, jak z´ıskat maxim´aln´ı kumulativn´ı odmˇenu. Lze oˇcek´avat, ˇze i pro takov´e u ´lohy zpˇetnovazebn´eho uˇcen´ı, kter´e nebyly 1 Pouˇzit´ı tohoto algoritmu pˇr´ı ˇreˇsen´ı u ´lohy zpˇetnovazebn´eho uˇcen´ı odvozen´e z u ´lohy prohled´av´an´ı stavov´eho prostoru s odmˇen ˇovac´ı funkc´ı r bude analogick´e pouˇzit´ı tzv. hill-climbing algoritmu[10] na p˚ uvodn´ı u ´loze prohled´av´an´ı stavov´eho prostoru pouˇz´ıvaj´ıc´ı r coby hodnot´ıc´ı funkci stav˚ u. 2 Uveden´ a odmˇen ˇovac´ı funkce tedy neodmˇen ˇuje za dosaˇzen´ y stav ale za zlepˇsen´ı. Tuto situaci lze volnˇe pˇripodobnit k ˇclovˇeku, kter´ y nem´a potˇeˇsen´ı z toho, co m´a, a smutek z toho, co nem´a, ale potˇeˇsen´ı z toho, co z´ıskal, a smutek z toho, co ztratil. 3 Pokud bychom uvaˇzovali spojit´ y ˇcas, okamˇzit´a odmˇena by byla derivac´ı kumulativn´ı odmˇeny podle ∂D(∫ ) ˇcasu a psali bychom r(∫t ) = − ∂t .
78
odvozeny od prohled´av´an´ı stavov´eho prostoru, a pˇri pouˇzit´ı jin´eho neˇz hladov´eho algoritmu budou v´ ysledky pro odmˇen ˇovac´ı funkce s touto vlastnost´ı lepˇs´ı. Odmˇen ˇovac´ı funkce s touto vlastnost´ı agentovi v pˇr´ıpadˇe, ˇze mu dynamika svˇeta nen´ı pˇredem zn´ama, usnadn´ı postupn´e zdokonalov´an´ı. Lze tedy v tomto smyslu hovoˇrit o urˇcit´e kvalitˇe odmˇen ˇovac´ı funkce. Tento princip podporuj´ı t´eˇz experimenty s r˚ uzn´ ymi odmˇen ˇovac´ımi funkcemi popsan´e v ˇc´asti 5.1. V´ ysledky experiment˚ u pˇri pouˇzit´ı tamt´eˇz popsan´e odmˇen ˇovac´ı funkce 1 dokl´adaj´ı, ˇze tato odmˇen ˇovac´ı funkce nen´ı kvalitn´ı (Je to obdoba zde popsan´e odmˇen ˇovac´ı funkce 6.1.), nebot’ u ´spˇeˇsnost pˇri pouˇzit´ı t´eto odmˇen ˇovac´ı funkce byla vˇzdy n´ızk´a. Naproti tomu s odmˇen ˇovac´ımi funkcemi 2 a 3 byly dosaˇzeny podstatnˇe lepˇs´ı v´ ysledky, pˇriˇcemˇz v nˇekter´ ych pˇr´ıpadech byla v´ yhodnˇejˇs´ı odmˇena ˇc´ıslo 2 a v jin´ ych naopak odmˇena ˇc´ıslo 3. M´enˇe kvalitn´ı odmˇen ˇovac´ı funkce klade vyˇsˇs´ı n´aroky na schopnost pouˇzit´eho algoritmu zpˇetnovazebn´eho uˇcen´ı z´ısk´avat opoˇzdˇen´e odmˇeny. Pokud bychom m´ısto hladov´eho algoritmu napˇr´ıklad pouˇzili takov´ y algoritmus, pˇri kter´em agent vˇzdy vykon´a dvojici po sobˇe n´asleduj´ıc´ıch akc´ı, kter´e v souˇctu pˇrinesou nejvyˇsˇs´ı moˇznou odmˇenu ze vˇsech moˇzn´ ych dvojic akc´ı provediteln´ ych v dan´em stavu, pravdˇepodobnˇe by k dosaˇzen´ı stejnˇe dobr´ ych v´ ysledk˚ u staˇcila m´enˇe kvalitn´ı odmˇena. Kdybychom pouˇzili algoritmus TD(λ) popisovan´ y v 4.4, staˇcila by n´am pravdˇepodobnˇe i m´enˇe kvalitn´ı odmˇen ˇovac´ı funkce. N´avrh kvalitnˇejˇs´ı odmˇen ˇovac´ı funkce vˇsak vyˇzaduje od jej´ıho tv˚ urce vyˇsˇs´ı znalost ˇreˇsen´e u ´lohy. Proto nebude obvykle v praxi moˇzn´e definovat odmˇen ˇovac´ı funkci tak, aby i hladov´ y algoritmus dosahoval optim´aln´ıch v´ ysledk˚ u tak, jako tomu je u odmˇen ˇovac´ı funkce 6.3. Jedn´a se tedy o urˇcit´ y kompromis mezi kvalitou odmˇen ˇovac´ı funkce a n´aroky na algoritmus zpˇetnovazebn´eho uˇcen´ı, kter´ y je tˇreba hledat zvl´aˇst’ pro kaˇzdou konkr´etn´ı u ´lohu.
6.3
Sloˇ zitost dynamiky prostˇ red´ı
Druh´ ym faktorem, kter´ y m´a z´asadn´ı dopad na sloˇzitost ˇreˇsen´ı urˇcit´e u ´lohy zpˇetnovazebn´eho uˇcen´ı, je sloˇzitost z´akon˚ u, kter´ ymi se ˇr´ıd´ı prostˇred´ı. V pˇredchoz´ı ˇc´asti jsme naznaˇcili, ˇze pˇri kvalitn´ı odmˇen ˇovac´ı funkci m˚ uˇze k ˇreˇsen´ı u ´lohy staˇcit pomˇernˇe jednoduch´ y algoritmus. K tomu jsme ale pˇredpokl´adali, ˇze prostˇred´ı je koneˇcn´e a chov´a se deterministicky, markovsky, a ˇze m´ame d´anu u ´plnou znalost o tom, jak se toto prostˇred´ı chov´a. Ve mnoha u ´loh´ach zpˇetnovazebn´eho uˇcen´ı, napˇr´ıklad v u ´loh´ach robotiky, tyto pˇredpoklady ale splnˇeny nejsou. V takov´e situaci mohou b´ yt velmi uˇziteˇcn´e pr´avˇe neuronov´e s´ıtˇe. V ˇc´asti 4.3 se zab´ yv´ame moˇznostmi, jak lze neuronovou s´ıt’ nauˇcit kompaktnˇe reprezentovat z´akonitosti prostˇred´ı. I tyto moˇznosti ale maj´ı sv´e meze. Pˇri vymezen´ı u ´loh zpˇetnovazebn´eho uˇcen´ı jsme pˇripustili prostˇred´ı, kter´a se mohou ˇr´ıdit zcela jak´ ymikoli z´akonitostmi, tedy i takov´a prostˇred´ı, jejichˇz reprezentaci nedok´aˇzeme ˇza´dn´ ym algoritmem neuronovou s´ıt’ efektivnˇe nauˇcit. Nav´ıc, jak bylo dok´az´ano v 4.3.2, i pˇri dan´e s´ıti, kter´a dokonale predikuje okamˇzitou odmˇenu, je nalezen´ı akce, kter´a ji maximalizuje, obecnˇe NP-tˇeˇzk´e. Je tedy velice pravdˇepodobn´e, ˇze existuj´ı natolik sloˇzit´e u ´lohy zpˇetnovazebn´eho uˇcen´ı, ˇze je prakticky ˇreˇsit nedok´aˇzeme. Napˇr´ıklad lidsk´e bytosti jsou ale schopny v pr˚ ubˇehu ˇzivota pochopit pomˇernˇe sloˇzit´e pˇr´ırodn´ı z´akony a vyuˇz´ıvat je k tvorbˇe komplikovan´ ych pl´an˚ u akc´ı a lze pˇredpokl´adat, ˇze podstatn´a ˇca´st tohoto uˇcen´ı se odehr´av´a procesem podobn´ ym zpˇetnovazebn´eho uˇcen´ı. Zn´am´e filosofick´e pravidlo Occamovy bˇritvy ˇr´ık´a, ˇze bychom mˇeli d´avat pˇrednost tomu nejjednoduˇsˇs´ımu vysvˇetlen´ı pozorovan´ ych jev˚ u. Jin´ ymi slovy, dynamika prostˇred´ı, se kter´ ymi 79
se v praxi budeme setk´avat, m˚ uˇze b´ yt ˇcasto jednoduˇsˇs´ı, neˇz v obecn´em pˇr´ıpadˇe. Proto lze oˇcek´avat, ˇze pˇri u ´loh´ach z re´aln´eho svˇeta dok´aˇz´ı umˇel´e neuronov´e s´ıtˇe se svoj´ı schopnost´ı generalizace vytvoˇrit pouˇziteln´ y model reprezentuj´ıc´ı z´akonitosti prostˇred´ı. Tento model je moˇzn´e vyuˇz´ıt k napl´anov´an´ı akc´ı, kter´e povedou k z´ısk´an´ı i do jist´e m´ıry opoˇzdˇen´ ych odmˇen. Sp´ıˇse neˇz s ˇreˇsen´ım pˇrin´aˇsej´ıc´ım maxim´aln´ı kumulativn´ı odmˇenu se ale v pˇr´ıpadˇe komplikovan´ ych u ´loh budeme muset spokojit se strategi´ı, kter´a pˇrinese “dostateˇcnˇe vysokou” kumulativn´ı odmˇenu, tedy se suboptim´aln´ım ˇreˇsen´ım. Je tˇreba uv´aˇzit, ˇze pokud lidsk´e bytosti pouˇz´ıvaj´ı ke sv´emu uˇcen´ı nˇejak´ y druh algoritmu zpˇetnovazebn´eho uˇcen´ı, tento algoritmus se musel vyv´ıjet v evoluci miliony let. Kdyby existoval nˇejak´ y jednoduch´ y algoritmus, kter´ y by byl pouˇziteln´ y pro inteligentn´ı ˇreˇsen´ı probl´em˚ u re´aln´eho svˇeta, zrodily by se v evoluci pravdˇepodobnˇe inteligentn´ı ˇzivoˇcichov´e mnohem dˇr´ıve. Nav´ıc chov´an´ı lid´ı stejnˇe jako ostatn´ıch ˇzivoˇcich˚ u z velk´e ˇca´sti urˇcuj´ı t´eˇz vrozen´e vzorce chov´an´ı. Pˇrehnan´a oˇcek´av´an´ı moˇznost´ı ˇreˇsit komplikovan´e probl´emy vyˇzaduj´ıc´ı inteligentn´ı uvaˇzov´an´ı a tvorbu pl´an˚ u pouze pomoc´ı vhodn´eho algoritmu zpˇetnovazebn´eho uˇcen´ı tedy nejsou na m´ıstˇe. V tomto ohledu je ale velmi zaj´ımav´a moˇznost kombinace zpˇetnovazebn´eho uˇcen´ı s evoluˇcn´ımi algoritmy.
80
Kapitola 7 Z´ avˇ er Vu ´vodu t´eto pr´ace byl vymezen pˇr´ıstup zpˇetnovazebn´eho uˇcen´ı a naznaˇcen moˇzn´ y pˇr´ınos metody zpˇetnovazebn´eho uˇcen´ı k ˇreˇsen´ı re´aln´ ych probl´em˚ u. Byly form´alnˇe definov´any pojmy pouˇz´ıvan´e v oblasti zpˇetnovazebn´eho uˇcen´ı a t´eˇz zavedeny definice t´ ykaj´ıc´ı se neuronov´ ych s´ıt´ı. Popsali jsme odliˇsnosti klasick´e neuronov´e s´ıtˇe pro uˇcen´ı s uˇcitelem a neuronov´e s´ıtˇe urˇcen´e pro zpˇetnovazebn´e uˇcen´ı. Diskutov´an byl pˇr´ınos neuronov´ ych s´ıt´ı modeluj´ıc´ıch z´akony prostˇred´ı a bylo t´eˇz form´alnˇe dok´az´ano, ˇze pro danou s´ıt’ prahov´ ych hodnot modeluj´ıc´ı odmˇenu je nalezen´ı akce maximalizuj´ıc´ı tuto odmˇenu NP-´ upln´ y probl´em. Pot´e byly detailnˇe pops´any tˇri konkr´etn´ı vybran´e modely neuronov´e s´ıtˇe. Prvn´ı z nich je pomˇernˇe primitivn´ı neuronov´a s´ıt’ zdokonaluj´ıc´ı se vhodn´ ymi n´ahodn´ ymi zmˇenami, kter´a byla autorem navrhnuta sp´ıˇse jen pro demonstraˇcn´ı u ´ˇcely. Druh´ ym z model˚ u je n´ami navrˇzen´a modifikace Suttonova algoritmu TD(λ), kter´a u ´spˇeˇsnˇe rozˇsiˇruje dom´enu pouˇzit´ı p˚ uvodn´ıho algoritmu i na nemarkovsk´a nedeterministick´a prostˇred´ı s agentovi nezn´amou dynamikou a potenci´alnˇe nekoneˇcnou mnoˇzinou moˇzn´ ych stav˚ u a akc´ı. Posledn´ım po’ psan´ ym modelem byla dvojit´a rekurentn´ı s´ıt Juergena Schmidhubera, kter´a narozd´ıl od pˇredchoz´ıch poskytuje agentovi pamˇet’. Vˇsechny uveden´e modely byly porovn´any pomoc´ı experimentu se simul´atorem dravce a koˇristi, nej´ uspˇeˇsnˇejˇs´ı z nich - modifikovan´e TD(λ) bylo t´eˇz otestov´ano v robotick´em experimentu pomoc´ı simul´atoru Webots, nejprve na simulovan´em, pot´e na fyzick´em robotu e-puck. Experimenty prok´azaly vhodnost pˇr´ıstupu zpˇetnovazebn´eho uˇcen´ı k ˇreˇsen´ı nˇekter´ ych sloˇzit´ ych u ´loh umˇel´e inteligence. Experimenty potvrdily, ˇze velmi z´asadn´ım kriteriem u ´spˇeˇsnosti algoritmu v pˇr´ıpadˇe sloˇzitˇejˇs´ıch u ´loh je jeho schopnost z´ısk´avat opoˇzdˇen´e odmˇeny, tedy odmˇeny, kter´e agent z´ısk´a teprve aˇz s urˇcit´ ym ˇcasov´ ym odstupem od vykon´an´ı prvn´ı z akc´ı, kter´a zp˚ usobuje z´ısk´an´ı t´eto odmˇeny. Uk´azalo se, jak d˚ uleˇzit´e je v tomto ohledu vybavit algoritmus schopnost´ı explorace, tj. schopnost´ı vykon´avat dosud nevyzkouˇsen´e sekvence akc´ı. D´ale experimenty potvrdily, ˇze vhodn´ y zp˚ usob odmˇen ˇov´an´ı m˚ uˇze tento probl´em velmi usnadnit. V neposledn´ı ˇradˇe tak´e experimenty naznaˇcily, ˇze ˇreˇsen´ı probl´emu m˚ uˇze b´ yt usnadnˇeno vhodn´ ym k´odov´an´ım agentov´ ych vstup˚ u a v´ ystup˚ u. Nakonec byl porovn´an pˇr´ıstup zpˇetnovazebn´eho uˇcen´ı s pˇr´ıstupem prohled´av´an´ı stavov´eho prostoru. Z tohoto srovn´an´ı byla vyvozena urˇcit´a doporuˇcen´ı vhodn´eho zp˚ usobu odmˇen ˇov´an´ı a nˇekter´e spekulativn´ı z´avˇery o mez´ıch pouˇzit´ı zpˇetnovazebn´eho uˇcen´ı na re´aln´e u ´lohy. Popisovan´e modely neuronov´ ych s´ıt´ı nejsou zcela biologicky opodstatnˇen´e a netvrd´ıme, ˇze tyto konkr´etn´ı procesy prob´ıhaj´ı v nervov´e soustavˇe ˇziv´ ych organism˚ u. Ani modifiko81
van´ y algoritmus TD(λ), ani Schmidhuber˚ uv algoritmus pro rekurentn´ı s´ıt’ nejsou lok´aln´ı v prostoru, speci´alnˇe k uˇcen´ı pouˇz´ıvaj´ı v´ ypoˇcet parci´aln´ıch derivac´ı. Nen´ı pravdˇepodobn´e, ˇze by takov´e v´ ypoˇcty prob´ıhaly v nervov´e soustavˇe ˇziv´ ych organism˚ u. Dalˇs´ım rozd´ılem oproti ˇcinnosti nervov´e soustavy vyˇsˇs´ıch ˇzivoˇcich˚ u je to, ˇze n´ami popsan´e neuronov´e s´ıtˇe maj´ı speci´aln´ı a pevnou architekturu, zat´ımco architektura pˇrirozen´ ych neuronov´ ych s´ıt´ı je velmi komplikovan´a a promˇenliv´a - dovoluje vznik a z´anik nov´ ych synaps´ı i neuron˚ u v pr˚ ubˇehu ˇzivota. Ot´azkou je, zda a pˇr´ıpadnˇe jak by tyto odliˇsnosti zmˇenily v´ ypoˇcetn´ı schopnosti umˇel´ ych neuronov´ ych s´ıt´ı. Lze oˇcek´avat, ˇze bychom mohli dos´ahnout jeˇstˇe lepˇs´ıch v´ ysledk˚ u zkombinov´an´ım v´ yhod dvou popsan´ ych algoritm˚ u - schopnosti algoritmu TD(λ) pˇredv´ıdat opoˇzdˇen´e odmˇeny a pamˇeti Schmidhuberovy rekurentn´ı s´ıtˇe. Zde popisovan´e algoritmy jsou jen v´ ybˇerem z mnoha moˇzn´ ych technik, jak lze aplikoˇ vat neuronov´e s´ıtˇe ve zpˇetnovazebn´em uˇcen´ı. Rada dalˇs´ıch, kter´e by mohly b´ yt v tomto smˇeru pˇr´ınosn´e, je jiˇz mimo rozsah t´eto pr´ace. Mezi jin´ ymi jsou to napˇr´ıklad r˚ uzn´e kompetiˇcn´ı s´ıtˇe inspirovan´e teori´ı neur´aln´ıho darwinismu G. Edelmana[4] nebo Schmidhuberova Long Short-Term Memory[5], kter´a u ´dajnˇe dosahuje velmi dobr´ ych v´ ysledk˚ u pˇri sledov´an´ı opoˇzdˇen´ ych odmˇen. D´ale zm´ın´ıme Suttonovo Adaptive Heuristic Critics[1], s´ıtˇe s tzv. spiking neurony a pˇredevˇs´ım r˚ uzn´e moˇznosti kombinace neuronov´ ych s´ıt´ı s genetick´ ymi algoritmy[6]. Genetick´e algoritmy mohou b´ yt napˇr´ıklad pouˇzity k v´ yvoji vhodn´e odmˇen ˇovac´ı funkce, architektury s´ıtˇe, nebo k ˇca´steˇcn´emu nauˇcen´ı s´ıtˇe, kter´a bude douˇcena pomoc´ı zpˇetnovazebn´eho uˇcen´ı.
82
Seznam obr´ azk˚ u 3.1
Obecn´a neuronov´a s´ıt’ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.2
Vrstevnat´a neuronov´a s´ıt’ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.3
Probl´em lok´aln´ıho minima . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
4.1
Odstranˇen´ı neuron˚ u pro stav z modelu . . . . . . . . . . . . . . . . . . . . 26
4.2
Pˇr´ıklad s´ıtˇe rozhoduj´ıc´ı probl´em 3-SAT . . . . . . . . . . . . . . . . . . . . 29
4.3
Munroova s´ıt’ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
4.4
Hra Backgammon. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
4.5
Schmidhuberova rekurentn´ı s´ıt’ . . . . . . . . . . . . . . . . . . . . . . . . . 43
5.1
Testy 1, 2, 3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
5.2
Testy 4, 5, 6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
5.3
Testy 2, 7, 9, 11. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
5.4
Testy 3, 8, 10, 12. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
5.5
S´ıt’ uˇcen´a algoritmem 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
5.6
Testy 4, 13, 14. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
5.7
Testy 2, 11, 15, 16. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
5.8
Testy 4, 5, 17. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
5.9
Testy 18, 19, 20. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
5.10 Testy 21, 22, 23. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 5.11 Testy 22, 25. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 5.12 Testy 23, 26. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 5.13 Testy 21, 24, 27. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 5.14 S´ıt’ uˇcen´a algoritmem 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 5.15 Testy 21, 24, 28, 29. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 5.16 Testy 21, 30, 31, 32, 33. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 83
5.17 Schmidhuberova s´ıt’ pro u ´lohu dravce a koˇristi. . . . . . . . . . . . . . . . . 62 5.18 Testy 34. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 5.19 Testy 35, 36, 37, 38. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 5.20 Testy 36, 38, 39. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 5.21 Testy 36, 40, 41. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 5.22 Testy 36, 42, 43, 44. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 5.23 S´ıt’ nauˇcen´a algoritmem 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 5.24 Srovn´an´ı algoritm˚ u 3, 4, 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 5.25 Infraˇcerven´e senzory e-pucku . . . . . . . . . . . . . . . . . . . . . . . . . . 69 5.26 Experiment s robotem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 5.27 Neuronov´a s´ıt’ pro experiment s robotem . . . . . . . . . . . . . . . . . . . 72 5.28 Pr˚ ubˇeh experimentu se simulovan´ ym robotem . . . . . . . . . . . . . . . . 74 5.29 Experiment s fyzick´ ym robotem . . . . . . . . . . . . . . . . . . . . . . . . 75
84
Seznam tabulek 5.1
Testy algoritm˚ u 2 a 3 s n´ahodnou inicializac´ı . . . . . . . . . . . . . . . . . 55
5.2
Testy algoritm˚ u 2 a 3 s pˇrednastaven´ım . . . . . . . . . . . . . . . . . . . . 55
5.3
Testy algoritmu 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
5.4
Testy algoritmu 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
5.5
Srovn´an´ı algoritm˚ u 3, 4, 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
85
Literatura [1] Barto A. G., Sutton R. S., Anderson C. W. (1983): Neuronlike elements that can solve difficult learning control problems. IEEE Transactions on Systems Man and Cybernetics 13, 834-846. [2] Bertsekas D. P., Tsitsiklis J. N. (1995): Neuro-Dynamic Programming: An overview. Proceedings of the 34th IEEE Conference on Decision and Control , 560-564. [3] Civ´ın L. (2006): Vrstevnat´e neuronov´e s´ıtˇe a jejich aplikace pˇri dob´ yv´an´ı znalost´ı. Diplomov´a pr´ace, Matematicko-fyzik´aln´ı fakulta Univerzity Karlovy v Praze. [4] Edelman G. M. (1978): The mindful brain. VB Mountcastle, MIT. [5] Hochreiter J., Schmidhuber J. (1997): Long Short-Term Memory. Neural Computation, 9(8), 1735-1780. [6] Holland J. H. (1975): Adaptation in Natural and Artificial Systems. University of Michigan Press, Ann Arbor. [7] Hornik K., Stinchcombe M., White H. (1989): Multilayer feedforward networks are universal approximators. Neural Networks 2, 359-366. [8] Hutter M. (2001): General loss bounds for universal sequence prediction. Proceedings of the 18th International Conference on Machine Learning (ICML-2001). [9] Judd J. S. (1988): Neural Network Design and the Complexity of Learning. Dissertation, Computer Science Department, California Institute of Technology, USA. ˇ ep´ankov´a O., Laˇzansk´ [10] Maˇr´ık V., Stˇ y J. (1993): Umˇel´a inteligence (1), kapitola 2. Praha, Academia. [11] Munro P. W. (1987): A dual back-propagation scheme for scalar reinforcement learning. Proceedings of the Ninth Annual Conference of the Cognitive Science Society, Seatle, WA. [12] Robinson A. J., Fallside F. (1987): Static and dynamic error propagation networks with application to speech encoding. Proceedings of Neural Information Processing Systems, American Institute of Physics. [13] Rumelhart D. E., Hinton G. E., Williams R. J. (1986): Learning internal representations by error propagation. Parallel Distributed Processing: Explorations in the Microstructure of cognition, volume I, 318-362. 86
[14] Schmidhuber J. H. (1989): A Local Learning Algorithm for Dynamic Feedforward and Recurrent Networks. Connection Science, 1(4), 403-412. [15] Schmidhuber J. H. (1990): Making the world differentiable: On using supervised learning fully recurrent neural networks for dynamic reinforcement learning and planning in non-stationary environments. Technical Report FKI-126-90 (revised), Insitut f¨ ur Informatik, Technische Universit¨at M¨ unchen. [16] Schmidhuber J. H. (1991): A possibility for implementing curiosity and boredom in model-building neural controllers. Proceedings of the International Conference on Simulation of Adaptive Behavior: From Animals to Animats 222-227, MIT Press/Bradford Books. [17] Schultz W., Dayan P., Montague P. (1997): A neural substrate of prediction and reward. Science 275 , 1593-1599. [18] Sutton R. S. (1988): Learning to predict by the methods of temporal differences. Machine learning 3 , 9-44. [19] Tesauro G. (1995): Temporal Difference Learning and TD-Gammon. Communications of the ACM, Vol. 38, No. 3. [20] Watkins C. J. C. H. (1989): Learning from Delayed Rewards. PhD thesis, Cambridge University, Cambridge, England. [21] Williams R. J., Zipser D. (1989): A Learning Algorithm for Continually Running Fully Recurrent Neural Networks. Neural computation 1 , 270-280.
87
Dodatek A Knihovna neuronov´ ych s´ıt´ı Flexinets Souˇca´st´ı diplomov´e pr´ace je i knihovna objekt˚ u a metod pro pr´aci s neuronov´ ymi s´ıtˇemi Flexinets. V t´eto knihovnˇe byly implementov´any vˇsechny v´ yˇse popsan´e modely neuronov´ ych s´ıt´ı (s´ıt’ zpˇetn´eho ˇs´ıˇren´ı, s´ıt’ s n´ahodn´ ymi zmˇenami, modifikovan´e TD(λ) a Schmidhuberova rekurentn´ı s´ıt’). Vˇsechny experimenty popsan´e v experiment´aln´ı ˇca´sti pr´ace byly provedeny s vyuˇzit´ım knihovny Flexinets. Knihovna umoˇzn ˇuje pomˇernˇe jednoduch´ ymi u ´pravami pˇrid´avat nov´e modely neuronov´ ych s´ıt´ı nebo rozˇsiˇrovat funkcionalitu st´avaj´ıc´ıch model˚ u.
A.1
Principy knihovny Flexinets
Knihovna byla naps´ana v C++ s pouˇzit´ım Microsoft Visual C++ 6.0 a je objektovˇe orientov´ana. Skl´ad´a se ze dvou soubor˚ u - neurons.h a neurons.cpp. Prvn´ı z nich je hlaviˇckov´ y soubor obsahuj´ıc´ı deklarace vˇsech tˇr´ıd a poloˇzek, druh´ y z nich obsahuje tˇela vˇsech metod. V tˇechto souborech jsou pops´any postupnˇe vˇsechny implementovan´e modely neuronov´ ych s´ıt´ı. Byla pouˇzita konvence, ˇze jm´ena objekt˚ u a dalˇs´ıch typ˚ u zaˇc´ınaj´ı velk´ ym p´ısmenem, jm´ena instanc´ı objekt˚ u, promˇenn´ ych a poloˇzek objekt˚ u p´ısmenem mal´ ym a jm´ena konstant preprocesoru jsou ps´ana cel´a velk´ ym p´ısmem. Oba soubory jsou podrobnˇe okomentov´any (v Angliˇctinˇe), pˇriˇcemˇz v neurons.h lze nal´ezt podrobnˇeji okomentovan´e parametry metod, zat´ımco v neurons.cpp lze nal´ezt i koment´aˇre d´ılˇc´ıch v´ ypoˇct˚ u a pˇr´ıkaz˚ u, kter´e to vyˇzaduj´ı. Knihovna Flexinets definuje tˇr´ıdu Synapse pro spojen´ı mezi neurony, tˇr´ıdu Neuron pro obecn´ y neuron a tˇr´ıdu NNetwork pro obecnou neuronovou s´ıt’. Obecn´ y neuron a obecn´a neuronov´a s´ıt’ jsou vybaveny datov´ ymi poloˇzkami a metodami, kter´e jsou potˇreba pro pr´aci s vˇetˇsinou r˚ uzn´ ych model˚ u neuronov´ ych s´ıt´ı. Konkr´etn´ı modely neuronov´ ych s´ıt´ı jsou pak v knihovnˇe pˇrid´any vytvoˇren´ım potomk˚ u tˇr´ıdy NNetwork a tˇr´ıdy Neuron, kter´e nesou datov´e poloˇzky a metody charakteristick´e pro ten kter´ y model. Knihovna ve velk´e m´ıˇre vyuˇz´ıv´a standardn´ı ˇsablony jazyka C++ (tzv. STL - Standart templates library) pro pr´aci se seznamy neuron˚ u, seznamy synaps´ı apod.. Vnitˇrnˇe zach´az´ı knihovna s Neurony pˇredevˇs´ım pomoc´ı ukazatel˚ u, ale veˇrejn´e metody urˇcen´e pro uˇzivatelsk´e pouˇzit´ı v extern´ıch programech odkazuj´ı na neurony pomoc´ı jejich index˚ u v s´ıti. Pop´ıˇseme zde struˇcnˇe vˇsechny v souˇcasnosti implementovan´e tˇr´ıdy knihovny Flexinets. Omez´ıme se pˇritom na popis jejich datov´ ych poloˇzek, kter´ y vystihuje z´akladn´ı funkcionalitu tˇechto tˇr´ıd. Jejich metod je 88
mnoho, a proto ˇcten´aˇre odkazujeme na jejich okomentovan´ y k´od v knihovnˇe. Intern´ı metody knihovny Flexinets jsou typicky deklarov´any jako chr´anˇen´e (protected nebo private), metody, kter´e b´ yvaj´ı vol´any z extern´ıho programu, jako veˇrejn´e. Datov´e poloˇzky tˇr´ıd jsou vesmˇes chr´anˇen´e.
A.2
Tˇ r´ıdy knihovny Flexinets
Class Synapse Tato tˇr´ıda popisuje spojen´ı mezi dvˇema neurony. Poˇzadavky na podobu synapse se mezi implementovan´ ymi modely pˇr´ıliˇs neliˇs´ı, a proto v souˇcasnosti nen´ı implementov´an ˇz´adn´ y potomek t´eto tˇr´ıdy a tato tˇr´ıda je pouˇz´ıv´ana v kaˇzd´em modelu pˇr´ımo. Jelikoˇz je seznam synaps´ı poloˇzkou neuronu, do kter´eho synapse vstupuje, nen´ı tˇreba, aby synapse obsahovala poloˇzku pro jej´ı c´ılov´ y neuron. Obsahuje tedy pouze ukazatel na zdrojov´ y neuron Neuron* source a aktu´aln´ı hodnotu v´ahy float weight. Nˇekter´e algoritmy (napˇr´ıklad ty, kter´e pouˇz´ıvaj´ı moment uˇcen´ı) potˇrebuj´ı zn´at t´eˇz pˇredchoz´ı hodnotu v´ahy. Ta je uloˇzena v datov´e poloˇzce float oldWeight. Class Neuron Tˇr´ıda Neuron reprezentuje umˇel´ y neuron s jeho z´akladn´ımi poloˇzkami. Model s´ıtˇe s n´ahodn´ ymi zmˇenami vah popsan´ y v 4.2 pouˇz´ıv´a tuto tˇr´ıdu pˇr´ımo, v ostatn´ıch modelech pracujeme s potomky t´eto tˇr´ıdy. Tˇr´ıda je vybavena ukazatelem na pˇrenosovou funkci static float(* tFunction)(float), coˇz umoˇzn ˇuje pracovat s libovolnou pˇrenosovou funkc´ı (Typicky pouˇz´ıv´ame sigmoidu.) Protoˇze tFunction je statick´a poloˇzka, vˇsechny neurony maj´ı stejnou pˇrenosovou funkci. Dalˇs´ı statickou poloˇzkou je float maxRandomWeight, kter´a ud´av´a maxim´aln´ı absolutn´ı hodnotu prah˚ u a vah pˇri n´ahodn´e inicializaci. Poloˇzka ConnectionList inputs je seznam vstupn´ıch synaps´ı neuronu, float bias a float oldBias obsahuj´ı aktu´aln´ı, respektive pˇredchoz´ı hodnoty prahu. Poloˇzky float outputVal a float oldVal pak obsahuj´ı aktu´aln´ı a pˇredchoz´ı v´ ystup neuronu. Class NNetwork Tato tˇr´ıda pˇredstavuje obecnou neuronovou s´ıt’. Jej´ımi datov´ ymi poloˇzkami je seznam ukazatel˚ u na vˇsechny neurony s´ıtˇe PtrList neurons, jeho podmnoˇzina ukazuj´ıc´ı pouze na vstupn´ı neurony PtrList netInputs a jeho podmnoˇzina ukazuj´ıc´ı pouze na v´ ystupn´ı neurony PtrList netOutputs. Neuron t´eto s´ıtˇe bude obvykle instance tˇr´ıdy Neuron. Model s´ıtˇe s n´ahodn´ ymi zmˇenami vah popsan´ y v 4.2 pouˇz´ıv´a tuto tˇr´ıdu pˇr´ımo, v ostatn´ıch modelech pracujeme s potomky t´eto tˇr´ıdy. Tˇr´ıda NNetwork je vybavena ˇradou metod manipuluj´ıc´ıch s neurony s´ıtˇe, kter´e vyuˇzijeme v r˚ uzn´ ych algoritmech pracuj´ıc´ıch s neuronov´ ymi s´ıtˇemi. Class BPNeuron, Class BPNetwork Tyto tˇr´ıdy definuj´ı neuron a s´ıt’ neuron˚ u pro algoritmus 1 - backpropagation popsan´ y v 3.2. Tˇr´ıda BPNeuron je oproti tˇr´ıdˇe Neuron obohacena o poloˇzku double delta, kter´a obsahuje hodnotu chybov´eho ˇclenu dan´eho neuronu, ze kter´eho se poˇc´ıtaj´ı parci´aln´ı derivace v´ ystup˚ u s´ıtˇe podle jednotliv´ ych vah. Hlavn´ı metodou tˇr´ıdy BPNetwork, kter´a vykon´a jednu smyˇcku algoritmu zpˇetn´eho ˇs´ıˇren´ı, je void teach(float* input, float* desired, float alpha, float moment). Aby metody tˇr´ıdy BPNetwork spr´avnˇe fungovaly, je nutn´e, aby neurony s´ıtˇe byly seˇrazeny dle vah, poˇc´ınaje vstupn´ı vrstvou a v´ ystupn´ı 89
vrstvou konˇce. Pokud s´ıt’ vytvoˇr´ıme metodou tˇr´ıdy NNetwork void createLayers(int layersNum, ...), jsou tyto podm´ınky zaruˇceny. Class TDNetwork Tato tˇr´ıda implementuje modifikovan´ y algoritmus TD(λ) se tˇremi druhy zn´ahodnˇen´ı pouˇz´ıvan´ ymi v popsan´ ych experimentech. Zmiˇ novan´ y druh zn´ahodnˇen´ı 1 pro offline uˇcen´ı, kter´ y v experimentech nebyl pouˇzit, lze snadno dodat t´eˇz. Tento model neuronov´e s´ıtˇe vyuˇz´ıv´a stejnˇe jako algoritmus zpˇetn´eho ˇs´ıˇren´ı neurony tˇr´ıdy BPNeuron. Jejich poloˇzku double delta ale narozd´ıl od tohoto algoritmu vyuˇz´ıv´a k ukl´ad´an´ı parci´aln´ı derivace v´ ystupu jedin´eho v´ ystupn´ıho neuronu s´ıtˇe podle potenci´alu neuronu, jehoˇz je poloˇzkou. Star´e hodnoty vah synaps´ı vyuˇz´ıv´a algoritmus k uloˇzen´ı ˇcasovˇe v´aˇzen´e sumy parci´aln´ıch derivac´ı S(t) definovan´eho vzorcem 4.12 v ˇca´sti 4.4. Kromˇe seˇrazen´ı neuron˚ u dle vrstev zde nav´ıc pro spr´avnou funkˇcnost metod tˇr´ıdy TDNetwork poˇzadujeme, aby v seznamu neuron˚ u vˇsechny vstupn´ı neurony pro stav pˇredch´azely vˇsechny vstupn´ı neurony pro akce. Tˇr´ıda TDNetwork zav´ad´ı nav´ıc ˇctyˇri datov´e poloˇzky. Poloˇzka float lambda obsahuje hodnotu parametru λ, poloˇzka int stateInputs ud´av´a, kolik ze vstupn´ıch neuron˚ u k´oduje stav prostˇred´ı, BPNeuron* predictor je ukazatel na jedin´ y v´ ystupn´ı neuron, kter´ y predikuje odmˇenu, a float rand prob je pravdˇepodobnost, ˇze vybran´a akce bude nahrazena n´ahodnˇe zvolenou akc´ı pˇri pouˇzit´ı zn´ahodnˇen´ı typu 2. Class SNeuron, Class SNetwork Tˇr´ıdy pˇredstavuj´ı neuron a neuronovou s´ıt’ pro algoritmus 5 - Schmidhuberovu rekurentn´ı s´ıt’. Tˇr´ıda SNeuron je oproti tˇr´ıdˇe Neuron pro u ´ˇcely algoritmu 5 obohacena o datov´e poloˇzky float* derivatives, float* oldDerivatives, float* derBias, float* oldDerBias, kter´e ukazuj´ı na dynamicky vytvoˇren´a pole star´ ych a nov´ ych hodnot parci´aln´ıch derivac´ı neuronu dle vah a prah˚ u cel´e s´ıtˇe. SNeuron si d´ale udrˇzuje v poloˇzce SNetwork* netPointer ukazatel na s´ıt’, ve kter´e je um´ıstˇen, a sv˚ uj index v t´eto s´ıti v poloˇzce int neuronIndex. V pˇr´ıpadˇe, ˇze se jedn´a o predikˇcn´ı neuron z modeluj´ıc´ı s´ıtˇe, poloˇzka SNeuron* predicts ukazuje na predikovan´ y neuron, v opaˇcn´em pˇr´ıpadˇe m´a tato poloˇzka hodnotu nulov´eho ukazatele. Tˇr´ıda SNetwork klade pro spr´avnou funkˇcnost sv´ ych metod na uspoˇra´d´an´ı neuron˚ u v s´ıti dalˇs´ı podm´ınky. Vˇsechny neurony ˇr´ıdic´ı s´ıtˇe mus´ı v seznamu neuron˚ u pˇredch´azet vˇsechny neurony modeluj´ıc´ı s´ıtˇe, pˇriˇcemˇz prvn´ı mus´ı b´ yt vstupn´ı neurony a posledn´ı z neuron˚ u ˇr´ıdic´ı s´ıtˇe mus´ı b´ yt neurony v´ ystupn´ı. Derivace dle neexistuj´ıc´ıch vah mus´ı m´ıt nastaveny nulovou hodnotu. Tyto podm´ınky jsou pˇri pouˇz´ıv´an´ı dodan´ ych metod zaruˇceny. Tˇr´ıda SNetwork obsahuje d´ale datov´e poloˇzky int stepNo ud´avaj´ıc´ı, zda je algoritmus ve sv´em prvn´ım cyklu, int controlSize ud´avaj´ıc´ı velikost ˇr´ıdic´ı s´ıtˇe, ukazatel na odmˇen ˇovac´ı vstup SNeuron* reward, ukazatel na prediktor odmˇeny SNeuron* rewardPredictor a pole ukazatel˚ u na vˇsechny prediktory std::vector<SNeuron*> predictors. Pro rozˇs´ıˇren´ı knihovny o dalˇs´ı model je obvykle tˇreba napsat nov´e potomky tˇr´ıd Neuron a NNetwork, definovat nov´e datov´e poloˇzky a metody a pˇredefinovat virtu´aln´ı metody tˇr´ıdy NNetwork. Knihovnu Flexinets vˇcetnˇe pˇr´ıkladu jej´ıho pouˇzit´ı pˇri uˇcen´ı s´ıtˇe zpˇetn´eho ˇs´ıˇren´ı logickou funkci XOR lze nal´ezt na CD pˇriloˇzen´em k t´eto pr´aci.
90
Dodatek B Pouˇ zit´ y simul´ ator koˇ risti a dravce Za u ´ˇcelem testov´an´ı algoritm˚ u popsan´ ych v t´eto pr´aci jsme vyvinuli jednoduch´ y simul´ator dravce a koˇristi, kter´ y je pˇr´ılohou t´eto pr´ace.
B.1
Uˇ zivatelsk´ e rozhran´ı
Uˇzivatelsk´e rozhran´ı simul´atoru je pomˇernˇe stroh´e, skl´ad´a se z textov´e konzole a jednoho grafick´eho okna. V grafick´em oknˇe se zobrazuje pr˚ ubˇeh simulace nebo uˇzivatelsk´a n´apovˇeda. V prvn´ım pˇr´ıpadˇe okno zn´azorˇ nuje dravce v podobˇe ˇcerven´ ych bod˚ u a koˇrist v podobˇe bod˚ u modr´ ych, kter´e se postupnˇe pˇrebarvuj´ı do zelena, pokud koˇrist hladov´ı. V grafick´em oknˇe najdeme d´ale informace o tom, kolik koˇristi bylo seˇzr´ano dravci a kolik j´ı vyhladovˇelo, kolik bod˚ u a jakou odmˇenu zat´ım z´ıskala koˇrist v pr´avˇe bˇeˇz´ıc´ı simulaci a kolik´at´a simulace pr´avˇe prob´ıh´a. Konzole slouˇz´ı k v´ ypisu informac´ı o pr˚ ubˇehu experiment˚ u. Po skonˇcen´ı kaˇzd´e s´erie simulac´ı je zde vyps´an poˇcet simulac´ı, kter´e probˇehly, celkov´ y poˇcet bod˚ u a odmˇena z´ıskan´e v s´erii. Po spuˇstˇen´ı je v grafick´em oknˇe zobrazena struˇcn´a n´apovˇeda k ovl´ad´an´ı programu, kterou lze skr´ yt a opˇetovnˇe zobrazit kl´avesou F1. Jeden krok simulace provedeme kl´avesou enter, kontinu´aln´ı bˇeh simulace spust´ıme a zastav´ıme mezern´ıkem. Kl´avesa 0 slouˇz´ı k vypnut´ı nebo zapnut´ı zn´ahodnˇen´ı v pˇr´ıpadˇe, ˇze je tato volba relevantn´ı (tedy pˇri pouˇzit´ı Schmidhuberova modelu ˇci modifikovan´eho TD(λ) se zn´ahodnˇen´ım ˇc´ıslo 2). Kl´avesou 1 v grafick´em oknˇe naprogramujeme jednu simulaci, kl´avesou 2 naprogramujeme s´erii simulac´ı a kl´avesou 3 naprogramujeme nekoneˇcn´ y sled simulac´ı. Kl´avesou A lze zak´azat a opˇet povolit uˇcen´ı. Simulace m˚ uˇze bˇeˇzet ve dvou m´odech - se zobrazen´ım a bez zobrazen´ı. M´od bez zobrazen´ı je rychlejˇs´ı a hod´ı se pro experimenty sest´avaj´ıc´ı z dlouh´e s´erie simulac´ı. M´ody pˇrep´ın´ame kl´avesou D. Kl´avesou R pˇreruˇs´ıme pr´avˇe prob´ıhaj´ıc´ı simulaci a pˇriprav´ıme novou. Volba S uloˇz´ı strukturu a v´ahy neuronov´ ych s´ıt´ı ˇr´ıd´ıc´ıch koˇrist do oˇc´ıslovan´ ych soubor˚ u v podadres´aˇri /results. Kl´avesa escape ukonˇc´ı cel´ y simul´ator. Potˇrebujeme-li pˇri experimentu zjistit ˇc´ıslo nˇekter´eho z agent˚ u, m˚ uˇzeme na nˇej kliknout lev´ ym tlaˇc´ıtkem myˇsi. Na konzolu se pak vyp´ıˇse jeho ˇc´ıslo a pˇr´ıpadnˇe dalˇs´ı u ´daje o nˇem. Uloˇz´ıme-li agenty pomoc´ı kl´avesy S, m˚ uˇzeme takto poklik´an´ım na agenta zjistit, kter´e ˇc´ıslo souboru odpov´ıd´a kter´emu agentu na obrazovce. Pro nˇekter´e modely vyvol´a poklep´an´ı myˇs´ı na agenta t´eˇz v´ ypis dalˇs´ıch informac´ı uˇziteˇcn´ ych pro anal´ yzu pˇr´ısluˇsn´e neuronov´e s´ıtˇe (napˇr´ıklad hodnoty jeho vstup˚ u a v´ ystup˚ u). 91
B.2
Struˇ cnˇ e o implementaci simul´ atoru
Simul´ator byl stejnˇe jako knihovna pro pr´aci s neuronov´ ymi s´ıtˇemi Flexinets naprogramov´an v C++ s pouˇzit´ım Microsoft Visual C++ 6.0. Uˇzivatelsk´e rozhran´ı bylo vytvoˇreno pomoc´ı knihovny OpenGL. Program vyuˇz´ıv´a objektovˇe orientovan´ ych technik tak, aby byl program pˇrehledn´ y a snadno modifikovateln´ y. Simul´ator poskytuje rozhran´ı pro pouˇzit´ı dodan´eho algoritmu (funkce v jazyce C / C++) pro ovl´ad´an´ı koˇristi nebo dravce. Stejnˇe jako v knihovnˇe Flexinets, i zde byla pouˇzita konvence, ˇze jm´ena objekt˚ u a dalˇs´ıch typ˚ u zaˇc´ınaj´ı velk´ ym p´ısmenem, jm´ena instanc´ı objekt˚ u, promˇenn´ ych a poloˇzek objekt˚ u p´ısmenem mal´ ym a jm´ena konstant preprocesoru jsou ps´ana cel´a velk´ ym p´ısmem. K´od je pro vˇetˇs´ı ˇcitelnost podrobnˇe okomentov´an.
B.2.1
Hierarchie objekt˚ u
Z´akladn´ı pouˇzit´e objekty jsou tˇr´ıda Environment a tˇr´ıda Creature. Tˇr´ıda Environment poskytuje abstraktn´ı rozhran´ı pro prostˇred´ı (svˇet) obecn´eho simul´atoru a deklaruje nejd˚ uleˇzitˇejˇs´ı datov´e poloˇzky a metody, kter´e konkr´etn´ı simul´ator mus´ı obsahovat. Jednou z poloˇzek tˇr´ıdy Environment je spojov´ y seznam creatureList instanc´ı tˇr´ıdy Creature, kter´a poskytuje abstraktn´ı rozhran´ı pro obecn´eho agenta. Kromˇe seznamu agent˚ u obsahuje d´ale tˇr´ıda Environment abstraktn´ı deklaraci z´akladn´ıch metod pro pˇrid´av´an´ı a ub´ır´an´ı agent˚ u a jejich interakci s prostˇredn´ım. Tˇr´ıda Creature popisuje z´akladn´ı datov´e poloˇzky, kter´e mus´ı m´ıt kaˇzd´ y druh agenta (napˇr. souˇradnice ud´avaj´ıc´ı jeho polohu) a z´akladn´ı virtu´aln´ı metodu action(inputs, outputs, reward), kter´a pos´ıl´a agentovi informaci o jeho aktu´aln´ıch vstupech a odmˇenˇe a poˇzaduje informaci o jeho v´ ystupech. Tato metoda by sama nemˇela mˇenit stav prostˇred´ı, pouze vr´atit informaci o tom, co agent chce vykonat. Simul´ator, kter´ y pouˇz´ıv´ame pro popisovan´e experimenty, vyuˇz´ıv´a tˇr´ıdu Environment1, kter´a je potomkem tˇr´ıdy Environment. Tˇr´ıda definuje konkr´etn´ı vlastnosti svˇeta s diskr´etn´ım prostorem a ˇcasem odpov´ıdaj´ıc´ıho v´ yˇse popsan´e u ´loze. Speci´alnˇe tˇr´ıda Environment1 pˇredpokl´ad´a, ˇze agenti komunikuj´ı s prostˇred´ım prostˇrednictv´ım 4 vstup˚ u, 3 v´ ystup˚ u a odmˇeny, tak jak jsou pops´any v zad´an´ı u ´lohy. Tˇr´ıdˇe Environment1 odpov´ıd´a tˇr´ıda agent˚ u Creature1, kter´a je potomkem tˇr´ıdy Creature. Popisuje st´ale jeˇstˇe abstraktn´ı tˇr´ıdu agent˚ u pro toto prostˇred´ı. Jej´ım potomkem je tˇr´ıda Tiger pˇredstavuj´ıc´ı dravce a tˇr´ıda Rabbit pˇredstavuj´ıc´ı koˇrist. Agenti ˇr´ıd´ıc´ı se r˚ uzn´ ymi dodan´ ymi algoritmy (napˇr. nˇejak´ ym modelem neuronov´e s´ıtˇe) jsou pak potomci tˇr´ıdy Rabbit liˇs´ıc´ı se mezi sebou definic´ı virtu´aln´ı metody action.
B.2.2
Struktura programu
Z´akladem ˇcinnosti simul´atoru je metoda tˇr´ıdy Environment1 oneStep, kter´a pˇredstavuje jeden krok simulace. Metoda postupnˇe projde seznam agent˚ u creatureList. Pro kaˇzd´eho z nich vypoˇc´ıt´a hodnotu vstup˚ u a odmˇenu a zavol´a jeho metodu action, aby z´ıskala jeho v´ ystupy, kter´e potom vykon´a pomoc´ı metody perform. 92
Zdrojov´ y k´od simul´atoru se skl´ad´a z tˇechto soubor˚ u: genericSim.h - obsahuje definice abstraktn´ıch tˇr´ıd Environment a Creature environment.h - obsahuje definice konstant pouˇzit´ ych v simul´atoru a potomk˚ u tˇr´ıdy Environment a Creature environment.cpp - k´od metod urˇcuj´ıc´ıch logiku simul´atoru SurvivalSim.cpp - funkce main a uˇzivatelsk´e rozhran´ı simul´atoru Chceme-li tedy experimentovat s nov´ ym algoritmem, je tˇreba vytvoˇrit nov´eho potomka tˇr´ıdy Rabbit, upravit v souboru environment.cpp metodu Environment1::spawn tak, aby vytv´aˇrela v prostˇred´ı agenty ˇr´ızen´e t´ımto algoritmem, a pˇr´ıpadnˇe v t´emˇze souboru upravit metodu Environment1::restart, pokud je potˇreba agenty na zaˇca´tku simulace inicializovat. Poˇcet krok˚ u na jednu simulaci a poˇcet simulac´ı v experimentu m˚ uˇzeme nastavit zmˇenou konstanty TICKS respektive SESSIONS v souboru SurvivalSim.cpp. Simul´ator koˇristi a dravce je pˇriloˇzen na disku CD k t´eto pr´aci.
93
Dodatek C Obsah pˇ riloˇ zen´ eho CD Souˇca´st´ı t´eto pr´ace je i CD, na kter´em lze nal´ezt tuto pr´aci v elektronick´e verzi, zdrojov´e k´ody knihovny neuronov´ ych s´ıt´ı Flexinets, zdrojov´e k´ody pouˇzit´e pro experimenty popsan´e v´ yˇse a demonstraˇcn´ı videa a programy umoˇzn ˇuj´ıc´ı snadno opakovat nej´ uspˇeˇsnˇejˇs´ı z experiment˚ u popsan´ ych v´ yˇse. N´asleduje popis obsahu CD: • Precti.txt - popis obsahu CD • Readme.txt - popis obsahu CD v Angliˇctinˇe • Adres´aˇr Thesis Tento adres´aˇr obsahuje elektronickou verzi t´eto pr´ace. – NS a RL.ps - tato pr´ace ve form´atu postscript – NS a RL.pdf - tato pr´ace ve form´atu Adobe reader • Adres´aˇr Flexinet Tento adres´aˇr obsahuje zdrojov´ y k´od pouˇzit´e knihovny neuronov´ ych s´ıt´ı Flexinets. – neurons.h - hlaviˇcka s definicemi knihovny Flexinets – neurons.cpp - tˇela metod a funkc´ı knihovny Flexinets – xor.cpp - uk´azkov´ y pˇr´ıklad aplikace knihovny Flexinets pro nauˇcen´ı s´ıtˇe zpˇetn´eho ˇs´ıˇren´ı v´ ypoˇcet logick´e funkce XOR • Adres´aˇr PredatorPrey Tento adres´aˇr obsahuje soubory t´ ykaj´ıc´ı se experiment˚ u v simul´atoru dravce a koˇristi popsan´ ych v ˇca´sti 5.1. Adres´aˇr obsahuje podadres´aˇre odpov´ıdaj´ıc´ı experiment˚ um s dravci a bez dravc˚ u pro vybranou konfiguraci kaˇzd´eho ze tˇr´ı testovan´ ych algoritm˚ u (celkem 6 experiment˚ u). Kaˇzd´ y z adres´aˇr˚ u m´a obdobn´ y obsah: – SurvivalSim.exe - demonstraˇcn´ı program spouˇstˇej´ıc´ı experiment – opengl.dll, glu.dll, glut.dll - potˇrebn´e dynamick´e knihovny openGL – results - adres´aˇr pro ukl´ad´an´ı konfigurac´ı s´ıt´ı bˇehem experimentu – source - adres´aˇr se zdrojov´ ym k´odem simul´atoru vˇcetnˇe souboru environment.h s parametry nastaven´ ymi pro spuˇstˇen´ı pˇr´ısluˇsn´eho experimentu 94
• Adres´aˇr ExperimentRobot Tento adres´aˇr obsahuje soubory t´ ykaj´ıc´ı se experimentu se simulovan´ ym i re´aln´ ym robotem e-puck v programu Webots popsan´eho v ˇca´sti 5.2. N´azvy nˇekter´ ych soubor˚ u v jeho podadres´aˇr´ıch odpov´ıdaj´ı stavu experimentu v urˇcit´em ˇcase. Potom jejich n´azvy obsahuj´ı ˇc´ıslo, kter´e ud´av´a, po kolika ˇcasov´ ych period´ach tento stav nastal. ˇ Casov´a perioda se skl´ad´a z 200 krok˚ u robota. Tedy napˇr´ıklad soubor real 8000.avi zachycuje chov´an´ı fyzick´eho robota po 1600000 kroc´ıch simulovan´eho uˇcen´ı. Obsah adres´aˇre je n´asleduj´ıc´ı: – real epuck01.jpg, real epuck02.jpg - fotografie z experimentu s re´aln´ ym robotem – video simulation - filmy zachycuj´ıc´ı pr˚ ubˇeh experimentu se simulovan´ ym robotem – video real - filmy zachycuj´ıc´ı pr˚ ubˇeh experimentu s fyzick´ ym robotem – controler source - zdrojov´ y k´od pouˇzit´ y v experimentu ∗ neurons.h - hlaviˇckov´ y soubor knihovny Flexinets s parametrem EPUCKTURNRIGHT, kter´ y pro u ´ˇcely tohoto experimentu povoluje pouze n´ahodn´e pohyby, pˇri nichˇz se robot toˇc´ı vpravo ∗ ThesisController.cpp - zdrojov´ y k´od programu ovl´adaj´ıc´ıho robota (tzv. kontroleru) ∗ ThesisSupervisor.cpp - zdrojov´ y k´od obsluˇzn´eho programu pro experiment (tzv. supervisoru) – experiment log - adres´aˇr s v´ ysledky experimentu ∗ results - adres´aˇr obsahuj´ıc´ı vˇsechny mezikonfigurace neuronov´e s´ıtˇe z pr˚ ubˇehu experimentu, kter´e mohou b´ yt opˇetovnˇe naˇcteny upraven´ım parametru LOADFILE ve zdrojov´em souboru kontroleru ∗ rewards.csv - soubor obsahuj´ıc´ı historii z´ıskan´ ych odmˇen za kaˇzd´ ych 200 krok˚ u experimentu ∗ testWebots.csv - soubor obsahuj´ıc´ı historii ujet´e vzd´alenosti a poˇctu robotov´ ych koliz´ı za kaˇzd´ ych 200 krok˚ u experimentu – Webots Tento adres´aˇr obsahuje soubory potˇrebn´e pro spuˇstˇen´ı experimentu v simul´atoru Webots. Pro spuˇstˇen´ı experimentu je tˇreba m´ıt nainstalov´anu verzi simul´atoru Webots umoˇzn ˇuj´ıc´ı pouˇzit´ı uˇzivatelsky definovan´ ych kontroler˚ u. V takov´em pˇr´ıpadˇe staˇc´ı pˇrekop´ırovat tento podadres´aˇr do adres´aˇre, kde je simul´ator nainstalov´an, otevˇr´ıt soubor se svˇetem a ujistit se ˇze je propojen se spr´avn´ ym supervisorem a kontrolerem. Soubory s pˇr´ıponou .nn obsaˇzen´e v podadres´aˇr´ıch tohoto adres´aˇre obsahuj´ı uloˇzen´e konfigurace neuronov´e s´ıtˇe v urˇcit´em st´adiu experimentu. ∗ thesisWorld.wbt - soubor se svˇetem pro program Webots pouˇzit´ ym v experimentu ∗ ThesisSupervisor - adres´aˇr se supervisorem pˇreloˇzen´ ym pro pouˇzit´ı v simul´atoru Webots ∗ ThesisController - adres´aˇr s kontrolerem pˇreloˇzen´ ym pro pouˇzit´ı v simul´atoru Webots 95
∗ 4000, 7000, 8000, 8210, 8660 - adres´aˇre s kontrolery pro simul´ator Webots, kter´e demonstruj´ı chov´an´ı robota, pokud zastav´ıme jeho uˇcen´ı v urˇcit´em st´adiu experimentu
96