Q-learning

Da Wikipedia, l'enciclopedia libera.
Jump to navigation Jump to search

Q-learning è uno dei più conosciuti algoritmi di apprendimento per rinforzo. Fa parte della famiglia di algoritmi adottati nella tecniche delle differenze temporali, adottate nel caso di modelli a informazione incompleta. Uno dei suoi maggiori punti di rilievo consiste nell'abilità di comparare l'utilità aspettata delle azioni disponibili senza richiedere un modello dell'ambiente.

Descrizione[modifica | modifica wikitesto]

Il suo obiettivo è quello di permettere ad un sistema di apprendimento automatico di adattarsi all'ambiente che lo circonda migliorando la scelta delle azioni da eseguire. Per giungere a questo obiettivo, cerca di massimizzare il valore del successivo premio per sconto.

Il modello del problema può essere descritto da un agente, un insieme di stati S e un insieme di azione per stato A. Effettuando un'azione l'agente si muove da uno stato ad un altro stato. Ogni stato fornisce all'agente una ricompensa (un numero reale o naturale). L'obiettivo dell'agente è quello di massimizzare la ricompensa totale. L'agente fa questo apprendendo quali sono le azioni ottimali associate ad ogni stato.

Quindi l'algoritmo è provvisto di una funzione per calcolare la Qualità di una certa coppia stato-azione:

Prima che l'apprendimento inizi, Q restituisce un valore fisso, scelto dal progettista. Poi, ogni volta che l'agente riceve una ricompensa (lo stato è cambiato) vengono calcolati nuovi valori per ogni combinazione stato-azione. Il cuore dell'algoritmo fa uso di un processo iterativo di aggiornamento e correzione basato sulla nuova informazione.

dove è una ricompensa osservata dopo aver eseguito in , e il tasso di apprendimento (o learning rate) è identificato da (). Il fattore di sconto è tale che

La formula sopra è equivalente a:

Un episodio dell'algoritmo termina quando lo stato è uno stato finale (o stato di assorbimento).

Notare che per tutti gli stati finali , non viene mai aggiornato e quindi conserva il suo valore iniziale.

Influenza delle variabili sull'algoritmo[modifica | modifica wikitesto]

Tasso di apprendimento[modifica | modifica wikitesto]

Il tasso di apprendimento determina con quale estensione le nuove informazioni acquisite sovrascriveranno le vecchie informazioni. Un fattore 0 impedirebbe all'agente di apprendere, al contrario un fattore pari ad 1 farebbe sì che l'agente si interessi solo delle informazioni recenti.

Fattore di sconto[modifica | modifica wikitesto]

Il fattore di sconto determina l'importanza delle ricompense future. Un fattore pari a 0 renderà l'agente "opportunista" facendo sì che consideri solo le ricompense attuali, mentre un fattore tendente ad 1 renderà l'agente attento anche alle ricompense che riceverà in un futuro a lungo termine.

Implementazione[modifica | modifica wikitesto]

Una semplice implementazione di Q-learning usa tabelle per memorizzare i dati. Tuttavia questo approccio perde fattibilità al crescere del livello di complessità del sistema. Una possibile soluzione a questo problema prevede l'uso di una rete neurale artificiale come approssimatore di funzione.

Studi recenti[modifica | modifica wikitesto]

Q-learning fu inizialmente introdotto da Watkins nel 1989[1].

La dimostrazione di convergenza fu presentata più tardi da Watkins e Dayan nel 1992[2].

Note[modifica | modifica wikitesto]

  1. ^ Watkins, C.J.C.H., (1989), Learning from Delayed Rewards. Ph.D. thesis, Cambridge University.
  2. ^ (EN) Christopher J. C. H. Watkins e Peter Dayan, Q-Learning, in Machine Learning, vol. 8, 3–4, maggio 1992, pp. 279–292, DOI:10.1007/BF00992698, ISSN 0885-6125 (WC · ACNP).

Collegamenti esterni[modifica | modifica wikitesto]