Aldo Agostinelli

Il reinforcement learning è una delle categorie di tecniche di machine learning, ovvero di apprendimento automatico. Vediamo in che cosa consiste e quali scenari prospetta

Per parlare di reinforcement learning è necessario fare qualche passo indietro, e disegnare un veloce affresco che ci aiuti a capire il mondo del machine learning o apprendimento automatico, un processo di apprendimento basato sulle reti neurali che si sviluppa attraverso l’interazione con l’ambiente. Quest’ultimo, infatti, è uno dei cinque ambiti dell’universo in pieno fermento dell’intelligenza artificiale. Gli altri quattro sono computer vision, linguaggio, automazione di processo robotizzata e assistenti virtuali.

Reinforcement learning: partiamo dal machine learning

Il ML, o apprendimento automatico, è il processo attraverso cui gli algoritmi, analizzando insiemi molto corposi di dati, imparano a riconoscere modelli nella realtà tramite ripetute interazioni con l’ambiente. Si tratta di algoritmi particolari, privi di regole e modelli pre-programmati, proprio per essere in grado di adattarsi e trasformarsi attraverso le informazioni che ricavano man mano, costruendo schemi e pattern. Con il ML è possibile identificare schemi che altrimenti sfuggirebbero alla cognizione umana, in modo velocissimo in relazione alla mole di dati da analizzare.

Una decisione algoritmica può essere di classificazione, ossia quando si riconosce un modello, oppure di previsione, quando genera un modello predittivo. Ovviamente queste due capacità lavorano insieme. Pensiamo al caso delle vetture a guida autonoma, che man mano che procedono lungo la strada devono riconoscere gli oggetti e prevederne i movimenti nello spazio.

Cos’è il reinforcement learning

Per tornare all’oggetto di questo articolo, vediamo come il  reinforcement learning sia una delle categoria di tecniche di ML, insieme a supervised (supervisionato) e unsupervised (apprendimento non supervisionato). Se volessimo usare un’immagine, per aiutarci a comprendere, potremmo dire che il reinforcement learning ricalca le dinamiche dell’apprendimento che si instaurano nell’interazione di un essere vivente con l’ambiente circostante, senza insegnanti o tutor, ma per imitazione ed esperienza.  Il RL è dedicato alle decisioni sequenziali, in cui l’azione da svolgere dipende dallo stato attuale del sistema e influisce su quello futuro. A livello computazionale, con un approccio scientifico, si tenta di riprodurre questa modalità di apprendimento.

Come funziona il reinforcement learning

Nel reinforcement learning, l’algoritmo impara per trial and error, ossia tentativi ed errori; non a caso la locuzione, tradotta in italiano, diventa apprendimento con rinforzo. L’algoritmo prova schemi diversi, che testa e mantiene (o scarta) a seconda della loro precisione nel dare risultati. Quando ha trovato lo schema che gli restituisce il più piccolo numero di errori possibile, l’algoritmo ha raggiunto il suo scopo.  Rispetto all’apprendimento supervisionato, il sistema sa qual è la risposta corretta, mentre nel reinforcement learning non c’è una risposta corretta e l’algoritmo decide cosa fare per raggiungere il risultato. Impara dalla sua stessa esperienza.

Possiamo dunque dire che il RL è la scienza che sta dietro al processo del decision-making, ossia di come si decide di prendere una strada anziché un’altra. Si tratta di imparare il comportamento migliore in un certo ambiente per ottenere la massima ricompensa. Dopo ogni singola azione, l’algoritmo riceve un feedback che lo aiuta a determinare se la scelta fatta era corretta, scorretta o neutrale, ossia indifferente. Si tratta di un’ottima tecnica di machine learning per sistemi automatizzati che devono prendere tante piccole decisioni senza che ci sia la guida di un essere umano. Le tipiche applicazioni di RL sono nell’ambito dei giochi, sparatutto giochi di strategia, nel self-driving, nei suggerimenti personalizzati  e della robotica.

Obiettivi ed esempi

L’agent che apprende quindi non è istruito sull’azione da compiere, invece ha una meta da raggiungere e il suo compito è proprio quello di valutare la migliore tra un ventaglio di azioni possibili, calcolando ciascuna ricompensa che deriverà da ciascuna scelta. Un esempio per comprendere meglio questa metodologia di apprendimento potrebbe essere una partita a tris, uno dei giochi più semplici che esista. Il sistema che gioca non conosce il metodo per vincere contro un avversario, dunque ciò che impara lo impara giocando un grande numero di partite. Tutte le probabilità sulla griglia sono valutate con un stato che ha una probabilità di vincita. 1 se riesce a mettere in fila tre dei suoi simboli, 0 se a essere in fila sono le pedine dell’avversario.

Tutte le altre combinazioni hanno valore iniziale di 0,5, perché non si sa se porteranno alla vincita oppure alla perdita. Piano piano, partita dopo partita, l’agent incamererà informazioni che lo porteranno a una modalità di gioco ottimizzata. Questo schema viene replicato anche in giochi con un grandissimo numero di possibili stati, come gli scacchi o il backgammon. È proprio quando aumentano le possibili varianti che capiamo quanto sia potente questo genere di apprendimento.

Diversi algoritmi per il reinforcement learning

Facciamo una veloce panoramica sui vari algoritmi esistenti nel RL. Sulla loro base poi ne vengono costantemente studiati di nuovi.

Programmazione dinamica

Questo tipo di algoritmo può essere usato per programmare al meglio quando l’agent sa tutto dell’ambiente in cui si trova ad operare. Ri-utilizza valori già calcolati per fare il calcolo seguente, in modo da ridurre il numero totale di operazioni. Si tratta in qualche modo del precursore di tutti gli altri algoritmi di RL.

Metodi Monte Carlo

L’agent impara ciò di cui ha bisogno sugli stati e sulle ricompense interagendo con l’ambiente, senza una conoscenza pregressa dell’ambiente. L’agent genera esempi di esperienza e poi, basandosi su una ricompensa media, calcola il valore di uno stato o dopo aver compiuto un’azione sullo stato.

Temporal Difference 

Si tratta di una combinazione dei due algoritmi già illustrati. Questi metodi possono apprendere direttamente dall’esperienza, senza un modello di riferimento come i Monte Carlo. Al contempo però, come nel Dynamic Programming, calcolano le loro stime su valori di ricompensa già appresi.

Q. Learning

Con questo genere di algoritmo è possibile ricavare la strategia ottimale anche se le azioni sono fatte in modo casuale; l’agent infatti impara le azioni da fare dagli stati precedenti e dalle ricompense ricevute dalle azioni precedenti. L’apprendimento dunque è basato sulla massima ricompensa ricevuta per un particolare insieme di azioni nello stato considerato. 

SARSA (State Action Reward State Action)

Una versione modificata del Q-Learning, senza utilizzare necessariamente la massima ricompensa per calcolare la miglior strategia. L’agent impara le azioni da compiere basandosi sull’insieme attuale di azioni presenti nello stato, senza considerare stati e reward precedenti.

Campi di applicazione di reinforcement learning

Il reinforcement learning può essere usato in diversi ambiti. Partiamo citando Google, che usando questa metodologia è riuscita a controllare gli impianti di climatizzazione nei data center, diminuendo del 40% l’energia utilizzata. Ancora, il RL si applica bene al mondo del marketing e della pubblicità. È possibile utilizzare piattaforme automatizzate che usano gli algoritmi per testare diverse tipologie di advertising sul target selezionato, per individuare la migliore creatività in una serie di proposte e diffonderle al minor costo. Anche come utenti del web possiamo notare che le pubblicità che ci vengono mostrate sono di solito collegate a siti che abbiamo visitato, da cui abbiamo comprato o che sono nello stesso campo di aziende di cui abbiamo consultato il sito. Questo è possibile perché grazie al RL possono associare aziende simili, prodotti e servizi da mostrare maggiormente a certi clienti. 

Come già citato, nella robotica si utilizza per raggiungere l’ottimizzazione in quei casi in cui manca la supervisione umana. L’utilizzo del RL fa diventare i robot sempre più accurati e veloci nel portare a termine compiti nuovi e l’interesse ultimamente si sta accendendo per quanto riguarda quei compiti pericolosi, in cui mandare un essere umano si rivelerebbe rischioso. Le applicazioni più fantascientifiche che sono già realtà in contesti limitati sono il servizio ai tavoli nel ristorante, robot che riconoscono quali scaffali sono più vuoti nei negozi e procedono a fare gli ordini ai fornitori. Ancora, robot che assemblano prodotti, controllano l’esistenza di eventuali difetti, e molto altro ancora.

Nella guida autonoma il RL va a integrare il supervised learning. Nel 2022 uno studio del MIT (Massachusetts Institute of Technology) ha proposto il RL per il controllo dei veicoli autonomi, per ridurre il consumo di carburante e le conseguenti emissioni, in vista del raggiungimento dei traguardi globali di clima e ambiente. Nello studio, sono stati trasmessi ai veicoli a guida autonoma centinaia di istruzioni di accelerazione e decelerazione nei pressi di un incrocio, per ridurre le emissioni. Le prime simulazioni hanno confermato che si potrebbero ridurre del 18% i consumi di carburante e del 25% la CO2.

Ancora, è utilizzato nella gestione delle risorse, nell’ERM (Enterprise Resource Management) dove permette di allocare risorse limitate a diverse attività in modo da aumentare l’efficienza dei sistemi, risparmiando tempo e risorse.

Aldo Agostinelli