AI e Machine Learning

Reinforcement learning: cos’è, come funziona ed esempi dell’apprendimento per rinforzo

Dal “come” al “cosa”: il reinforcement learning è un particolare metodo di apprendimento automatico focalizzato all’obiettivo. Dove si applica, qual è il legame con le reti neurali artificiali.

Pubblicato il 22 Nov 2021

Josephine Condemi

giornalista

reinforcement learning

Dalle istruzioni all’obiettivo: il reinforcement learning sposta il focus della programmazione AI dall’elenco di istruzioni “se…allora” all’ottenimento della massima ricompensa possibile.

“Se piove, allora prendi l’ombrello”. Ma per raggiungere l’obiettivo “non bagnarsi” possono essere altrettanto efficaci altre azioni: stare sotto una pensilina, entrare/restare in un luogo chiuso, indossare un impermeabile. L’azione più efficace dipende dal contesto e dal tempo a disposizione.

Nel machine learning “tradizionale”, la macchina impara dai dati che le vengono forniti: dati già “etichettati” (apprendimento supervisionato) da cui estrarre le regole per “riconoscere” dati simili, o dati “grezzi” (apprendimento non supervisionato), da cui ricavare le caratteristiche in comune e raggrupparli. Nel reinforcement learning, invece, la macchina impara attraverso l’interazione con l’ambiente, per prove ed errori. Non riceve istruzioni su cosa fare ma deve scoprire quali sono le azioni che danno una maggiore ricompensa nel lungo periodo, in base al contesto in cui si trova. Un contesto in cui non è possibile prevedere a priori tutte le circostanze possibili.

Cos’è il reinforcement learning o apprendimento per rinforzo?

Il “reinforcement learning”, o apprendimento per rinforzo, è l’applicazione del machine learning, o apprendimento automatico, ai processi decisionali rivolti all’obiettivo. Il termine indica contemporaneamente: un campo di studi, i problemi da risolvere e i metodi fin qui adottati.

DeepMind x UCL RL Lecture Series - Introduction to Reinforcement Learning [1/13]

DeepMind x UCL RL Lecture Series - Introduction to Reinforcement Learning [1/13]

Guarda questo video su YouTube

Come apprendere senza supervisione, senza una mappatura esaustiva dell’ambiente, senza un elenco di istruzioni che comprenda tutte le circostanze probabili? Attraverso un rinforzo, ovvero un segnale numerico di ricompensa che si attiva quando l’obiettivo è raggiunto.

Il rinforzo viene inserito nell’algoritmo di addestramento senza istruzioni dirette su quali azioni intraprendere: sarà l’agente a dedurlo, sulla base di ripetute interazioni con l’ambiente circostante.

Secondo Richard Sutton e Andrew Barto, i padri dell’enforcement learning, l’apprendimento per rinforzo è il primo campo che affronta seriamente i problemi computazionali di come si apprende dall’interazione con l’ambiente per raggiungere obiettivi a lungo termine.

Il quadro formale di questa interazione è definito in termini di stati, azioni e ricompense: le azioni influenzano non solo la ricompensa immediata ma anche gli input, le azioni e le ricompense successive.

Non a caso, il reinforcement learning viene applicato sulle reti neurali artificiali, in grado di memorizzare le esperienze e migliorare l’esecuzione del compito (deep reinforcement learning).

Come funziona il processo del reinforcement learning?

Il reinforcement learning si basa sulla massimizzazione delle ricompense per obiettivi specifici: anziché con lunghe istruzioni “se…allora”, l’agente di apprendimento viene preparato per “rinforzo“, positivo o negativo, attraverso un sistema di ricompense e penalità.

Il concetto di “rinforzo” è storicamente legato al comportamentismo, approccio psicologico nato ai primi del Novecento che considera il comportamento l’unica unità di analisi studiabile perché oggettiva e risultato di stimoli e condizionamenti ambientali.

L’etologo russo Ivan Pavlov definì il condizionamento classico come correlazione tra uno stimolo e una risposta attraverso un’associazione ripetuta. Lo psicologo statunitense Burrhus Skinner aggiunse il condizionamento operante: se ad un’azione/risposta segue uno stimolo di rinforzo specifico, questa si ripeterà sempre di più o sempre di meno, a seconda che il rinforzo sia positivo o negativo. Skinner capovolse le fasi del processo, dallo stimolo-risposta alla risposta-stimolo. Il rinforzo è tale se produce effetti sul comportamento che restano anche quando lo stimolo viene ritirato.

Il comportamentismo partiva dal presupposto che la mente fosse una “scatola nera“, difficilmente osservabile in termini di scienza classica, e che attraverso la gestione degli stimoli ambientali fosse possibile prevedere e controllare il comportamento umano.

Oltre 50 anni dopo, sono concetti che ritornano nell’AI con il reinforcement learning e lo sviluppo delle reti neurali artificiali. Le reti neurali artificiali funzionano infatti per connessioni “plastiche”, che cambiano di peso in base alle informazioni mostrate nella fase di apprendimento: il deep learning, l’apprendimento profondo, utilizza diversi strati di reti neurali per elaborazioni sempre più raffinate, in cui il risultato dello strato precedente è l’input del successivo. Ma sono appunto “scatole nere”, con cui è possibile interagire solo gestendo gli input/output ambientali, quindi il sistema di ricompensa/punizione del reinforcement learning.

Il processo del reinforcement learning comprende: la definizione e simulazione dell’ambiente (e dell’interfaccia) in cui opererà l’agente; la definizione del segnale di ricompensa e delle relative modalità di calcolo; la definizione della policy, quindi dell’algoritmo di addestramento; l’addestramento; la diffusione della policy individuata.

Il segnale di ricompensa definisce l’obiettivo e può essere una funzione probabilistica dello stato dell’ambiente e delle azioni intraprese. Il valore dello stato è la massima ricompensa che ci si può aspettare nel lungo periodo: l’agente agirà per massimizzare questo valore. Stimarlo efficacemente attraverso osservazioni ripetute è il fulcro degli algoritmi di reinforcement learning.

Quando si utilizza il reinforcement learning?

Il reinforcement learning si utilizza nei casi in cui è necessario raggiungere un obiettivo in un ambiente incerto, quando non è possibile prevedere tutte le variabili.

È utile quando non c’è un solo modo per eseguire un compito, ma occorre osservare delle regole: un esempio è la guida autonoma con il codice stradale.

Il reinforcement learning è dinamico, non ha bisogno di un set di dati per l’addestramento da raccogliere, pre-elaborare ed etichettare: ma ha bisogno di un alto numero di interazioni tra agente e ambiente per finalizzare il risultato.

Richiede inoltre uno sforzo maggiore nella progettazione, dalla selezione delle reti neurali alla regolazione dei parametri delle policy. Tra le sfide più grandi, trasferire il modello fuori dall’ambiente simulato ed evitare che l’agente massimizzi il premio senza eseguire il compito richiesto.

Come sottolineano Sutton e Barto, il reinforcement learning è basato su un equilibrio tra esplorazione ed esperienza: l’esperienza delle azioni efficaci passate e l’esplorazione di nuove possibilità, per poterne selezionare di migliori in futuro. Ogni azione deve quindi essere provata molte volte per ottenere una stima affidabile della ricompensa che provoca.

Esempi di reinforcement learning

Gaming

Uno degli esempi più famosi di reinforcement learning è AlphaGo, il software per il gioco cinese del Go realizzato da DeepMind, la controllata di Google sull’intelligenza artificiale: addestrato prima con apprendimento supervisionato e poi con rinforzo, Alpha Go ha battuto nel 2016 per 4 a 1 il giocatore sudcoreano Lee Sedol, uno dei migliori al mondo.

AlphaGo - The Movie | Full award-winning documentary

AlphaGo - The Movie | Full award-winning documentary

Guarda questo video su YouTube

Guida autonoma

Il reinforcement learning viene utilizzato per addestrare gli ADAS- Advanced Driver Assistance Systems, i sistemi avanzati di assistenza alla guida. Ciascuna azione di guida autonoma può infatti corrispondere a una policy: il parcheggio automatico, il cambio corsia, il sorpasso, il control cruise automatico.

AWS DeepRacer è un’automobile da corsa autonoma in scala 1:18 progettata da Amazon per gli sviluppatori, per testare i modelli di Reinforcement Learning su una pista fisica.

Trading e finanza

Quando vendere e comprare massimizzando il margine? Gli algoritmi di reinforcement learning possono essere usati per sfruttare il momento migliore in cui agire sul mercato azionario.

Robotica

Il reinforcement learning può essere utilizzato per addestrare i robot nei diversi compiti assegnati: è particolarmente diffusa una variante dell’algoritmo QLearning, il QT-Opt.

Industrial robotics and deep reinforcement learning

Industrial robotics and deep reinforcement learning

Guarda questo video su YouTube

Valuta la qualità di questo articolo

La tua opinione è importante per noi!

Articoli correlati