Benvenuto nella rubrica Tech Explained!

In un precedente articolo abbiamo fatto luce sulle tre fondamentali aree di ricerca del machine learning il quale, ricordiamo, è la principale disciplina alla base dell’intelligenza artificiale.

Tali aree sono l’apprendimento supervisionato, l’apprendimento non supervisionato e l’apprendimento per rinforzo. In questo articolo cominceremo ad approfondire, senza scendere eccessivamente nei dettagli tecnici, l’apprendimento per rinforzo.

Riprendendo la definizione del precedente articolo, “l’apprendimento per rinforzo è realizzato sulla base delle interazioni di un agente con un ambiente virtuale. Sono definiti un obiettivo verso il quale l’agente deve tendere, una ricompensa per le azioni che lo portano verso tale obiettivo ed una punizione per quelle che lo allontanano. Guidato dall’obiettivo, l’agente ottimizza il suo comportamento per ricevere la maggiore ricompensa totale.”.

Prima di introdurre la suddivisione nelle tre principali categorie di apprendimento per rinforzo, è importante comprendere i seguenti concetti fondamentali. Dunque:

Stato dell’ambiente: lo stato dell’ambiente si definisce come l’insieme dei valori di tutte le variabili che lo caratterizzano univocamente in un determinato istante. Immaginando ad esempio l’ambiente come l’intero universo, in un determinato istante lo stato consisterebbe nella “fotografia” di tutte le caratteristiche ed i processi in corso al suo interno. L’addestramento dell’agente avviene in step di training consecutivi (step 1, step 2, step 3, …, possono essere immaginati come i secondi del tempo che passa), in ciascuno dei quali egli effettua un’azione che influisce sullo stato dell’ambiente virtuale nel quale si muove.

Ricompensa: in corrispondenza di ogni step, come conseguenza dell’azione eseguita, l’agente riceve una ricompensa dall’ambiente, la quale è sempre numerica e consiste in un valore positivo, negativo o nullo. L’obiettivo dell’agente è massimizzare la ricompensa totale (ovvero la somma delle singole ricompense) accumulata durante l’esecuzione del suo compito.

Policy: in corrispondenza di ogni step, l’agente sceglie come muoversi sulla base di uno specifico “codice di comportamento”, il quale è di fatto l’oggetto dell’addestramento ed è definito “policy”. Una volta completato l’addestramento, l’agente avrà modellato il suo personale codice di comportamento, il quale può essere di due tipologie:

Value function: tramite la value function si stima la ricompensa totale attesa che un agente, a partire dallo stato nel quale si trova l’ambiente nel corrente step, sarà in grado di ottenere seguendo una specifica policy.

Action – value function: tramite la action – value function si stima la ricompensa totale che un agente, a partire dallo stato nel quale si trova l’ambiente nel corrente step, sarà in grado di ottenere effettuando come prima mossa una specifica azione e comportandosi, da lì in avanti, secondo una specifica policy.

Si distingue dunque nelle seguenti tre categorie di agenti:

Value – based agents: un agente addestrato secondo un approccio “value – based” stima in corrispondenza di ogni step il valore di una tra le funzioni “value function” e “action – value function” (la scelta dell’una o dell’altra dipende dalla specifica soluzione di reinforcement learning adottata). Segue la descrizione di ciascuno dei due approcci:

Nei casi “value – based” dunque, la policy adottata dall’agente “emerge” come conseguenza delle stime effettuate in merito alle funzioni “value function” ed “action – value function”.

Policy – based agents: un agente addestrato secondo l’approccio “policy – based” apprende direttamente la policy di comportamento senza passare per la stima delle funzioni di valore. Invece di stimare i valori dei possibili stati o delle coppie stato – azione, un agente policy based ottimizza progressivamente il suo comportamento semplicemente tramite l’esplorazione dell’ambiente. Partendo da una policy iniziale sostanzialmente casuale, l’agente modella “le sue convinzioni” circa il suo approccio per il raggiungimento dell’obiettivo finale sulla base dei feedback positivi o negativi ricevuti dall’ambiente. L’approccio policy based è generalmente il più intuitivo e comprensibile, in quanto ricalca le modalità tipiche dell’apprendimento in età infantile, le quali non si basano su particolari ragionamenti e/o stime circa i pericoli o le potenzialità dell’ambiente circostante, bensì su semplici procedure per tentativi.

Actor – Critic agents: l’approccio cosiddetto “actor – critic” si colloca in una posizione intermedia tra le soluzioni value – based e policy – based, costituendo di fatto un modello ibrido (e generalmente più raffinato ed avanzato). La definizione “Actor – Critic” fa riferimento alla funzione di “attore” svolta dalla policy, in quanto vero e proprio “codice di comportamento” che anima l’agente, contrapponendola alla funzione di “analisi critica” dell’ambiente circostante svolta tramite l’approccio value – based. Gli agenti facenti parte della categoria “actor – critic” dunque ottimizzano iterativamente la policy tramite l’esplorazione dell’ambiente, ma questa procedura di addestramento non consiste in un semplice susseguirsi di errori ed aggiustamenti, bensì è anche in parte guidata da valutazioni sull’ambiente circostante e sulla bontà delle azioni intraprese, ossia è soggetta ad una costante “critica” tramite la stima delle funzioni di valore.

Vediamo un esempio per ciascuna categoria di agente, in modo da comprendere meglio quanto descritto sopra:

Il seguente esempio darà una visione più intuitiva dell’agente value – based.

Immagina di essere un esploratore in un labirinto alla ricerca di un forziere nascosto. Ogni volta che raggiungi un bivio devi decidere quale direzione intraprendere per massimizzare le possibilità di trovare il tesoro. Per fare ciò, potresti assegnare un diverso punteggio a ciascuna direzione sulla base delle tue convinzioni personali. Se hai già trovato il tesoro in passato oppure se hai avuto un’intuizione sulla direzione generale da prendere, assegnerai un punteggio più alto alle direzioni che ritieni ti avvicinino maggiormente all’obiettivo. Fatto ciò, seguirai la direzione con il punteggio più alto. La policy che determina il tuo comportamento (in questo caso quale direzione prendere) non è quindi modellata direttamente sulla base di tentativi reiterati, bensì emerge dalle tue valutazioni rispetto all’ambiente circostante.

Il seguente esempio darà una visione più intuitiva dell’agente policy – based.

Immagina di essere un cuoco in un ristorante e di dover decidere quali ingredienti utilizzare per preparare una nuova ricetta. Invece di ragionare per ore su quali possano essere gli ingredienti migliori, assegnando punteggi diversi a verdure e formaggi, decidi semplicemente di provare diverse combinazioni ed osservare la reazione dei clienti. Per ogni piatto (il quale può essere considerato come uno step dell’algoritmo), valuterai il livello di gradimento del risultato ed apporterai le dovute correzioni alla tua “policy di cucina”. Il risultato sarà quindi un comportamento ottimizzato solamente sulla base dell’esperienza dell’agente.

Il seguente esempio darà una visione più intuitiva dell’agente actor – critic.

Immagina di essere un giocatore di calcio che cerca di migliorare le sue performance in campo. Ogni volta che giochi una partita collezioni una serie di esperienze positive o negative circa le tue abilità di gioco; “mi riescono meglio i cross di destro”, “meglio temporeggiare invece che gettarmi a capofitto contro l’avversario in un contrasto”, “mai, mai tentare colpi di tacco in difesa”. Oltre ai feedback raccolti in modo diretto tramite la tua esperienza, durante e dopo la partita il tuo comportamento in campo è anche indirizzato dall’allenatore, il quale compito consiste nel fornire critiche generali e costruttive sulle performance dei giocatori. La funzione di critico svolta dall’allenatore, unita alla tua esperienza diretta (in quanto “attore calciatore”) contribuiscono a plasmare nel tempo le tue abilità calcistiche.

Il viaggio nell’eccitante mondo del Reinforcement Learning è solo all’inizio, in futuri articoli approfondiremo ulteriormente alcuni temi fondamentali della disciplina ed analizzeremo nel dettaglio alcuni algoritmi specifici!

Francesco