Apprendimento per rinforzo ..e algoritmi genetici
Definizione del problema: Non sempre è possibile modellare un problema di apprendimento come la scelta ottimale di una funzione di classificazione L’apprendimento per rinforzo modella (tipicamente) il caso di un agente che percepisce ed agisce in un certo ambiente, il cui obiettivo è di imparare a fare “la cosa ottimale” , o la cosa che lo avvicina di più al suo obiettivo, dato un certo stato dell’ambiente Robotica, web assistent, in generale , sistemi ad agenti
Modello
Modello (2)
Varianti Ricompensa ritardata: a volte la ricompensa non corrisponde a singole azioni, ma al raggiungimento di qualche obiettivo o sotto-obiettivo (es. per il robot calciatore: fare goal, o una “bella” azione) Esplorazione: l’apprendista può restare all’interno di ambienti (stati) noti, o può decidere di esplorare stati non noti Percezioni parziali: l’agente può non percepire l’intera realtà (ad esempio, degli ostacoli visivi non consentono di percepire interamente una scena)
Il compito di apprendimento Apprendere una politica XA tale che sia possibile accumulare la ricompensa maggiore nel tempo (secondo , per ogni stato X è data un’azione , e dunque lo stato successivo) Definiamo come il valore cumulativo acquisito tramite una politica arbitraria partendo da uno stato arbitrario Xt: 01 è una costante che determina il valore relativo di ricompense non immediate. Ad esempio, se una ricompensa (rt+i), è ricevuta dopo i passi dall’attuale stato, viene “scontata” di un fattore i. Il compito di apprendimento è definito dalla:
Es: Apprendimento passivo in ambiente noto. Un esempio: un robot deve muoversi in una scacchiera. Le azioni possibili sono n, s, e, o (nord,sud, est,ovest) Lo stato (1,1) è lo stato di partenza, (3,4) e (2,4) sono terminali con ricompense +1 e -1. Lo stato (2,2) è inaccessibile. In ogni stato le probabilità di transizione sono uguali. Le percezioni coincidono con l'identificazione dello stato in cui il robot si trova.
Q-learning Ogni casella rappresenta uno stato, ogni mossa è un’azione. La funzione r(X,a) fornisce una ricompensa solo negli stati in cui essa è prevista, e zero in tutti gli altri stati. Indichiamo con (X,a) lo stato in cui il sistema transita se parte da X e esegue l’azione a Dove V* è un’abbreviazione per V* Sfortunatamente, questo ha senso solo se il sistema conosce la funzione r e la funzione di transizione (X,a) !!
Q-learning (2) L’input del sistema sono sequenze di transizioni, dette episodi. Un episodio inizia in uno stato scelto a caso, e termina quando l’agente raggiunge, dopo una serie di azioni, uno stato obiettivo. Definiamo la quantità: possiamo perciò riscrivere la precedente equazione: Il sistema deve dunque stimare le quantità Q, e indicheremo con le stime di Q. La precedente definizione ricorsiva di Q consente di stimare le mediante approssimazioni iterative. Inizialmente i valori di stima possono essere riempiti casualmente
Q-learning (3) Per ogni (X,a) inizializza a zero (o a un valore random) Osserva lo stato corrente X Esegui: Seleziona un’azione possibile a in X ed eseguila Ricevi una ricompensa r Osserva il nuovo stato X’ cui si arriva eseguendo a Aggiorna le stime come segue: XX’
(Q((3,3),aright) nell’esempio) Q-learning (4) Esempio (spostamenti di un agente in una griglia) Il sistema inizialmente pone a zero tutte le stime di . In tal modo, non potrà fare cambiamenti nella tabella finchè, eventualmente, non raggiunge uno stato che prevede una ricompensa (primo episodio) (1,1)>(2,1)>(3,1)>(3,2)>(3,3)>(3,4) Questo ha l’effetto di far aggiornare il valore di per la sola transizione che porta allo stato obiettivo, ad esempio Xk (3,3 nell’esempio). (Q((3,3),aright) nell’esempio) Nel successivo episodio, se l’agente passa per Xk, il valore non nullo di consentirà di aggiornare il valore di per qualche transizione due celle prima della cella obiettivo (cioè 3,4), e, se il numero di episodi è sufficiente, l’informazione si propaga all’indietro per tutti gli stati.
Esempio di aggiornamento Q(s,a) in t Q(s,a) in t+1 81 100 66 R 90
Q/azione A1 A2 ….. Q(S1,Ai) Q(S2,Ai) Q(S3,Ai) Le celle i,j sono inizialmente a zero tranne per le transizioni a ricompensa non nulla. Appena si raggiunge uno di questi stati, si modifica il Q della cella adiacente
Q/azione A1=right A2=left A3=down Q(S1,Ai) - Q(S2,Ai) 10 Q(S3,Ai) 9 R(S3,right)=9 R(S2,down)=10 S4 bloccante S2 S4 Q/azione A1=right A2=left A3=down Q(S1,Ai) - Q(S2,Ai) 10 Q(S3,Ai) 9 Q(S4,Ai)
Q/azione A1=right A2=left A3=down Q(S1,Ai) - 0,9x9 Q(S2,Ai) 10 10 Q(S3,Ai) 9 0,9x10 0,9x10 Eccetera..
Q-learning: converge? Si dimostra che l’algoritmo converge se: primo, il sistema può essere modellato come un processo di Markov (le probabilità di transizione fra stati devono essere note a priori) Secondo, i valori di ricompensa sono limitati , dove c è una costante Terzo (!!) l’agente deve selezionare le azioni in modo tale che ogni coppia (X,a) sia visitata un numero infinito di volte In pratica, si dimostra che l’algoritmo funziona in condizioni meno restrittive!
Algoritmi genetici
Algoritmi genetici (2)
Algoritmo
Esempio crossover
Algoritmo (cont)
Cosa “si fa evolvere” con un algoritmo genetico? Diverse architetture G di rete neurale. Ogni architettura (definita da un grafo ) rappresenta un’ipotesi e può essere rappresentata (codificata) mediante una stringa binaria Regole espresse mediante forme normali congiuntive La rappresentazione binaria è: Praticamente qualsiasi classe di ipotesi
Problemi Tempi di apprendimento molto lunghi (necessario hw “ad hoc) Crowding: alcuni individui tendono a prendere il sopravvento, riducendo drasticamente la diversità della popolazione (soluzione: creare perturbazioni o alterazioni della funzione di selezione, una sorta di “roulette”)
Evoluzione in reale e simulata (predatore e preda) [Floreano and Nolfi, 1998] Evoluzione in Reale (Kephera Robots) Evoluzione in Simulazione + Test in Reale [Nolfi, Floreano, Miglino, Mondada 1994] La valutazione di un modello di robot evolutivo può essere fatta “nel reale” o simulata.
Evoluzione in simulazione Ciascun sensore e motore può comportarsi in modo diverso a causa di piccole differenze a livello elettronico o meccanico 4th IF sensor 8th IF sensor Nel caso di simulazione vari fattori vanno tenuti in conto, per tenere conto di aspetti fisici, quali la diversità di parti meccaniche e di alimentazione (gli esperimenti durano molto a lungo e l’alimentazione di alcuni robot non dura a sufficienza, dunque vanno previste ricariche automatiche. I sensori producono valori imprecisi e i comandi inviati a motori hanno effetti incerti. Le caratteristiche del robot e dell’ambiente devono essere riprodotte fedelmente nella simulazione
Esempio: discriminare oggetti explorare evitare avvicinarsi discriminare sensori motori Distinguere muri da cilindri Distinguere cilindri grandi da piccoli Una rete per ogni “abilità” Tuttavia, cattivi risultati In questo esempio, il fenotipo del robot è implementato mediante reti neurali diverse, ciascuna specializzata in un comportamento (similmente alle teorie comportamentali). Se si addestra una rete neurale a produrre 0 in caso di muro e 1 in caso di cilindro, la rete in generale funziona molto male. [Nolfi, 1996,1999]
Discriminare fra oggetti (2) Invece, facendo evolvere un’unica rete neurale che include i sei sensori e due motori (che determinano la velocità delle due ruote) le cose vanno meglio. Gli individui evoluti non si fermano davanti al target (cilindro grande) ma continuano a ruotargli attorno per un piccolo tragitto, avanti e indietro. La strategia appresa è “girare attorno e misurare l’angolo di rotazione” Le cose funzionano meglio senza decomposizione! [Nolfi, 1996]
Approfondimenti su evolutionary computing The evolutionary computing homepage: http://gral.ip.rm.cnr.it/evorobot/ Stefano Nolfi home page:http://gral.ip.rm.cnr.it/nolfi/