Pastiprinājuma vadītas apmācīšanās problēmu risināšana ar neironu tīklu Jānis Zuters, 06.08.2012. Ratnieki Latvijas Universitāte Datorikas fakultāte Mākslīgā intelekta fonds
Pastiprinājuma vadīta apmācīšanās (Reinforcement learning, RL) Problēmu, nevis algoritmu kopums Stāvokļi -> darbības (states -> actions) Nav iepriekš zināms, kuras ir pareizās darbības Tā vietā pastiprinājums – atlīdzības (rewards) katrā solī
MDP (Markov Decision Process) –RL problēmas formulēšanai Darbības Actions Stāvokļi States Pārejas un atlīdzības Transitions and Rewards Politika – problēmas risinājums Policy – solution to a problem
Aģenta mijiedarbība ar vidi – RL pamatideja * A.M. Schaefer, 2008
RL problēmas risināšana Uzraudzītā apmācīšanās Supervised learning eksperts Problēma Problem Politika Policy Aģents Agent Pastiprinājuma vadīta apmācīšanās Reinforcement learning
RL sistēmas funkcijas Vākt paraugus (pēc noteiktas metodikas pārstaigāt stāvokļus vidē) Meklēt risinājumu (politiku) Exploring/exploiting dilemma
Vērtību funkcijas (value function) pieeja RL problēmu risināšanā 10 -10 Vērtību tabula Dynamic programming Sarsa Actor-critic methods
Neironu tīkli RL problēmas risināšanā 10 Neironu tīkls kā vērtību funkcija -10 Neironu tīkls kā pilna RL sistēma A.M. Schaefer, 2008
Vienslāņa neironu tīkls ar RL mehānismu input neurons up down left right
Kāpēc neironu tīkls kā RL problēmas risinātājs Vairāk atbilst RL būtībai Potenciāls plašākas problēmu klases aptveršanā, nav obligāti MDP Potenciāls kļūdu noturībā Sarežģītāks un grūtāk kontrolējams algoritms
RL izaicinājumi un nepieciešamie apmācīšanās mehānismi Vēlamo darbību stimulēšanas mehānisms (value function) Vai atlīdzība ir liela vai maza? (reinforcement comparison, reference rewards) Stāvokļu telpas pārstaigāšanas nejaušības komponente (exploring) Skatīšanās vairākus soļus uz priekšu
s r a 1 x x+ r+ right up down left w y x++
Tīkla apmācības algoritms Module train_network() λ1 – step-size parameter for input decay (0..1) α3 – step-size parameter for reinforcement cumulation (0..1) Begin Forall input values #i in x Do If x(i) > X1(i) Then X1(i) := x(i) Else X1(i) := X1(i) · λ1 Endif R(i) := R(i) + α3 · X1(i) · [r - R(i)] Endforall Forall neurons #j Do train_neuron(j) End
Viena neirona apmācīšana Module train_neuron(j) λ2 – step-size parameter for input cumulation (0..1) η – learning rate Begin Forall synapses #i of j Do If IsWinner(j) And s(i) > X2(j,i) Then X2(j,i) := s(i) Else X2(j,i) := X2(j,i) · λ2 Endif W(j,i) := W(j,i) + [r - R(i)] · X2(j,i) · η If W(j,i) > 1 Then W(j,i) := 1 Elseif W(j,i) < 0 Then W(j,i) := 0 Endforall End
Izveidotā algoritma spēja risināt RL problēmas Vēlamo darbību stimulēšanas mehānisms – algoritms strādā “proof of the concept” līmenī. Vai atlīdzība ir liela vai maza? Tiek lietots lokālais reference reward katram ievadam Stāvokļu telpas pārstaigāšanas nejaušības komponente – iebūvēta neirona darbināšanas algoritmā Skatīšanās vairākus soļus uz priekšu – prot skatīties vairākus soļus uz priekšu
Algoritma papildināšana