Machine learning: il reinforcement learning

Articoli

Il Reinforcement Learning è uno dei temi più scottanti nel campo del Machine Learning, ed anche uno dei più datati. Infatti, i primi studi risalgono agli anni ‘50 del secolo scorso.

Nel 2013 una startup inglese, la DeepMind, ha dimostrato a tutti come fosse possibile creare un sistema capace d’imparare a giocare un qualsiasi gioco Atari partendo da zero.

Di seguito il link di un articolo a questo tema dedicato https://arxiv.org/abs/1312.5602.

Il capolavoro di DeepMind resta, comunque, AlphaGo: un sistema di Reinforcement Learning che nel 2017 ha battuto Ke Jie allora campione del mondo di Go, un complicato gioco cinese con un numero di posizioni superiore a quello di tutti gli atomi presenti nell’Universo osservabile: un traguardo raggiunto attraverso l’applicazione della potenza delle reti neurali al campo del Reinforcement Learning.

In natura, l’apprendimento è un processo di esplorazione interazione ambientale necessario per ottenere delle ricompense.

Questo semplice paradigma è catturato dal reinforcement learning e codificato in sistemi che possano essere eseguiti da macchine artificiali.

Il Reinforcement Learning, di per sé, è semplicemente un’area di studi o meglio, più tecnicamente, una classe di sistemi di machine learning con struttura e funzionamento tipico.

Diciamo, dunque, che in un sistema di Reinforcement Learning un agente (agent) software compie osservazioni (observation) in un ambiente (environment), eseguendo in esso delle azioni (action) e ricevendo in cambio delle ricompense (reward).

L’obiettivo dell’agente è quello di massimizzare la ricompensa sul lungo termine.

La ricompensa può anche essere negativa, una penalità, c.d. negative rewards.

Alcuni esempi di Reinforcement Learning:

  • Un walking robot: ossia il robot che cammina.
    In questo caso l’agente è il software preposto al controllo della macchina, che osserva il mondo reale con una moltitudine di sensori ottenendo una ricompensa qualora raggiungesse l’obiettivo e una penalità (i.e. ricompensa negativa) se perdesse tempo in azioni inutili (e.g. Direzione errata, caduta etc.) 
  • A Smart Thermostat.
    Un agente non deve necessariamente controllare il movimento di un dispositivo fisico (o virtuale).
    Ad esempio, il termostato Google Nest, nelle prime settimane di utilizzo, regola un modello di machine learning (più correttamente di reinforcement learning) adeguandosi alle esigenze dell’utente.
    In questo caso la ricompensa positiva scatta all’impostazione di una temperatura valida e alla diminuzione dei consumi energetici, quella negativa in caso d’intervento umano correttivo (i.e. Temperatura sbagliata).
    In questo caso l’agente deve quindi anticipare le esigenze umane.
  • FinTech
    Il settore finanziario, specie quello della compravendita azionaria vede di buon occhio questi sistemi, perché potrebbero assistere broker daily trader osservando i prezzi dei titoli azionari e decidendo quando e quanto acquistare o vendere.
    Le ricompense scattano qui in funzione dei margini di guadagno o perdita.

In tutti i casi non sarà sfuggita la mancanza di un’informazione fondamentale a livello logico.

Effettivamente l’agente compie azioni in un ambiente e riceve in cambio ricompense che devono essere massimizzate.

Ma come fa l’agente a sapere quale azione compiere in ogni momento, in funzione delle osservazioni compiute? Utilizzando un algoritmo per determinare quali azioni eseguire, questo algoritmo prende il nome di Policy.

Una policy può assumere le sembianze di una rete neurale: prendendo le osservazioni in input elabora l’azione da intraprendere in output.Q-learning

Q-learning

Q-learning è uno dei più conosciuti algoritmi di apprendimento per rinforzo.

Fa parte della famiglia degli algoritmi adottati nelle tecniche delle differenze temporali in caso di modelli a informazione incompleta.

Il Q-learning è un algoritmo di apprendimento basato sul valore e si concentra sull’ottimizzazione della funzione di valore secondo l’ambiente o il problema.

Il suo obiettivo è quello di consentire ad un sistema di apprendimento automatico di adattarsi all’ambiente che lo circonda, migliorando la scelta delle azioni tra quelle possibili da eseguire. Per giungere a questo obiettivo, lavora cercando di massimizzare il valore del successivo premio guadagnato Q.

Il modello memorizza tutti i valori in una tabella, che è la tabella Q dove le righe riportano tutte le osservazioni possibili mentre le colonne includono tutte le azioni possibili. Le celle sono dunque riempite durante l’addestramento con valori che rappresentano la ricompensa attesa.

L’algoritmo di Q-learning è descritto da un agente, tecnicamente il modello IA, che interagisce con l’ambiente, da un insieme di stati S e da un insieme di azioni per ogni stato.

Per realizzare ciò, l’agente compie azioni che alterano l’ambiente generando un nuovo stato, ottenendo una ricompensa 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 funzione matematica a parametri ottimizzati.

Un esempio molto interessante di Q-learning è lo Gym Sviluppato con OpenAI Gym + Box2D (https://gym.openai.com/ )

Gym è un toolkit per lo sviluppo e il confronto di algoritmi di apprendimento per rinforzo. Supporta l’insegnamento agli agenti di tutto, dal camminare ai giochi come Pong o Pinball.