**Stiimulõpe** on masinõppe ala, mis on inspireeritud biheiviorismist. Selle uurimisobjektiks on tarkvara põhiline agent, mille eesmärk on teostada tegevusi ümbritsevas keskkonnas nii, et tegevustest tulenev preemia oleks maksimeeritud. Probleemi üldisuse tõttu on see uuritud paljudes teistes valdkondades, näiteks mänguteooria, automaatika, majandusteadus, informatsiooniteooria, statistika, geneetilised algoritmid jt.

Sissejuhatus
------------

Stiimulõpes on keskkond tüüpiliselt formuleeritud kui Markovi otsustusprotsess (MDP), kuna stiimulõppes rakendavad paljud algoritmid probleemi lahendamiseks dünaamilist programmeerimist. Tänapäevase stiimulõpe erinevus klassikalistest algoritmidest on see, et tänapäevase stiimulõpe algoritmidel pole vaja teada protsessi MDP-d ning nende abil saab lahendada suuri MDP-sid, kus täpsed lahendid on tihtipeale võimatud.

Stiimulõpe protsess erineb tavalisest juhendatud õppest selle poolest, et see ei kasutata sisend/väljund näidispaare ja suboptimaalsed tegevused ei ole otseselt korrigeeritud. Selle asemel on stiimulõpe algoritmide fookuseks nende tegevuste lõplik tulemus, mille saavutamiseks on vaja balansseeritud avastamist ja olemasoleva strateegia järgimist. Nende kompromiss on pidevalt uuritud lõpliku MDP-ga probleemide kontekstis, nagu *multi-armed bandit*.

Formuleering
------------

Matemaatiliselt on stiimulõpe formuleeritud kui Markovi otsustusprotsess ({\displaystyle S,A,P,R}):

* {\displaystyle S} – kõikvõimalike olekute hulk,
* {\displaystyle A} – kõikvõimalike tegevuste hulk,
* {\displaystyle P} – üleminekutõenäosus: {\displaystyle P(s'|s,a)=Pr(s\_{t+1}=s'|s\_{t}=s,a\_{t}=a)},
* {\displaystyle R} – preemia, mille saab üleminekul olekust {\displaystyle s} olekusse {\displaystyle s'}: {\displaystyle R(s,a,s')}.

Formuleeringust otseselt tuleneb, et stiimulõpe tegeleb stohhastiliste probleemidega, kus üleminek olekust {\displaystyle s} olekusse {\displaystyle s'} pole deterministlik. Üldjuhul pole üleminekutõenäosused teada ning algoritmi eesmärk on olekule {\displaystyle s\in S} leida vastav tegevus {\displaystyle a\in A} nii, et oodatav preemia oleks maksimeeritud.

Algoritmid
----------

Tihti rakendatakse stiimulõppe algoritmide kasutamisel funktsioonide lähenemismeetodeid, nagu näiteks närvivõrgud. Tänu nendele on võimalik stiimulõpet rakendada seal, kus klassikalised meetodid hakkama ei saa:

* keskkonnades, kus olekute hulk {\displaystyle S}on liiga suur klassikaliste meetodite jaoks;
* üleminekutõenäosused pole teada ning seega ainuke viis keskkonnast midagi teada saada on reaalajas tegevustega;
* üleminekutõenäosused on teada, aga tulenev mudel on arvutamise mõttes liiga raske.

Tänapäeval populaarsemad stiimulõpe algoritmid on DQN ja A3C, kusjuures nende erinevus ei ole ainult algoritmiline, vaid ka agendi õppimise põhimõtte poolest, sest DQN õpib viivitusega ehk kogub alguses mingi hulga kogemusi mälusse ja pärast õpib nende pealt, A3C aga õpib käigupõhiselt ehk reaalajas. Algoritmi valik sõltub nii püstitatud probleemi sisust (nt kas olekud/tegevused on diskreetsed või pidevad), aga ka käesolevast riistvarast (kas peamine arvutuslik komponent on protsessor või graafikakaart).

Rakendus
--------

Stiimulõppe algoritme rakendatakse paljudes valdkondades, näiteks robootikas ja majandusteaduses).

Ettevõtte DeepMind poolt loodud arvutiprogramm AlphaGo võitis 2016. aastal viiepartiilises *go*-matšis 4:1 maailmameistrit Lee Sedoli. 2017- aastal võitis programmi edasiarendatud variant AlphaZero ülekaalukalt parimat maleprogrammi Stockfish.

Viited
------

1. 1 2  Sutton, Richard S.; Barto, Andrew G. (1998). *Reinforcement Learning: An Introduction*. MIT Press. ISBN 0-262-19398-1.
2. ↑  Katehakis, M. N.; Veinott, A. F. (1987). "The Multi-Armed Bandit Problem: Decomposition and Computation". *Mathematics of Operations Research*. **12** (2): 262–268. DOI:10.1287/moor.12.2.262.
3. ↑  Mnih, Volodymyr; et al. (2013). "Playing Atari with Deep Reinforcement Learning". Vaadatud 13.05.2018. `{{cite journal}}`: viitemall journal nõuab parameetrit `|journal=` (juhend); et al.-i üleliigne kasutus kohas: `|first=` (juhend)
4. ↑  Mnih, Volodymyr; et al. (2016). "Asynchronous Methods for Deep Reinforcement Learning". Vaadatud 13.05.2018. `{{cite journal}}`: viitemall journal nõuab parameetrit `|journal=` (juhend); et al.-i üleliigne kasutus kohas: `|first=` (juhend)
5. ↑  "Reinforcement Learning / Successes of Reinforcement Learning". *umichrl.pbworks.com*. Vaadatud 13.05.2018.
6. ↑  "Artificial intelligence: Google's AlphaGo beats Go master Lee Se-dol". *BBC News*. Vaadatud 13.05.2018.