Blog.

Deep Q-Learning


Autore
Andrea Provino
Data
Tempo di lettura
5 minuti
Categoria
machine-learning

deep-q-learning-q-learning-reinforcement-learning

In questo post analizzeremo alcuni concetti importanti del Deep Reinforcement Learning: il Q-learning e il Deep Q-Learning.

Prima d’iniziare, lascia che ti presenti una brevissima introduzione al Reinforcement Learning.

Il Reinforcement Learning è un processo caratterizzato da due entità:

  1. Un ambiente (environment) che semplifica una certa realtà
  2. Un agente (agent), tecnicamente un modello di AI (e.g. rete neurale) che interagisce con l’ambiente.

Ci sono altri tre termini chiave nel vocabolario del Reinforcement Learning che devi necessariamente conoscere.

Poco fa ti ho detto che l’agente interagisce con l’ambiente.

Per realizzare ciò, compie azioni (actions) che alterano l’ambiente generando un nuovo stato (state), ottenendo una ricompensa (reward) che può essere negativa o positiva in base all’effetto dell’azione, e in funzione del risultato desiderato.

Compiendo azioni e ottenendo ricompense, l’agente elabora una strategia ottimale per massimizzare la ricompensa nel tempo. Questa strategia è definita policy, ed è una funziona matematica a parametri ottimizzati.

Bellman Equation per Q-Learning

L’Equazione di Bellman è un concetto fondamentale nel Renforcement Learning,

Fu introdotta nel 1954 dal Richard Bellman, conosciuto come il padre del Dynamic Programming, in una pubblicazione intitolata The Theory of Dynamic Porgramming.

Lascia quindi che ti spieghi perché sia così importante.

Partiamo da un Toy Problem, un problema piccolo e utile solo a capire i concetti di fondo.

Consideriamo un piccolo robot che debba raggiungere la posizione finale di un percorso evitando gli ostacoli:

Potremmo quindi configurare un sistema a ricompense specifico per l’ambiente tale per cui:

  • -1 per ogni step (Per incoraggiare l’agente a raggiungere l’obiettivo percorrendo la tratta più breve)
  • -100 per ogni mina
  • +1 per ogni fulmine
  • +100 per il raggiungimento della fine.

Per risolvere questo problema, dobbiamo introdurre il concetto di Q-Table.

Q-Table

Una Q-Table è una lookup table che calcola il valore atteso delle ricompense future per ogni azione in ogni possibile stato. Questo permette all’agente di scegliere la migliore azione in ogni stato.

Il nostro ambiente ha 4 possibili azioni (sopra, sotto, destra, e sinistra) e 5 possibili stati (inizio, vuoto, fulmine, mina, fine).

La domanda è dunque: come calcoliamo la massima ricompensa possibile per ogni stato, ovvero i valori della Q-Table?

Abbiamo bisogno di un processo iterativo che faccia uso del Q-Learning algorithm, il quale a sua volta si appoggia all’equazione di Bellman.

E il cerchio si chiude.

L’Equazione di Bellman per sistemi deterministici è la seguente:

Q-learning Bellman Equation

In cui abbiamo:

  • s – State
  • α – Action
  • R – Reward
  • γ – Discount factor

Il fattore di sconto è necessario per tarare la variazione della ricompensa nel tempo, comunicando all’agente quanto sia rilevante la ricompensa presente rispetto a quella futura.

C’è però una questione limitante nell’applicare l’equazione a qualsivoglia ambiente.

La formula funziona solamente quando è noto lo stato successivo, informazione spesso sconosciuta e anzi dipendente dall’azione compiuta.

Abbiamo quindi bisogno di un sistema per modellare ambienti in qualche modo legati a un fattore casuale, non prevedibile.

Ora che abbiamo un’infarinatura sul concetto di Q-Table, passiamo quindi al prossimo: i Markov Decision Processes

Markov Decision Processes (MDPs) in Q-Learning

Dobbiamo distinguere due tipologie di ambiente:

  1. Ambiente Deterministico, per ogni azione compiuta dall’agente la probabilità che questa avvenga correttamente è massima (100%)
  2. Ambiente non deterministico, per ogni azione compiuta dall’agente la probabilità che questa avvenga è influenzata da un fattore casuale, ed è quindi incerta.

Ora possiamo allora introdurre il concetto di processo di Markov e processo decisionale di Markov.

Abbiamo approfondito l’argomento nel post su Tutto sul Markov Decision Process, quindi saremo veloci qui.

Processo di Markov è tale quando presenta la proprietà di Markov, quando cioè la distribuzione di probabilità dei futuri stati del processo dipendono unicamente dallo stato presente e non dalla serie di eventi a esso preceduti.

I processi decisionali di Markov costituiscono invece un framework per modellare, sotto specifiche condizioni, un atto di Decision Making, in quelle situazioni in cui il risultato è in parte casuale e in parte sotto il controllo del decision maker.

Applicando questi concetti all’Equazione di Bellman, otteniamo una variante per ambienti non deterministici:

Bellman Equation for Q-Learning - Non deterministic

Q-Learning

Con le nozioni di Equazione di Bellman e di Markov Decision Process sulle spalle possiamo finalmente sviscerare il concetto di Q-Learning.

Fin’ora abbiamo cercato di calcolare V(s), con il quale derivare la migliore azione da compiere in funzione dello stato corrente.

Ora invece di considerare il valore di ogni stato V(s), prendiamo il valore della coppia stato-azione che indichiamo con Q(s,a).

Intuitivamente, possiamo pensare al Q-value come la “qualità”dell’azione.

La nostra equazione diventa quindi:

Bellman Equation for Q-Learning

Compiendo un’azione, il nostro agente riceve inizialmente una ricompensa R(s,a) .

Ora poiché il nuovo stato può esse uno tra molti, aggiungiamo il calcolo del valore atteso nello stato successivo.

Per cui il valore dello stato V(s) assume il massimo valore tra tutti i possibili Q-values.

Con una semplice modifica, otteniamo dunque la formula ricorsiva per il calcolo del Q-Value.

Bellman Equation for Q-Learning

Sappi che, sebbene l’esempio sia caratterizzato da uno spazio azioni e stati discreto, lo stesso ragionamento può essere applicato a uno spazio azioni e stati continuo, generalmente dividendo il continuo in intervalli discreti.

Per il momento è tutto.

Per aspera, ad astra.

Un caldo abbraccio, Andrea


Ultimi post

Patricia Merkle Trie

Il Practical Algorithm To Retrieve Information Coded In Alphanumeric Merkle Trie, o Patricia Merkle Trie è una struttura dati chiave-valore usatada Ethereum e particolarmente efficiente per il salvataggio e la verifica dell’integrità dell’informazione. In questo post ne studieremo le caratteristiche. Prima di procedere, ci conviene ripassare l’introduzione al Merkle Tree nella quale abbiamo chiarito il […]

Andrea Provino
ethereum-patricia-merkle-tree
Tree Data Structure: cos’è un Merkle Tree

Un Merkle Tree è una struttura dati efficiente per verificare che un dato appartenga a un insieme esteso di elementi. È comunemente impiegato nelle Peer to Peer network in cui la generazione efficiente di prove (proof) contribuisce alla scalabilità della rete. Capire i vantaggi di questa struttura ci tornerà utile nel nostro percorso di esplorazione […]

Andrea Provino
merkle-tree-cover
UTXO: come funziona il modello Unspent Transaction Outputs

Per tenere traccia dei bilanci utente, la blockchain di Bitcoin sfrutta un modello di contabilità definito UTXO o Unspent Transaction Outputs. In questo articolo ne esaminiamo le caratteristiche. Ogni blockchain è dotata di un sistema di contabilità, un meccanismo attraverso cui tenere traccia dei bilanci di ciascun utente. I due grandi modelli di riferimento nel […]

Andrea Provino
bitcoin-utxo
Cos’è Ethereum

Possiamo definire Ethereum come una macchina a stati distribuita che traccia le transizioni di un archivio dati general-purpose (i.e. una memoria in grado di registrare qualsiasi dato esprimibile come coppia di chiave e valore o key-value) all’interno della Ethereum Blockchain. È arrivato il momento di esplorare uno dei progetti tecnologici più innovativi e interessanti degli […]

Andrea Provino
ethereum