Sessione 2
2019 12 02
Ora inizieremo a considerare il fatto che non abbiamo a disposizione il modello, parliamo del Model-free prediction che rappresenta il vero Reinforcement learning. Nelle lezioni precedenti è stato fatta quella che viene chiamata "pianficazione" o "dynamic programming".
Iniziamo a parlare di predizione che ci fa capire quanto vale una policy prefissata.
Alcuni dei metodi che vedremo sono "Monte Carlo" e "Temporal difference".
Monte Carlo è un metodo che stima il valore degli stati facendo delle prove, però questo può essere oneroso perchè i passi possono essere tanti, in questi casi allora si fanno dei passi in avanti e si fa una differenza temporale tra il passo x e il passo x+y e si fa la dirrenza.
Entriamo quindi nel RL vero e proprio, verrà utilizzata la tecnica GPI che sta per "General Policy Iteration": prediction, improvemene, iteration.
Metodo Monte Carlo
E' un metodo che stima una quanititàquantità facendo dei campionamenti casuali. (per es. Il metodo MC si usa per approssimare pigrego (pi))
OBIETTIVO: stimare il valore dello stato S della policy pi. Lo stato "s" è il valore medio del ritorno Gt che ottengo partendo al tempo "t" dallo stato "s". Dallo stato faccio un epidio fino alla fine, ne faccio tanti e poi ottengo la probabilità di ottenere questi ritorni.
La legge dei grandi numeri ci aiuta a capire le probabilità dei ritorni.
VANTAGGI DEL MC:
1) non ci serve conoscere le probabilità, in quanto quando facciamo l'episodia la ricompensa ci arriva
2) il boostrapping, quando stimo il valore di uno stato utilizzando il valore degli stati successivi che MC non usa. (non mi è chiaro)
Vogliamo quindi stimare V_pi(s), cerchiamo in primis di capire cosa significa "stimare": è una regola che permette di approssimare la quantità che stiamo cercando. La regola è il "metodo Monte Carlo".
La regola può essere:
0) scelgo una policy (Es. quella uniforme)
1) faccio un episodio da "s" e memorizzo il ritorno.
2) faccio la media aritmetica (G(1)+G(2)+... G(N) )/N <- queste sono tutte variabili aleatorie
3) torno in "s"
4) ritono allo step 1
questa serie di passi è lo stimatore MC di V_pi(s)
Quindi G(k) è il ritorno dell'episodio kappesimo, dove questi ritorni (variabili aleatorie) devono essere identicamente distribuite e indipendenti ovvero che un epidosio non influenzi quelli successivi. (detto anche IID)
Di seguito il pseudo codice:
spiegone:
1) genero l'episodio come sequenza di stato, azione, reward e inizializzo l'episodio
2) faccio l'episodio
3) sommo le rewards al ritorno