Errefortzu bidezko ikaskuntzari sarrera. 2. zatia: Q-learning.
Lehenengo zatian, beso anitzeko bidelapurraren problema deskribatu dugu, eta hainbat kontzeptu berri aipatu ditugu, egoera, ekintza, saria, etab. Hala ere, beso anitzeko bidelapurraren problema ez da errefortzu bidezko ikaskuntzaren problema osoa. Bidelapurren probleman, ekintza bakoitza aurrekoekiko erabat independentea da, eta egoera beti bera da, 1. zatiko adibidean bezala, non beti 5 beso berdinak genituen eta arrakasta izateko probabilitatea ez zen sekula aldatzen.
Errefortzu bidezko ikaskuntzaren problema osoan, egoera aldatu egiten da ekintza bat hartzen dugun bakoitzean. Honela adieraz dezakegu problema: agenteak ingurunetik (environment) egoera (state) jasotzen du, s (state) letrarekin irudikatuko duguna. Orduan, agenteak aukeratzen duen ekintza hartuko du, a (action) letrarekin adierazita. Ekintza hori exekutatzean, inguruneak sari bat emanez erantzungo du, r (reward) letrarekin irudikatua, eta ingurunean egoera berri batera mugituko da, s’ (next state) letrarekin irudikatua. Ziklo hori 1. irudian ikus daiteke.
Beraz, agenteak exekutatzea erabakitzen duen ekintza ez da soilik epe laburrean jasoko duen sariaren araberakoa izan behar. Epe luzera ahalik eta saririk handiena (edo itzulerarik handiena) ekarriko dioten ekintzak aukeratu behar ditu ibilbide (episode/trajectory) osoan. Ziklo honek egoeren, ekintzen eta sarien sekuentzia bat dakar, ibilbidearen lehen urratsetik azkeneraino: s1, a1, r1; s2, a2, r2; …; sT, AT, rT. Hemen, T balioak ibilbidearen amaiera adierazten du.
Balio funtzioa
Agenteak epe luzera egoera bakoitzetik zenbateko saria lortuko duen kuantifikatzeko, V(s) balio-funtzioa sartuko dugu. Funtzio horrek agenteak ibilbidearen amaierara arte lortuko duen sarien batura estimatzen du, s egoeratik hasita. Balio horiek zehazki kalkulatzea lortzen badugu, balio handiena duten egoeretara eramango gaituzten ekintzak jarraitu ahal izango ditu agenteak.
Q-learning, problema ebazten
Errefortzu bidezko ikaskuntzaren problema ebazteko, agenteak ekintzarik onena hautatzen ikasi behar du egoera posible bakoitzerako. Horretarako, Q-Learning algoritmoa egoera eta ekintza bikote bakoitzarentzat epe luzera zenbateko saria lortuko duen ikasten saiatzen da (s, a). Funtzio horri ekintza-balio funtzioa (action-value Function) deitzen diogu. Algoritmo honek funtzio hau Q(s, a) bezala adierazten du, eta agenteak a ekintza s estatutik jarraituz jasoko duen saria itzultzen du, Q funtzioak esandako politika bera jarraituko duela pentsatuz ibilbidearen amaierara arte. Beraz, s egoeratik bi ekintza baditugu aukeran, a1 eta a2, Q funtzioak ekintza bakoitzaren Q balioak (Q-values) emango dizkigu. Adibidez, Q (s, A1) = 1 eta Q (s, A2) = 4 bada, agenteak badaki a2 ekintza hobea dela eta sari handiagoa ekarriko duela ibilbidearen amaierara iristean; beraz, a2 ekintza aukeratuko du.
Adibidea: lauki ingurua
Adibide honetako ingurunean, agentea s_i egoeran hasiko da. Egoera honi hasierako egoera deritzogu. Agentea ezkerrera edo eskuinera mugitzearen artean aukeratu beharko du. Ezker muturreko egoerara iristen bada, ibilbidea amaitu egingo da eta agenteak -5eko saria jasoko du. Bestalde, eskuin muturreko egoerara iristen bada, gertakaria amaitu egingo da eta agenteak +5eko saria jasoko du. Agenteak -5 egoera saihesten eta +5 egoerarantz mugitzen ikasi behar du. Ikasten duen politika jarraituz agenteak beti +5eko egoeran amaitzen badu ibilbidea, politika ezin hobea (optimal policy) aurkitu duela esango dugu.
Problema ebazteko, Q-learning algoritmoak Bellmanen ekuazioa erabiltzen du. Ekuazio hau Q-balioak ikasteko erabiltzen da.
Bellmanen ekuazioa
Ekuazio honetarako azalpena honako hau da; s egoeraren eta a ekintzaren Q-balioak (Q(s,a)) ekintza hori jarraitzean lortutako r sariaren gehi s’ hurrengo egoeratik ahalik eta ekintzarik onena hartzearen Q balorearen berdina izan behar du, deskontu faktorearekin (discount factor) biderkatuta. Deskontu faktoreak γ ∈ (0, 1] balioen artean egon behar du, eta epe motzeko eta luzeko sariei zenbat pisu eman nahi diegun erabakitzeko erabiltzen da. Deskontu faktorea guk erabaki behar dugun hiperparametroa da.
Kodea. Adibidea ebazten.
Zuk zeuk exekuta dezakezu kodea urratsez urrats esteka honetan, edo jarrai ezazu irakurtzen kodea eta azalpena ikusteko exekutatu behar izan gabe.
Has gaitezen gure ingurunea definitzen. Sariak 0 dira egoera guztientzat, ezker eta eskuin muturretako egoerentzat izan ezik, hauek -5 eta +5eko sariak baitituzte, hurrenez hurren. Zerrenda bat definituko dugu, egoera bat bukaerakoa/terminala den ala ez zehazten duena. Eta azkenik, Q_values aldagaien lista sortuko dugu, non Q-baloreak gordeko ditugun egoera eta ekintza bikote guztietarako.
Orain, ε-jale politika erabiliz ekintza bat aukeratuko duen funtzio bat sortuko dugu.
Era berean, ingurunearen erregelak definituko dituen funtzio bat sortuko dugu. Agenteak hautatutako egoera eta ekintza pasatuko dizkiogu, eta r saria eta s’ hurrengo egoera itzuliko dizkigu.
Azkenik, hiperparametro batzuk aukeratu eta begizta nagusia exekutatuko dugu. Begiztan agentea Q-learning algoritmoaz eta Bellmanen ekuazioaz baliatuko da errefortzu bidez ikasteko.
Amaitzean, ikasitako Q-balioak behatuko ditugu, eta estatu bakoitzerako ekintzarik onena zein den ikusiko dugu. Agenteak politika ezin hobea aurkitu duela ikusiko dugu orduan, beti eskuinerantz mugitzea. Kontuan izan Q-balioak deskontatu egin direla deskontu-faktoreagatik, kasu honetan 0.9, eta muturreko egoerak egoera terminalak direnez, ez dela ekintzarik hartzen eta beraz haien Q-balioak ez direla aldatzen.
Q-values are: [[0.0, 0.0], [-5, 3.28], [2.95, 3.64], [3.28, 4.05], [3.64, 4.5], [4.05, 5], [0.0, 0.0]]
Best action for state 0 is left
Best action for state 1 is right
Best action for state 2 is right
Best action for state 3 is right
Best action for state 4 is right
Best action for state 5 is right
Best action for state 6 is left
Kode guztia ikusteko eta urratsez urrats exekutatzeko, esteka hau jarraitu.
Errefortzu bidezko ikaskuntzari sarrera serie osoa: