APPRENDIMENTO MIMETICO Reinforcement Learning · Mappe neurali. Apprendimento per rinforzo...

64
APPRENDIMENTO MIMETICO Reinforcement Learning (Apprendimento per rinforzo) (I parte)

Transcript of APPRENDIMENTO MIMETICO Reinforcement Learning · Mappe neurali. Apprendimento per rinforzo...

Page 1: APPRENDIMENTO MIMETICO Reinforcement Learning · Mappe neurali. Apprendimento per rinforzo (reinforcement learning, ... dà alcuna informazione su come aggiornare il comportamento

APPRENDIMENTO MIMETICOReinforcement Learning(Apprendimento per rinforzo)

(I parte)

Page 2: APPRENDIMENTO MIMETICO Reinforcement Learning · Mappe neurali. Apprendimento per rinforzo (reinforcement learning, ... dà alcuna informazione su come aggiornare il comportamento

ovvero

Page 3: APPRENDIMENTO MIMETICO Reinforcement Learning · Mappe neurali. Apprendimento per rinforzo (reinforcement learning, ... dà alcuna informazione su come aggiornare il comportamento

ma anche

Page 4: APPRENDIMENTO MIMETICO Reinforcement Learning · Mappe neurali. Apprendimento per rinforzo (reinforcement learning, ... dà alcuna informazione su come aggiornare il comportamento

Bibliografia• Richard S. Sutton, Andrew G. Barto, “Reinforcement

Learning: An Introduction”, A Bradford Book, The MIT Press, Cambridge, Massachusetts, 1998.

• Tom M. Mitchell, “Machine Learning”, McGraw-Hill International Edition, Singapore, 1997.

• Stuart J. Russel, Peter Norvig, “IntelligenzaArtificiale: un approccio moderno”, Pearson Education Italia, Milano, 2005.

Page 5: APPRENDIMENTO MIMETICO Reinforcement Learning · Mappe neurali. Apprendimento per rinforzo (reinforcement learning, ... dà alcuna informazione su come aggiornare il comportamento

Crediti:• Corso di Laboratorio di Sistemi Intelligenti Applicati (AIS-Lab)

Prof. Alberto Borghese Dipartimento di Scienze dell’InformazioneUniversità degli Studi di Milano

• Corso di Ingegneria della Conoscenza e Sistemi EspertiProf. Pier Luca LanziDipartimento di Elettronica e InformazionePolitecnico di Milano

Page 6: APPRENDIMENTO MIMETICO Reinforcement Learning · Mappe neurali. Apprendimento per rinforzo (reinforcement learning, ... dà alcuna informazione su come aggiornare il comportamento

Why agents are important?Agente (software): entità software che svolge servizi per conto di un altro programma, solitamente in modo automatico ed invisibile. Tali software vengono anche detti agenti intelligenti.

“They are seen as a natural metaphor for conceptualising and building a wide range of complex computer system (the world contains many passive objects, but it also contains very many active components as well);

They cut across a wide range of different technology and application areas, including telecoms, human-computer interfaces, distributed systems, WEB and so on;

They are seen as a natural development in the search for ever-more powerful abstraction with which to build computer system”

Page 7: APPRENDIMENTO MIMETICO Reinforcement Learning · Mappe neurali. Apprendimento per rinforzo (reinforcement learning, ... dà alcuna informazione su come aggiornare il comportamento

Agente

- Può scegliere un’azione sull’ambiente tra un insieme continuo o discreto.

- L’azione dipende dalla situazione. La situazione è riassunta nello stato del sistema.

- L’agente monitora continuamente l’ambiente (input) e modifica continuamente lo stato.

- La scelta dell’azione è non banale e richiede un certo grado di “intelligenza”.

- L’agente ha una memoria “intelligente”.

Page 8: APPRENDIMENTO MIMETICO Reinforcement Learning · Mappe neurali. Apprendimento per rinforzo (reinforcement learning, ... dà alcuna informazione su come aggiornare il comportamento

Schematic diagram of an agent

Agent

STATE What the worldis like now(internal

representation)

What action Ishould do now

Condition-action rule

(vocabulary)

Sensors

Actuators

Environment

x(t+1) = g(x(t), u(t))

y(t) = f(x(t))u, input; x, stato; y, uscita

xt+1 ut

yt

Page 9: APPRENDIMENTO MIMETICO Reinforcement Learning · Mappe neurali. Apprendimento per rinforzo (reinforcement learning, ... dà alcuna informazione su come aggiornare il comportamento

L’agente

• Inizialmente l’attenzione era concentrata sulla progettazione dei sistemi di “controllo”. Valutazione, sintesi…

• L’intelligenza artificiale e la “computationalintelligence” hanno consentito di spostare l’attenzione sull’apprendimento delle strategie di controllo e piùin generale di comportamento.

• Macchine dotate di meccanismi (algoritmi, SW) per apprendere.

Page 10: APPRENDIMENTO MIMETICO Reinforcement Learning · Mappe neurali. Apprendimento per rinforzo (reinforcement learning, ... dà alcuna informazione su come aggiornare il comportamento

I vari tipi di apprendimentox(t+1) = g(x(t), u(t)) Ambientey(t) = f(x(t) Agente

Supervisionato (learning with a teacher). Viene specificato, per ogni pattern di input, il pattern desiderato di output.

Non-supervisionato (learning without a teacher). Estrazione di similitudini statistiche tra pattern di input. Clustering. Mappe neurali.

Apprendimento per rinforzo (reinforcement learning, learning with a critic). L’ambiente fornisce un’informazione puntuale, di tipo qualitativo, ad esempio success or fail.

Page 11: APPRENDIMENTO MIMETICO Reinforcement Learning · Mappe neurali. Apprendimento per rinforzo (reinforcement learning, ... dà alcuna informazione su come aggiornare il comportamento

Learning with a teacher

Page 12: APPRENDIMENTO MIMETICO Reinforcement Learning · Mappe neurali. Apprendimento per rinforzo (reinforcement learning, ... dà alcuna informazione su come aggiornare il comportamento

Reinforcement learningNell’apprendimento supervisionato esiste un “teacher” che dice al sistema quale è l’uscita corretta (learning with a teacher). Non sempre è possibile.

Spesso si ha a disposizione solamente un’informazione qualitativa (a volte binaria, giusto/sbagliato, successo/fallimento) puntuale.

L’informazione disponibile si chiama segnale di rinforzo. Non dà alcuna informazione su come aggiornare il comportamento dell’agente (per es. i pesi). Non è possibile definire una funzione costo o un gradiente.

Obbiettivo: creare degli agenti “intelligenti” che abbiano una “machinery” per apprendere dalla loro esperienza.

Page 13: APPRENDIMENTO MIMETICO Reinforcement Learning · Mappe neurali. Apprendimento per rinforzo (reinforcement learning, ... dà alcuna informazione su come aggiornare il comportamento

Reinforcement learning: caratteristiche

• Apprendimento mediante interazione con l’ambiente. Un agente isolato non apprende.

• L’apprendimento è funzione del raggiungimento di uno o più obiettivi.

• Non è necessariamente prevista una ricompensa ad ogni istante di tempo.

• Le azioni vengono valutate mediante la ricompensa a lungo termine ad esse associata (delayed reward). Il meccanismo di ricerca delle azioni migliori è imparentato con la ricerca euristica: trial-and-error.

• L’agente sente l’input, modifica lo stato e genera un’azione che massimizza la ricompensa a lungo termine.

Page 14: APPRENDIMENTO MIMETICO Reinforcement Learning · Mappe neurali. Apprendimento per rinforzo (reinforcement learning, ... dà alcuna informazione su come aggiornare il comportamento

Exploration vs ExploitationEsplorazione (exploration) dello spazio delle azioni per scoprire le azioni migliori. Un agente che esplora solamente raramente troverà una buona soluzione.

Le azioni migliori vengono scelte ripetutamente (exploitation, sfruttamento) perché garantiscono ricompensa (reward). Se un agente non esplora nuove soluzioni potrebbe venire surclassato da nuovi agenti piùdinamici.

Occorre non interrompere l’esplorazione.

Occorre un approccio statistico per valutare le bontà delle azioni.

Exploration e exploitation vanno bilanciate. Come?

Page 15: APPRENDIMENTO MIMETICO Reinforcement Learning · Mappe neurali. Apprendimento per rinforzo (reinforcement learning, ... dà alcuna informazione su come aggiornare il comportamento

Dove agisce un agente?• L’agente ha un comportamento goal-directed ma

agisce in un ambiente incerto non noto a priori o parzialmente noto.

• Esempio: planning del movimento di un robot.

• Un agente impara interagendo con l’ambiente. Planning può essere sviluppato mentre si impara a conoscere l’ambiente (mediante le misure operate dall’agente stesso). La strategia è vicina al trial-and-error.

Page 16: APPRENDIMENTO MIMETICO Reinforcement Learning · Mappe neurali. Apprendimento per rinforzo (reinforcement learning, ... dà alcuna informazione su come aggiornare il comportamento

L’ambienteModel of environment. È uno sviluppo relativamente recente. Da valutazione implicita dello svolgersi delle azioni future (trial-and-error) a valutazione esplicita mediante modello dell’ambiente della sequenza di azioni e stati futuri (planning) = dal sub-simbolico al simbolico; emerging intelligence.

Incorporazione di AI:- Planning (pianificazione delle azioni)- Viene rinforzato il modulo di pianificazione dell’agente.

Incorporazione della conoscenza dell’ambiente:- Modellazione dell’ambiente (non noto o parzialmente noto).

Page 17: APPRENDIMENTO MIMETICO Reinforcement Learning · Mappe neurali. Apprendimento per rinforzo (reinforcement learning, ... dà alcuna informazione su come aggiornare il comportamento

Relazione con l’AI• Gli agenti hanno dei goal da soddisfare. Approccio derivato

dall’AI.

• Nell’apprendimento con rinforzo vengono utilizzati strumenti che derivano da aree diverse dall’AI:

Ricerca operativaTeoria del controlloStatistica

• L’agente impara facendo. Deve selezionare i comportamenti che ripetutamente risultano favorevoli a lungo termine.

Page 18: APPRENDIMENTO MIMETICO Reinforcement Learning · Mappe neurali. Apprendimento per rinforzo (reinforcement learning, ... dà alcuna informazione su come aggiornare il comportamento

EsempiUn giocatore di scacchi. Per ogni mossa ha informazione sulle configurazioni di pezzi che può creare e sulle possibili contro-mosse dell’avversario.

Una piccola di gazzella in 6 ore impara ad alzarsi e a correre a40 km/h.

Come fa un robot veramente autonomo ad imparare a muoversi in una stanza per uscirne?

Come impostare i parametri di una raffineria (pressione petrolio, portata, …) in tempo reale, in modo da ottenere il massimo rendimento o la massima qualità?

Page 19: APPRENDIMENTO MIMETICO Reinforcement Learning · Mappe neurali. Apprendimento per rinforzo (reinforcement learning, ... dà alcuna informazione su come aggiornare il comportamento

Caratteristiche degli esempiParole chiavi:• Interazione con l’ambiente. L’agente impara dalla propria esperienza.• Obiettivo dell’agente• Incertezza o conoscenza parziale dell’ambiente.

Osservazioni:• Le azioni modificano lo stato (la situazione), cambiano le possibilità di

scelta in futuro (delayed reward).• L’effetto di un’azione non si può prevedere completamente.• L’agente ha a disposizione una valutazione globale del suo comportamento.

Deve sfruttare questa informazione per migliorare le sue scelte. Le scelte migliorano con l’esperienza.

• I problemi possono avere orizzonte temporale finito o infinito.

Page 20: APPRENDIMENTO MIMETICO Reinforcement Learning · Mappe neurali. Apprendimento per rinforzo (reinforcement learning, ... dà alcuna informazione su come aggiornare il comportamento

I due tipi di rinforzoL’agente deve scoprire quale azione (policy) fornisca la ricompensa massima provando le varie azioni (trial-and-error) sull’ambiente.

“Learning is an adaptive change of behavior and that is indeed the reason of its existence in animals and man” (K. Lorenz, 1977).

Rinforzo puntuale istante per istante, azione per azione (condizionamento classico).

Rinforzo puntuale “una-tantum” (condizionamento operante), viene rinforzata una catena di azioni, un comportamento.

Page 21: APPRENDIMENTO MIMETICO Reinforcement Learning · Mappe neurali. Apprendimento per rinforzo (reinforcement learning, ... dà alcuna informazione su come aggiornare il comportamento

Il condizionamento classicoL’agente deve imparare una (o più) trasformazione tra input e output. Queste trasformazioni forniscono un comportamento che l’ambiente premia.

Il segnale di rinforzo è sempre lo stesso per ogni coppia input-output.

Esempio: risposte riflesse Pavloviane. Campanello (stimolo condizionante) prelude al cibo. Questo induce una risposta (salivazione). La risposta riflessa ad uno stimolo viene evocatada uno stimolo condizionante.

Stimolo-Risposta. Lo stimolo condizionante (campanello = input) induce la salivazione (uscita) in risposta al campanello.

Page 22: APPRENDIMENTO MIMETICO Reinforcement Learning · Mappe neurali. Apprendimento per rinforzo (reinforcement learning, ... dà alcuna informazione su come aggiornare il comportamento

Condizionamento operante

Reinfoncement learning (operante).

Interessa un comportamento. Una sequenza di input-output che può essere modificata agendo sui parametri che definiscono il comportamentodell’agente. Il condizionamento arriva in un certo istante di tempo (spesso una-tantum) e deve valutare tutta la sequenza temporale di azioni, anche quelle precedenti nel tempo.

Environment

Input

OutputComportamenti

=

Sequenza di azioni

Page 23: APPRENDIMENTO MIMETICO Reinforcement Learning · Mappe neurali. Apprendimento per rinforzo (reinforcement learning, ... dà alcuna informazione su come aggiornare il comportamento

Gli attori del RLPolicy. Descrive l’azione scelta dall’agente: mapping tra stato (input dall’ambiente) e azioni. Funzione di controllo. Le policy possono avere una componente stocastica. Viene utilizzato un modello adeguato del comportamento dell’agente (p.e. tabella, funzione continua parametrica, ecc.).

Reward function. Ricompensa immediata. Associata all’azione intrapresa in un certo stato. Può essere data al raggiungimento di un goal (esempio: successo/fallimento). È uno scalare. Rinforzo primario.

Value function. “Cost-to-go”. Ricompensa a lungo termine Somma dei reward: costi associati alle azioni scelte istante per istante + costo associato allo stato finale. Orizzonte temporale ampio. Rinforzo secondario.

Ambiente. Può essere non noto o parzialmente noto. L’agente deve costruirsi una rappresentazione dell’ambiente.

• Quale delle due è più difficile da ottenere?• L’agente agisce per massimizzare la funzione Value o Reward?

Page 24: APPRENDIMENTO MIMETICO Reinforcement Learning · Mappe neurali. Apprendimento per rinforzo (reinforcement learning, ... dà alcuna informazione su come aggiornare il comportamento

Proprietà del rinforzoL’ambiente o l’interazione può essere complessa.

Il rinforzo può avvenire solo dopo una più o meno lunga sequenza di azioni(delayed reward).

Esempio: agente = giocatore di scacchi.ambiente = avversario.

Problemi collegati:temporal credit assignmentstructural credit assignment.

L’apprendimento non è più da esempi, ma dall’osservazione del proprio comportamento nell’ambiente.

Page 25: APPRENDIMENTO MIMETICO Reinforcement Learning · Mappe neurali. Apprendimento per rinforzo (reinforcement learning, ... dà alcuna informazione su come aggiornare il comportamento

Temporal e structuralcredit assignment

• Multi-agent systems have the structural creditassignment problem of determining the contributions of a particular agent to a common task.

• Instead, time-extended single-agent systemshave the temporal credit assignment problem ofdetermining the contribution of a particularaction to the quality of the full sequence ofactions.(da A.K. Agogino, K. Tumer, “Unifying Temporal and Structural CreditAssignment Problems”)

Page 26: APPRENDIMENTO MIMETICO Reinforcement Learning · Mappe neurali. Apprendimento per rinforzo (reinforcement learning, ... dà alcuna informazione su come aggiornare il comportamento

Riassunto• Reinforcement learning. L’agente viene modificato,

rinforzando le azioni che sono risultate buone a lungo termine. È quindi una classe di algoritmi iterativi.

• Self-discovery of a successful strategy (it does not need to be optimal!). La strategia (di movimento, di gioco) non è data a-priori ma viene appresa attraverso trial-and-error.

• Credit assignment (temporal and structural).

• Come possiamo procedere in modo efficiente nello scoprire una strategia di successo? Cosa vuol dire modificare l’agente?

Page 27: APPRENDIMENTO MIMETICO Reinforcement Learning · Mappe neurali. Apprendimento per rinforzo (reinforcement learning, ... dà alcuna informazione su come aggiornare il comportamento

Un esempio: il gioco del tris1) We can use classical game theory

solution like minmax. This can work for the optimal opponent, not for “our”actual opponent.

2) We can use dynamic programming optimization, but we need a model of the opponent.

3) We can try a policy and see what happens for many games (evolutionary style, exhaustive search).

X

X

X

X

O

O

O

Page 28: APPRENDIMENTO MIMETICO Reinforcement Learning · Mappe neurali. Apprendimento per rinforzo (reinforcement learning, ... dà alcuna informazione su come aggiornare il comportamento

L’approccio classico (minimax)

Più → X Meno → O

Si usa una funzione di valutazione e(p)definita come :

1.se p non è una posizione vincente, e(p) = (numero delle righe, colonne e diagonali complete ancora aperte a Più) -(numero delle righe, colonne e diagonali complete ancora aperte a Meno);

Intelligenza Artificiale - Problem Solving 4 28

Page 29: APPRENDIMENTO MIMETICO Reinforcement Learning · Mappe neurali. Apprendimento per rinforzo (reinforcement learning, ... dà alcuna informazione su come aggiornare il comportamento

2. se p è una posizione vincente per Più,e(p) = ∞ (∞ denota un numero positivo molto grande);

3. se p è una posizione vincente per Meno,e(p) = -∞

Intelligenza Artificiale - Problem Solving 4 29

Page 30: APPRENDIMENTO MIMETICO Reinforcement Learning · Mappe neurali. Apprendimento per rinforzo (reinforcement learning, ... dà alcuna informazione su come aggiornare il comportamento

Così, se p è

abbiamo e(p) = 6 - 4 = 2. Nella generazione delle posizioni sfrutteremo le simmetrie; ovvero,

saranno considerate identiche (nella fase iniziale, il fattore di ramificazione del filetto è contenuto dalle simmetrie; nella fase finale, dal piccolo numero di spazi liberi disponibili). Intelligenza Artificiale - Problem Solving 4 30

Page 31: APPRENDIMENTO MIMETICO Reinforcement Learning · Mappe neurali. Apprendimento per rinforzo (reinforcement learning, ... dà alcuna informazione su come aggiornare il comportamento

Profondità di ricerca: livello 2

Intelligenza Artificiale - Problem Solving 4 31

Page 32: APPRENDIMENTO MIMETICO Reinforcement Learning · Mappe neurali. Apprendimento per rinforzo (reinforcement learning, ... dà alcuna informazione su come aggiornare il comportamento

Intelligenza Artificiale - Problem Solving 4 32

Page 33: APPRENDIMENTO MIMETICO Reinforcement Learning · Mappe neurali. Apprendimento per rinforzo (reinforcement learning, ... dà alcuna informazione su come aggiornare il comportamento

Come impostare il problema mediante RL?

State – configuration of ‘X’ and ‘O’.

(Assuming we always play ‘X’)

Value (of the state) – probability of winning associated to that state.

Which is the probability of a state in which we have 3 ‘X’ in a row (or column or diagonal)?Which is the probability of a state in which we have 3 ‘O’ in a row (or column or diagonal)?

We set all the other states to 0.5

Page 34: APPRENDIMENTO MIMETICO Reinforcement Learning · Mappe neurali. Apprendimento per rinforzo (reinforcement learning, ... dà alcuna informazione su come aggiornare il comportamento

Una sequenza di mosse nel tris

Page 35: APPRENDIMENTO MIMETICO Reinforcement Learning · Mappe neurali. Apprendimento per rinforzo (reinforcement learning, ... dà alcuna informazione su come aggiornare il comportamento

Come decidere la mossa?Supponiamo di essere in una configurazione non terminale.

Per ogni mossa valida, possiamo valutare il valore della nuova configurazione che si verrebbe a trovare. Come?

Possiamo occasionalmente scegliere delle mosse esploratorie. Quando non ha senso scegliere delle mosse esploratorie?

Dobbiamo perciò capire qual è il valore delle diverse configurazioni della scacchiera.

Page 36: APPRENDIMENTO MIMETICO Reinforcement Learning · Mappe neurali. Apprendimento per rinforzo (reinforcement learning, ... dà alcuna informazione su come aggiornare il comportamento

Come stimare il valore di ogni configurazione?

V(s(t)) ← V(s(t)) + α[V(s(t+1) – V(s(t)]

Tendo ad avvicinare il valore della mia configurazione al valore della configurazione successiva.

Esempio di temporal difference learning.

Diminuendo α con il numero di partite, la policy converge alla policyottima per un avversario fissato (cioè che utilizzi sempre la stessa strategia, ovverosia la stessa distribuzione statistica di mosse).

Diminuendo α con il numero di partite, ma tenendolo > 0, la policyconverge alla policy ottima anche per un avversario che cambi molto lentamente la sua strategia.

Page 37: APPRENDIMENTO MIMETICO Reinforcement Learning · Mappe neurali. Apprendimento per rinforzo (reinforcement learning, ... dà alcuna informazione su come aggiornare il comportamento

Esempio

X1 – scelta perdente → dopo la mossa dell’avversario ho uno stato con value function = 0

X2 – scelta neutrale → dopo la mossa dell’avversario ho uno stato con value function intermedia (pareggio).

X3 – scelta vincente → dopo la mossa dell’avversario ho uno stato con value function = 1

Cambio la policy e rivaluto la Value function

O X

O X

O

X3

X

O X

X2X1

Page 38: APPRENDIMENTO MIMETICO Reinforcement Learning · Mappe neurali. Apprendimento per rinforzo (reinforcement learning, ... dà alcuna informazione su come aggiornare il comportamento

Cosa fa l’agente?

Ciclo dell’agente (le tre fasi sono sequenziali):

1) Implemento una policy

2) Aggiorno la Valuefunction

3) Aggiorno la policy.

X

X

X

X

O

O

O

Page 39: APPRENDIMENTO MIMETICO Reinforcement Learning · Mappe neurali. Apprendimento per rinforzo (reinforcement learning, ... dà alcuna informazione su come aggiornare il comportamento

Riflessioni su RL ed il gioco del trisSupponete che l’agente dotato di RL giochi, invece che con un avversario, contro se stesso. Cosa pensate che succeda? Secondo voi imparerebbe una diversa strategia di gioco?

Molte posizioni del tris sembrano diverse ma sono in realtà la stessa per effetto delle simmetrie. Come si può modificare l’algoritmo di RL (definizione dello stato) per sfruttare le simmetrie? Come si può migliorare il meccanismo di approfondimento?

Supponiamo che l’avversario non sfrutti le simmetrie. In questo caso noi possiamo sfruttarle? È vero che configurazioni della scacchiera equivalenti per simmetria devono avere la stessa funzione valore.

Potete pensare a modi per migliorare il gioco dell’agente? Potete pensare a metodi migliori (più veloci, più robusti …) perché un agente impari a giocare a tris?

Page 40: APPRENDIMENTO MIMETICO Reinforcement Learning · Mappe neurali. Apprendimento per rinforzo (reinforcement learning, ... dà alcuna informazione su come aggiornare il comportamento

Evaluative FeedbackLa più importante caratteristica che distingue il RL da altri tipi di learning è che usa l’informazione di addestramento per valutare la bontà delle azioni prese piuttosto che istruirlodando le azioni corrette.

L’evaluative feedback puro indica quanto è buona l’azione intrapresa, ma non se è la peggiore o la migliore delle azioni possibili (è il metodo di base dell’ottimizzazione, compresi i metodi evolutivi).

L’instructive feedback puro, d’altro canto, indica la corretta azione da prendere, indipendentemente dall’azione effettivamente presa (è la base dell’apprendimento supervisionato, compresi la classificazione di pattern, le reti neurali, l’identificazione dei sistemi).

Il primo dipende completamente dall’azione presa, il secondo è indipendente dall’azione presa.

Consideriamo gli aspetti valutativi del RL in un contesto (setting) semplice, quello in cui di deve apprendere ad agire in una sola situazione (nonassociative setting), il problema detto del “n-armed bandit”.

Page 41: APPRENDIMENTO MIMETICO Reinforcement Learning · Mappe neurali. Apprendimento per rinforzo (reinforcement learning, ... dà alcuna informazione su come aggiornare il comportamento

“1-Armed Bandit”

Page 42: APPRENDIMENTO MIMETICO Reinforcement Learning · Mappe neurali. Apprendimento per rinforzo (reinforcement learning, ... dà alcuna informazione su come aggiornare il comportamento

“n-Armed Bandit Problem”

Page 43: APPRENDIMENTO MIMETICO Reinforcement Learning · Mappe neurali. Apprendimento per rinforzo (reinforcement learning, ... dà alcuna informazione su come aggiornare il comportamento

“n-Armed Bandit”

Page 44: APPRENDIMENTO MIMETICO Reinforcement Learning · Mappe neurali. Apprendimento per rinforzo (reinforcement learning, ... dà alcuna informazione su come aggiornare il comportamento

Il problema del “n-Armed Bandit”

Situazione iniziale costante.Scelta tra n azioni.La richiesta di scegliere viene ripetuta più volte nel tempo.La ricompensa è stocastica (e.g. slot machine).Obiettivo: viene massimizzata la ricompensa a lungo termine.

Soluzione possibile: selezionare l’azione che fornisce la massima ricompensa a lungo termine.

Come?

Page 45: APPRENDIMENTO MIMETICO Reinforcement Learning · Mappe neurali. Apprendimento per rinforzo (reinforcement learning, ... dà alcuna informazione su come aggiornare il comportamento

Slot machine stocasticaIl reward della slot machine è completamente definito dalla densità di probabilità associata alla macchina.

Si suppone la densità di probabilità costante nel tempo.

Per semplicità si suppone che la densità di probabilità sia descrivibile da una funzione analitica, ad esempio una Gaussiana. In questo caso la densità di probabilità è definita dai parametri della gaussiana: media e deviazione standard.

Che cosa rappresenta la densità di probabilità?

Page 46: APPRENDIMENTO MIMETICO Reinforcement Learning · Mappe neurali. Apprendimento per rinforzo (reinforcement learning, ... dà alcuna informazione su come aggiornare il comportamento

Come massimizzare la ricompensaConsento all’agente di avere memoria.

Memorizzo il valore associato alle diverse azioni.

Posso ad un certo punto scegliere SEMPRE l’azione che mi ha dato la RICOMPENSA MAGGIORE.

L’azione migliore è detta GREEDY ACTION (Greedy = Goloso).

EXPLOITING (sfruttamento) KNOWLEDGE.

Perché dovemmo scegliere un’azione che non appare la migliore (NON GREEDY)?

Page 47: APPRENDIMENTO MIMETICO Reinforcement Learning · Mappe neurali. Apprendimento per rinforzo (reinforcement learning, ... dà alcuna informazione su come aggiornare il comportamento

ExplorationPerché esploriamo soluzioni diverse.

La ricompensa non è deterministica. Potremmo ottenere di piùcon altre azioni.

Quello che conta non è la ricompensa istantanea ma la somma delle ricompense ottenute.

Occorre quindi mantenere una predisposizione ad esplorare azioni diverse.

Il bilanciamento di “exploration” e di “exploitation” è un compito complesso.

Page 48: APPRENDIMENTO MIMETICO Reinforcement Learning · Mappe neurali. Apprendimento per rinforzo (reinforcement learning, ... dà alcuna informazione su come aggiornare il comportamento

La Value Function e la scelta delle azioni

Posso selezionare n-azioni: a = a1….an.

Ciascuna di queste azioni ha un suo valore: Q*(ak) = long-time reward. Il suo valore stimato al t-esimo tiro (play) sia Qt(ak) (VALUE).

Si rammenti che il valore vero di un’azione è il reward medio ricevuto quando quell’azione è scelta.

Una via naturale per stimare questo valore è quella di calcolare la media dei reward effettivamente ricevuti quando l’azione è stata scelta.

In altri termini, se al t-esimo gioco l’azione a è stata scelta ka volte prima di t, ottenendo i reward r1, r2,…, rka, allora il suo valore è stimato essere

a

kkt k

rrraQ a

+++=

...)( 21

Page 49: APPRENDIMENTO MIMETICO Reinforcement Learning · Mappe neurali. Apprendimento per rinforzo (reinforcement learning, ... dà alcuna informazione su come aggiornare il comportamento

Caratteristiche della Value FunctionPer ka = 0, si pone Qt(ak) ad un valore di default, Q0(ak) = 0 (nessuna stima disponibile).Per ka → ∞, Qt(ak) → Q*(ak) (per la legge dei grandi numeri).La Value function è calcolata come media (sample-average method).

Prima possibilità di selezione: l’azione che dà all’istante t la massima VALUE FUNCTION stimata:k: Qt(ak) > Qt(aj) ∀j ≠ k a*: Qt(a*) =

Così viene EXPLOITED la conoscenza accumulata, è una politica GREEDY.

Non vengono esplorate soluzioni alternativa.

Come si può formalizzare un’alternativa?

{ })(max aQta

Page 50: APPRENDIMENTO MIMETICO Reinforcement Learning · Mappe neurali. Apprendimento per rinforzo (reinforcement learning, ... dà alcuna informazione su come aggiornare il comportamento

Exploitation and ExplorationSuppongo che con probabilità ε venga scelta un’azione diversa.

Questa azione viene scelta con probabilità uniforme tra le n possibili azioni a disposizione (ε-Greedy method).

Qt(ak) → Q*(ak) per t → ∞

Near-greedy action selection. Come funziona?

a*: Qt(a*) = P=1-εa ≠ a* P=ε

Uniforme sulle altre a.

{ })(max aQta

Page 51: APPRENDIMENTO MIMETICO Reinforcement Learning · Mappe neurali. Apprendimento per rinforzo (reinforcement learning, ... dà alcuna informazione su come aggiornare il comportamento

Esempio: 10-armed testbed(*)n-armed bandit problem: n = 10; a = a1, a2, …, ak, …, a10.

La simulazione consiste in un set di 2000 task.

Per ogni task, eseguo 1000 volte la scelta dell’azione:t = t1, t2, …, t1000a = a(t1), a(t2), …, a(t1000)r = r(a(t1)), r(a(t2)), …, r(a(t1000))

r(ak) viene selezionato in modo random da una distribuzione Gaussiana con media µk, diversa per le diverse azioni, ma costante per tutto il task, e varianza 1. µk = Q*(ak).

Misuro, per ogni istante di tempo t:Il reward dell’azione (in questo caso viene dato un reward ≠ 0 per ogni azione)Calcolo la ricompensa totale (Value Function).

Valuto la performance dopo le 1000 giocate di ogni task.

Quanto vale µk? Per ogni task vario µk estraendolo da una distribuzione Gaussiana con media = 0 e varianza= 1.(*) A testbed is a platform for experimentation for large development projects (Wikipedia)

Page 52: APPRENDIMENTO MIMETICO Reinforcement Learning · Mappe neurali. Apprendimento per rinforzo (reinforcement learning, ... dà alcuna informazione su come aggiornare il comportamento

Risultati

Media su 2000 task, ciascuno di 1000 giocate (azioni, playes)

Si potrebbe implementare una politica ε-greedy variabile: ε↓ #Playes↑

Page 53: APPRENDIMENTO MIMETICO Reinforcement Learning · Mappe neurali. Apprendimento per rinforzo (reinforcement learning, ... dà alcuna informazione su come aggiornare il comportamento

DomandeSupponiamo che la distribuzione da cui si sceglie il valore medio del reward abbia varianza nulla. Quale metodo funziona meglio: Greedy o ε-Greedy?

Supponiamo che la distribuzione da cui si sceglie il valore medio del reward abbia varianza maggiore (e.g. = 10). Cosa succede? Quale metodo si comporterebbe meglio?

In quali altre condizioni sarebbe utile avere esplorazione?

Page 54: APPRENDIMENTO MIMETICO Reinforcement Learning · Mappe neurali. Apprendimento per rinforzo (reinforcement learning, ... dà alcuna informazione su come aggiornare il comportamento

Implementazione incrementaleIl metodo action-value appena visto di valutazione dei valori delle azioni come media dei campioni delle ricompense osservate richiede molta memoria e molta computazione per il calcolo di

Occorre scegliere un algoritmo che calcoli Qt(.) con un piccolo carico computazionale e di memoria.

Supponiamo di Exploit l’azione ak. Calcoliamo i reward al tempo t (primi t reward) e li chiamiamo Qt(ak) . Qt(ak) coinciderà con la media delle prime ka ricompense:

Scegliendo ancora ak, otteniamo il seguente valore di Q al tempo t+1:

a

kkt k

rrraQ a

+++=

...)( 21

a

kkt k

rrraQ a

+++=

...)( 21

1...

)( 121

+

++++= +

a

kkkt k

rrrraQ aa

Page 55: APPRENDIMENTO MIMETICO Reinforcement Learning · Mappe neurali. Apprendimento per rinforzo (reinforcement learning, ... dà alcuna informazione su come aggiornare il comportamento

Determinazione ricorsiva di Qk

11)(

11)1(

11)11(

1111...

)(

1...

)(

...)(

11

11

11211

1211

21

++

+−=

++

+−+⋅

=+

++

−+⋅

=+

++⋅

=+

++

+++=

+++++

=

+++=

++

++

+++

++

Nr

NQ

QaQ

Nr

NQNQ

Nr

NNQ

Nr

NNQ

Nr

Nrrr

aQ

Nrrrr

aQ

Nrrr

aQ

Nttkt

NttNt

NtNNkt

NNkt

Nkt

Dipende da t+1

Non dipende da t+1Q1 = r1(aj) ∀Q0

Page 56: APPRENDIMENTO MIMETICO Reinforcement Learning · Mappe neurali. Apprendimento per rinforzo (reinforcement learning, ... dà alcuna informazione su come aggiornare il comportamento

Osservazioni su Qk

Occupazione di memoria minima: solo Qk e k.NB: k è il numero di volte in cui è stata scelta aj, non ènecessariamente coincidente con il tempo t!

Questa forma è la base del RL, La sua forma generale è:

NewEstimate = OldEstimate + StepSize[Target – OldEstimate]NewEstimate = OldEstimate + StepSize ∗ Error.

StepSize = α = 1/Nk+1

][)( 11

1

11 kkk

k

k

k

kkkk QrQ

Nr

NQ

QaQ −+=+−= ++

+

++ α

1

1

+

=kN

α

Page 57: APPRENDIMENTO MIMETICO Reinforcement Learning · Mappe neurali. Apprendimento per rinforzo (reinforcement learning, ... dà alcuna informazione su come aggiornare il comportamento

Pseudo-codice per il calcolo di Qk (1)### 1) Definizione delle variabili:N_scelte = m; eps_greedy = 0.1 //epsilon dipende dal grado di greedy che si vuol dare all’agente

### Variabili dell’agenteA = {1, 2, …,m} // Azioni possibiliQ = {Q1, Q2, …,Qm} = 0 // Value function per ogni azioneN_azioni = {1, 2, …,m} // Numero di volte in cui è scelta l’azione j (e collezionato il reward associato)

## Variabili dell’ambiente. Date nella simulazione, misurate nell’ambiente nella realtà// Inizializzo I parametri della distribuzione (stazionaria) dei reward per ogni azionemeanReward = [mean_1, mean_2,…, mean_m]; stdReward = [mean_1, mean_2,…, mean_m];

Page 58: APPRENDIMENTO MIMETICO Reinforcement Learning · Mappe neurali. Apprendimento per rinforzo (reinforcement learning, ... dà alcuna informazione su come aggiornare il comportamento

Pseudo-codice per il calcolo di Qk (2)#### 2) Ciclo di funzionamento

while (TRUE){eps = randu ([0 1]) // Per politica epsilon-greedy// Exploitation[a_attuale Q_attuale] = SearchMax(Q); // Cerca l’azione ottima secondo Q// Esploration: se eps < epsilon_min, allora explorationif(eps < epsilon_min)

{// Devo trovare un’azione diversa da a_attuale -> a_reftrovato = FALSE; a_ref = a_attuale;while(!trovato)

{a_attuale = randu(A);if(a_attuale != a_ref)

{trovato = TRUE;Q_attuale = Q(a_attuale)}

}}

Page 59: APPRENDIMENTO MIMETICO Reinforcement Learning · Mappe neurali. Apprendimento per rinforzo (reinforcement learning, ... dà alcuna informazione su come aggiornare il comportamento

Pseudo-codice per il calcolo di Qk (3)

// Eseguo l’azione a_attuale e misuro il reward ottenuto dalla slot machiner_attuale = randg[meanReward(a_attuale), stdReward(a_attuale)];// Update i dati per l’azione a_attuale: il numero di azioni e il valueN_azioni(a_attuale)++;Q(a_attuale) =Q(a_attuale) + (1/N_azioni(a_attuale)) * (r_attuale – Q(a_attuale);}

Page 60: APPRENDIMENTO MIMETICO Reinforcement Learning · Mappe neurali. Apprendimento per rinforzo (reinforcement learning, ... dà alcuna informazione su come aggiornare il comportamento

Caso stazionario

1

1211

...

+

++

++++=

k

kkk N

rrrrQ

1

1

11

+

+

++ +−=

k

k

k

kkk N

rNQ

QQ

][ 11 kkkk QrQQ −+= ++ α

Il peso di ciascun campione èparia a 1/Nk+1.

Ogni nuovo campione viene pesato con 1/Nk+1.

Peso decrescente ai nuovi campioni.

Cosa succede se il task è non stazionario?

Page 61: APPRENDIMENTO MIMETICO Reinforcement Learning · Mappe neurali. Apprendimento per rinforzo (reinforcement learning, ... dà alcuna informazione su come aggiornare il comportamento

Caso non stazionario

][ 11 kkkk QrQQ −+= ++ α

ma si suppone α = cost → αk = α 0 ≤ α ≤ 1

∑=

−+

−−−

−−

−−

−−

−+−=

⇒−+−++−+−+=

=−+−+=

=−+−+==−+=

=−+=

k

ii

ikkk

kkkkk

kkk

kkk

kk

kkkk

rQQ

Qrrrr

Qrr

QrrQr

QrQQ

101

011

22

1

22

1

21

1

11

)1()1(

)1()1(..........)1()1(

)1()1(

])1()[1()1(

][

ααα

αααααααα

αααα

ααααααα

0 ≤ 1-α ≤ 1

0 ≤ α ≤ 1

Nel caso non stazionario (il bandito cambia nel tempo), ha senso pesare di piùle ricompense più recenti piuttosto che quelle passate. Si usa sempre l’aggiornamento:

Page 62: APPRENDIMENTO MIMETICO Reinforcement Learning · Mappe neurali. Apprendimento per rinforzo (reinforcement learning, ... dà alcuna informazione su come aggiornare il comportamento

Osservazioni

I reward non sono pesati tutti allo stesso modo: weightedaverage.

Il peso di ciascun campione decresce esponenzialmente:

wi = α(1-α)k-i α < 1

Exponential, recency-weighted average

∑∑==

−+ +−=−+−=

k

iii

kk

ii

ikkk rwQrQQ

10

101 )1()1()1( αααα

Page 63: APPRENDIMENTO MIMETICO Reinforcement Learning · Mappe neurali. Apprendimento per rinforzo (reinforcement learning, ... dà alcuna informazione su come aggiornare il comportamento

La somma dei pesi dei reward è unitaria

Si chiama media pesata (weighted average) perché la somma dei pesi è = 1. Infatti considerando solo i coefficienti in

11]1)1([)1(

)1()1()(

1)1(

)1()1(1)1(

1)1(

)1()1()1(

)1()1(..........)1()1(1

)1()1(..........)1()1(

1

1

0

12

011

22

1

=++−−−−

=−+−−⎥⎦

⎤⎢⎣

⎡−

−−

=−+⎥⎦

⎤⎢⎣

⎡−−

−−−−

=−+⎟⎠

⎞⎜⎝

⎛−−−

=−+−++−+−+⋅

−+−++−+−+=

+

+

=

−−−

ααα

αααα

αα

ααα

αα

αααα

αααααααα

αααααααα

k

kkk

kkk

kk

i

ki

kk

kkkkkk QrrrrQ

cvd

Page 64: APPRENDIMENTO MIMETICO Reinforcement Learning · Mappe neurali. Apprendimento per rinforzo (reinforcement learning, ... dà alcuna informazione su come aggiornare il comportamento

Condizioni iniziali

Tutti i metodi discussi dipendono dalla stima iniziale della action-value, Q0(a) (polarizzazione). Ma:

Metodi ad α = 1/Nk, Q0 non viene utilizzato se non al primo passo, viene poi sostituito da Q1.

Metodi ad α costante, Q0 conta sempre meno, ma la polarizzazione è permanente (Q0 = 0).

Q0 può essere utilizzato per fornire della conoscenza a-priori o per favorire l’esplorazione (optimistic initial value).

Come posso gestire una situazione in cui la slot machine cambia improvvisamente la sua densità di probabilità di reward? (Per i problemi non stazionari, l’optimisticinitial value è inefficace in quanto agisce solo all’inizio).

∑=

−+ −+−=

k

ii

ikkk rQQ

101 )1()1( ααα