Blog.

Temporal Difference Learning and Q-Learning


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

reinforcement-learning-deep-learning-data-science-machine-learning-temporal-difference-learning-q-learning-spiegazione-italiano

In quest post esploriamo l’algoritmo di Temporal Difference Learning e quello di Q-Learning.

Nel nostro precedente post abbiamo visto come Bellman riusci a individuare un metodo efficace per calcolare l’optimal state value di ogni stato.

Conoscere questo valore è utile, in particolare per valutare una policy, ma non comunica espressamente all’agente cosa fare.

Bellman ci ha consegnato allora un secondo algoritmo, molto simile al  Value Iteration Algorithm per stimare questa volta i valori ottimali di state-action, chiamati genericamente Q-values.

Oooh, e il primo termine andato.

Non proprio, comprendiamo meglio.

Q-Value

Definiamo con più precisione il Q-Value.

Il Q-Value ottimale per la coppia stato-azione (s,a), indicato come Q*(s,a) è la somma delle future ricompense scontate (i.e. Con applicazione del discount rate, spiegato in questo post) che l’agente può ricevere in media dopo aver raggiunto lo stato s e aver scelto l’azione a, ma prima di aver osservato il risultato dell’azione, assumendo che agisca in modo ottimale dopo l’azione.

Ancora una volta il processo è iterativo: dopo aver inizializzato i valori a zero li aggiorniamo attraverso il Q-Value Iteration algorithm.

Con i Q-Values ottimali, definire la policy ottimale, indicata come π*(s) è banale: quando l’agente si trova nello stato s, gli basta scegliere l’azione con il più alto Q-Value per lo stato corrente: π* (s) = argmax (a) Q*(s, a).

Temporal Difference Learning

I problemi di Reinforcement Learning con azioni discrete sono spesso modellati come processi decisionali di Markov, sebbene inizialmente:

  • L’agente non sappia quali siano le probabilità di transizione attraverso gli stati;
  • L’agente non sappia quali siano le ricompense future.

Questo implica che l’agente debba esplorare ogni possibile stato e transizione almeno una volta per conoscere la relativa ricompensa, ed esplorare le transizioni numerose volte per stimarne con precisione la probabilità.

Il Temporal Difference Learning (TD Learning) è molto simile al Value Iteration algorithm ma ottimizzato per tenere conto della conoscenza parziale che l’agente ha del MDP.

In generale assumiamo che l’agente conosca inizialmente solo i possibili stati e le azioni. Quindi, attraverso una exploration policy (e.g. Una policy completamente casuale) l’agente esplora il MDP e nel frattempo il TD Learning aggiorna la stima degli state values basandosi sulle transizioni e ricompense effettivamente osservate.

L’algoritmo di TD Learning ha molte somiglianze allo Stochastic Gradient Descent, in particolare la limitazione di gestire un solo campione alla volta.

Analogamente allo SGD, è poi necessario ridurre gradualmente il learning rate per assicurare la convergenza dell’algoritmo.

Per ogni stato s, l’algoritmo calcola la media mobile (running average) delle ricompense immediatamente ottenute lasciando o stato, nonché quelle attese, assumendo che agisca in modo ottimale.

Q-Learning

In modo simile a quanto visto prima, l’algoritmo di Q-Learning è un adattamento del Q-Value Iteration algorithm capace di gestire la situazione in cui le probabilità di transizione e le ricompense sono inizialmente sconosciute.

Per ogni coppia di stato-azione (s,a), l’algoritmo calcola la media mobile (running average) delle ricompense r che l’agente riceve lasciando lo stato s attraverso l’azione a, e quelle attese in futuro.

Poiché ci aspettiamo che la policy agisca in modo ottimale, prendiamo il valore massimo della stima dei Q-Value per il prossimo stato.

Applicando questo metodo, a patto che ci siano sufficienti iterazioni, l’algoritmo converge ai Q-Value ottimali.

Definiamo allora l’algoritmo un off-policy algorithm perché la policy allenata, non è quella eseguita.

Facendoci colpire dalla meraviglia di questo algoritmo, rimaniamo stupiti da come sia in grado d’imparare la policy ottimale semplicmente osservando un agente agire in modo casuale nell’ambiente.

Per il momento è tutto.

Per aspera, ad astra.

Un caldo abbraccio, Andrea.

Taggedmachine learningreinforcement learningteoria


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