Spodbujevano učenje
Po analogiji iz behaviorizma, je spodbujevano učenje (angleško reinforcement learning, okrajšava RL) področje strojnega učenja, katerega cilj je priučitev vedenja oziroma optimizacija vedenja na podlagi povratne informacije prek nagrajevanja oz. kaznovanja. Problem v računalniških sistemih omogoča optimizacijo enostavnih vzorcev vedenja in postopno priučitev kompleksnejših potekov obnašanja. Zaradi svoje splošnosti je kot aproksimacijsko dinamično programiranje obravnavan v številnih drugih disciplinah (teorija iger, teorija nadzora, teorija informacij, stimulacijsko podprta optimizacija, statistika in evolucijski algoritmi).
Pri RL gre najpogosteje za priučitev kompleksnejših potekov vedenja, ki jih je mogoče izraziti skozi načrtovanje posledic vedenja. V nasprotju s tem se za neposredno optimizacijo vedenja pogosto uporablja postopke policy gradientov, ki vedenjske vzorce optimizirajo neposredno (brez ocenjevanja končnega vzorca vedenja) s spreminjanjem parametrov nekega vedenjskega vzorca.
Vsem RL postopkom je skupno, da se agent mora odločati na podlagi interakcije z okoljem (problemskim prostorom), tako da zaporedje njegovih odločitev doseže ciljno stanje, kljub temu da morda razpolaga tudi z drugimi informacijami, ki bi lahko vodile do drugačnih zaključkov. Cilj RL postopka je maksimizacija kumulativne vsote nagrad in s tem optimalni vedenjski vzorec v danih pogojih.
Osnovni princip
[uredi | uredi kodo]Za opredelitev RL principa je potrebno razdeliti okolje v različna stanja. V vsakem izmed stanj je možnih eno ali več dejanj, ki imajo za posledico prehod v naslednje stanje. Prehodi med stanji so lahko tudi probabilistični (zgodijo se z določeno verjetnostjo) in so praviloma agentom spočetka neznani. Glede na to ali je bilo dejanje nagrajeno ali kaznovano, to vodi v kasnejše povečanje oz. zmanjšanje pogostosti pojavljanja tega vzorca. Pri tem se privzame, da čas teče diskretno in da vsako dejanje potrebuje natanko eno časovno enoto.
Ker agent okolje zaznava avtonomno (kaznovanje oz. nagrajevanje je zaznano indirektno), se RL razlikuje tako od nenadzorovanega učenja, kjer se vzpostavijo zgolj asociativne povezave med dejanjem in posledico, kot tudi od nadzorovanega učenja, kjer agent za vsako dejanje dobi eksplicitni odziv (izgradi kavzalni odnos: dejanje → posledica).
Cilj agenta je najti strategijo, kako v vsakem stanju izbrati najboljšo možno dejanje. Pri tem so pomembni naslednji pojmi:
Strojno učenje | Psihologija | |
---|---|---|
policy (strategija) | odločitev, katero dejanje naj bo izvedeno v določenem stanju | dražljaj-reakcija, asociacije |
reward function (nagrada) | učinkovitost prehoda med stanjema | prijetnost/odvratnost posledice določenega dajanja |
value function (ocena dejanja) | pričakovana vsota vseh nagrad z upoštevanjem še prihajajočih stanj | pričakovano zadovoljstvo z rezultatom |
Princip lepo ponazori primer tekača, ki se pripravlja na maratonsko tekmovanje. Na voljo ima dve možnosti - bodisi lahko vsak dan sproti trenira zmerno (konstantna, a ne prevelika utrujenost) bodisi pa lahko odlaša (zelo atraktivno, utrujenost nizka), a gre zato tik pred tekmo raje na zelo zahtevne aerobične treninge (prav nič atraktivno, utrujenost visoka). V obeh primerih je tekač v končni fazi zmožen preteči maraton, vendar bi RL s pomočjo value functiona glede na preotali čas do naslednjega tekmovanja izbral pripravo, ki v končni fazi vodi do višnje vsote nagrajevanj (boljši čas na maratonu).
Formalizacija problema
[uredi | uredi kodo]Okolje
[uredi | uredi kodo]RL je večinoma opredeljen kot markovski proces odločanja (tudi MDP, po angl. Markov decission process), poimenovanih po ruskem matematiku Markovu. Model je koncipiran kot skupek stanj, ki posedujejo vse informacije o sistemu oz. okolju, ki ga modelirajo. Vsako izmed stanj omogoča karseda natančno predvidevanje posledic slehernega izvedenega dejanja. MDP se formalno zapiše kot četverček , pri čemur je:
- : množica vseh možnih stanj
- : množica vseh možnih dejanj v vsakem stanju
- : verjetnost prehoda v stanje , ob predpostavki, da se nahajamo v stanju in, da je izvedeno dejanje .
- : nagrada/kazen
Strategija
[uredi | uredi kodo]Cilj RL postopka je najti vedenjsko strategijo (policy) π: , ki za vsako stanje in dejanje maksimizira pričakovano prihodnjo nagrado. Strategija se lahko tekom učenja spreminja glede na količino prejetih nagrad.
Obstaja več možnosti za izbiro dejanja, na primer:
- greedy: vedno bo izbrano najboljše dejanje -
- ε-greedy: večinoma bo izbradno najboljše dejanje, občasno z verjetnostjo ε pa tudi naključno
Vrednostna funkcija
[uredi | uredi kodo]Obstajata dve v principu podobni različici vrednostnih funkcij:
- vrednostne funkcije stanj (state value function)
- vrednostne funkcije prehodov med stanji (state-action value function)
Vrednostne funkcije so definirane kot orodje za iskanje maksimalne vsote vseh pričakovanih nagrad s pomočjo sledečega algoritma:
- pričakuj prihodnjo nagrado s slabšalnim faktorjem γ:
- upoštevajoč stanja :
- upoštevajoč prehode med stanji :
Mehanizmi
[uredi | uredi kodo]TD-learning
[uredi | uredi kodo]Q-learning
[uredi | uredi kodo]Programske implementacije
[uredi | uredi kodo]- RL-Glue provides a standard interface that allows you to connect agents, environments, and experiment programs together, even if they are written in different languages.
- Maja Machine Learning Framework The Maja Machine Learning Framework (MMLF) is a general framework for problems in the domain of Reinforcement Learning (RL) written in python.
- Software Tools for Reinforcement Learning (Matlab and Python) Arhivirano 2013-07-21 na Wayback Machine.
- PyBrain(Python)
- TeachingBox is a Java reinforcement learning framework supporting many features like RBF networks, gradient descent learning methods, ...
- C++ implementation Arhivirano 2013-05-24 na Wayback Machine. for some well known reinforcement learning algorithms with source.
- Orange, a free data mining software suite, module orngReinforcement
- Policy Gradient Toolbox provides a package for learning about policy gradient approaches.