Approfondimenti

Reinforcement learning: cos’è, significato ed esempi

Quello che distingue questo dagli altri tipi di apprendimento del machine learning è il concetto di apprendimento tramite l’interazione. L’agente che apprende non viene istruito sull’azione da compiere, ma deve valutare la migliore tra un insieme di azioni, considerando la miglior ricompensa derivante da ognuna di esse effettuate nell’ambiente specifico

Pubblicato il 31 Ago 2022

Paolo Dotti

Quence - TXTGROUP

reinforcement learning

La prima idea di apprendimento che si ha è quella di imparare attraverso l’interazione con l’ambiente circostante; in natura gli esseri viventi imparano senza avere un riferimento a un insegnante, ma per imitazione ed esperienza. A livello computazionale, con un approccio scientifico, si cerca di riprodurre questa modalità di apprendimento automatico focalizzandosi sul risultato da raggiungere e sull’interazione; si cerca un approccio diverso da altri del machine learning. Parliamo di reinforcement learning (RL), o apprendimento per rinforzo, come di una modalità per apprendere quale sia la migliore azione da compiere in modo da massimizzare una ricompensa. La restituzione di una ricompensa come effetto dell’azione è il “rinforzo” di questa modalità di apprendimento che, come si vedrà in seguito, è ben diversa dai molto popolarti e usati apprendimento supervisionato e apprendimento non supervisionato nel machine learning. Quello che distingue il reinforcement learning dagli altri tipi di apprendimento del machine learning è il concetto di apprendimento tramite l’interazione.

Che cos’è e come funziona il reinforcement learning

L’agente (agent) che apprende non viene istruito sull’azione da compiere, ma deve valutare la migliore tra un insieme di azioni, considerando la miglior ricompensa (reward) derivante da ognuna di esse effettuate nell’ambiente specifico (environment). Non possiamo trasferire all’agente le informazioni su come eseguire determinate azioni, ma possiamo solo specificare cosa vogliamo che realizzi, la meta da raggiungere. In altre parole, in base al risultato di una specifica azione (action) possiamo determinare la ricompensa derivante dal successo o dal fallimento dell’agent. Questa caratteristica rende il RL molto interessante e adatto per gestire sistemi complessi ove sia necessario prendere delle decisioni per far evolvere il sistema con una serie di passi che spesso sono sconosciuti o difficili da definire. Le tipiche applicazioni del RL sono nei giochi e nella robotica.

Nella figura è rappresentato uno schema di RL per ambienti che evolvono a intervalli di tempo finiti (t, t+1, t+2, …); ad ogni passo anche con una stessa azione la ricompensa può essere diversa a seconda dello stato in cui si trova il sistema.

Figura 1 – da “Reinforcement Learning with Open AI, Tensorflow and Keras using Python” – A.Nandy, M.Biswas.

Reinforcement learning: l’esempio del tris

Per essere più pratici consideriamo un gioco, molto semplice e con poche regole, il tris. Supponiamo che non sia disponibile a priori la metodologia per vincere e che non sia disponibile un metodo evoluzionistico in cui a ogni configurazione della griglia è nota la mossa da fare per vincere. Con questi presupposti il sistema che gioca a tris contro un avversario impara a giocare e ricava le informazioni che abbiamo supposto non disponibili giocando molte partite. L’agent usa il simbolo X, l’avversario il simbolo O. Nel gioco tutte le possibili combinazioni nella griglia 3×3 con X e O sono valutate con uno stato che ha una probabilità di vincita, 0 se ci sono tre O in fila, 1 se ci sono tre X in fila, 0.5 come valore iniziale in tutte le altre, per non sapere se portano alla perdita o alla vincita. Nelle prime partite l’agent, sulla base del valore complessivo dello stato, sceglierà la mossa col valore corrispondente più alto e correggerà i valori di probabilità di ogni stato della griglia di gioco con una stima più accurata della probabilità di vincita. Così, partita dopo partita, l’agent convergerà alla modalità di gioco ottimale. In questo semplice esempio troviamo i tratti fondamentali del RL:

  • l’apprendimento per interazione con il sistema che in questo caso è l’altro giocatore;
  • c’è uno scopo preciso, la vincita della partita;
  • la policy che a fronte di uno stato rilevato, la mossa dell’avversario, determina una reazione dell’agent, la mossa successiva;
  • c’è una ricompensa che a ogni mossa possibile fornisce un numero che rappresenta lo stato del sistema;
  • c’è il valore finale della partita, vinta o persa, costituito dalle ricompense a ogni mossa; per ogni disposizione di X e O durante la partita c’è un valore che determina partendo da tale disposizione, quale sarà la ricompensa finale.

L’ esempio del tris è molto semplice, ha un numero di stati relativamente ridotto e potrebbe far pensare che il RL sia limitato o si applichi solo ai giochi di strategia contro un avversario; in realtà si applica anche a molti altri scenari. Il RL non è limitato a contesti in cui il sistema evolve con stati distinti a intervalli di tempo, può essere applicato anche a problemi con evoluzione continua nel tempo. Il RL può essere applicato a sistemi con una enorme quantità di stati, anzi è proprio in tali contesti che esprime tutta la sua potenza ed efficacia: più il numero di stati è elevato e più è difficile esplorare anche solo una frazione di tutti gli stati possibili; un esempio di questo si ha ancora da un gioco, il backgammon che ha circa 1020 disposizioni di pedine sulla tavola. Nel gioco si è ipotizzata una conoscenza nulla iniziale, ma il RL prevede anche che una base di istruzioni iniziale possa essere incorporata in modo da rendere più efficiente l’apprendimento successivo. Il RL può avere un modello del gioco o dell’ambiente in modo da poter conoscere gli stati successivi derivanti da ogni possibile mossa o azione; è possibile valutare una strategia su diversi possibili stati. Comunque, non è necessario disporre di un modello, ma se questo è presente deve essere accurato perché sia utile e in tal caso permette di effettuare previsioni su come cambierà l’ambiente in risposta a mosse o azioni che potrebbero non essere mai fatte.

Reinforcement learning: approfondimento tecnico

Come in altri tipi di apprendimento, il RL è fatto di algoritmi e ha fondamenta matematiche. Nel RL si usano i Markov Decision Processes (MDP) per definire l’interazione tra l’agent che apprende e il suo ambiente, in termini di stati, azioni, ricompense. Un Markov Decision Process è la formalizzazione classica di decisioni sequenziali in cui le azioni non influenzano solo la singola ricompensa ma anche gli stati successivi e le future ricompense. Un MDP è una formalizzazione matematica di problemi di RL in cui si possono fare precise assunzioni teoriche. Con i MDP si riescono a formalizzare i concetti di causa ed effetto, incertezza e non determinismo, esistenza di uno scopo esplicito, funzione che fornisce il valore di uno stato dell’ambiente e transizione di stato.

Nel RL ci sono diversi algoritmi sulla cui base ne vengono sviluppati di nuovi dai gruppi di ricerca. I più noti sono i seguenti.

  • Dynamic programming: fa riferimento alla capacità di calcolare le policy ottimali partendo da un modello dell’ambiente descritto da un MDP. Sono molto importanti a livello teorico ma richiedono alti sforzi computazionali. Con metodi iterativi vengono valutate le funzioni di policy e di ricompensa partendo da ogni stato del sistema.
  • Metodi Monte Carlo: sono metodi che richiedono solo esperienza; apprendere da un’esperienza attuale non richiede conoscenza pregressa della dinamica dell’ambiente. Per i casi in cui non è disponibile un modello dell’ambiente, i metodi Monte Carlo sono basati sul campionare e mediare la risposta di ogni coppia azione-stato; dove è disponibile un modello la stima del solo valore dello stato è sufficiente a determinare la policy o strategia. Spesso il termine Monte Carlo fa riferimento a metodi stocastici di stima, ma non è il caso del RL. Un vantaggio di questi metodi è che possono dare risultati accurati nella valutazione di un sottoinsieme di stati selezionati e possono essere utilizzati con ambienti simulati.
  • Temporal Difference: combina le idee dei due metodi recedenti, Monte Carlo e Programmazione dinamica. I metodi temporal difference, come Monte Carlo, possono apprendere direttamente dall’esperienza e senza un modello di riferimento alla dinamica dell’ambiente; come Dynamic Programming aggiornano le stime su valori di ricompensa già appresi senza attendere il risultato finale dato dalla transizione di stato dell’ambiente.
  • Q-Learning: l’agent apprende le azioni da fare dagli stati precedenti e dalle ricompense ricevute dalle azioni precedenti; l’apprendimento è basato solo sulla massima ricompensa ricevuta per un particolare insieme di azioni nello stato considerato. Diversamente da SARSA, vengono presi in considerazione stati e ricompense precedenti all’istante attuale per le azioni sugli stati a istanti successivi. Questo algoritmo consente di apprendere la strategia ottimale anche se le azioni sono scelte in modo casuale o esplorativo.
  • SARSA (State Action Reward State Action): è una versione modificata dell’algoritmo Q-Learning; l’agent apprende le azioni da compiere in base all’insieme attuale di azioni nello stato attuale; non vengono presi in considerazione stati e ricompense precedenti all’istante attuale. Diversamente dal Q-Learning non viene necessariamente utilizzata la massima ricompensa per aggiornare la strategia di gioco. Il nome SARSA viene dal modo in cui è fatto l’update, usando la quintupla Stato-Azione iniziali, Ricompensa osservata nella nuova coppia Stato-Azione.

Reinforcement learning: a cosa serve e perché è importante

Si utilizzano gli algoritmi di machine learning per migliorare progressivamente l’efficienza di processi e programmi nel tempo; teoricamente il modo più semplice di effettuare ciò è il RL. Un approccio con cui programmi intelligenti sono eseguiti in un ambiente sia conosciuto sia sconosciuto, si adattano in continuo e incrementano sempre il livello di apprendimento. Il feedback dell’ambiente può essere positivo, ricompensa, oppure negativo, penalità. Un punto di forza del RL è la possibilità di creare un agent che agisce partendo anche da una conoscenza iniziale nulla; quindi, non necessita di dataset di addestramento e di conseguenza non è importante se non si riescono a fornire esempi o simulazioni degli stati dell’ambiente, saranno appresi in autonomia. Questo è esattamente il caso di un robot, realizzato da ricercatori dell’Università della California, che ha imparato in un tempo molto breve a muoversi in autonomia senza addestramento preventivo. Il RL consente di risparmiare tempo in pre-addestramento di un sistema, di superare il livello fornito da un simulatore del mondo reale che non sarà mai esaustivo. L’apprendimento è continuo e non legato ai dati, ma migliora con il funzionamento del sistema nel mondo reale; questo è particolarmente interessante nella robotica ove si sfruttano al meglio i vantaggi offerti dal RL. In poche parole, il RL consente a un agent di apprendere superando i limiti della conoscenza umana scoprendo scenari di comportamento dell’ambiente imprevedibili a priori.

Un altro punto di forza del RL è la similarità all’apprendimento naturale basato sull’esperienza e la capacità di applicare l’esperienza acquisita a situazioni nuove non ancora incontrate; è la modalità migliore per la realizzazione di sistemi esperti sempre più simili a un essere umano, forse più efficienti di un essere umano e con applicazione ai campi più disparati delle scienze e della tecnologia. Nell’industria i robot utilizzano il RL per spostare oggetti tra diversi contenitori; in un magazzino posizionano i prodotti in modo da ottimizzare lo spazio di stoccaggio e minimizzare i tempi di transito o permanenza del materiale. Altri settori di ampio utilizzo di algoritmi di RL sono la finanza per le strategie di trading e la gestione dei servizi di consegna prodotti ai clienti. Il RL ha fruttuose integrazioni con la statistica, la teoria del controllo, l’ottimizzazione in ricerca operativa, la psicologia per le mappe cognitive, le neuroscienze per lo studio del comportamento e del controllo basato sulla corrispondenza tra il sistema di ricompensa del cervello e il sistema di ricompensa del RL.

Esempi di reinforcement learning

I giochi e la robotica costituiscono gli esempi migliori e più immediati; in particolare i giochi forniscono tanti contesti isolati e sperimentabili senza criticità per cui costituiscono il campo migliore per studio, sperimentazione e applicazione di una tecnologia. È naturale che le novità e le prime applicazioni del RL provengano da giochi di strategia.

AlphaGo

Come primo esempio vediamo AlphaGo un programma che ha imparato a giocare a Go con migliaia di partite contro giocatori umani; a questo è seguito AlphaGo Zero, il programma che si è auto-addestrato giocando contro una versione di AlphaGo, scoprendo strategie e mosse innovative. Il gioco del Go, per la sua complessità, è considerato una delle maggiori sfide per l’intelligenza artificiale e i risultati ottenuti sono strabilianti e promettenti. È recentissima una pubblicazione in cui si descrive un agent capace di imparare a giocare a “Stratego”, un gioco con un numero di stati di molto superiore al Go e di complessità superiore perché è richiesta la capacità di prendere decisioni a fronte di informazioni non precise.

reinforcement learning

Foto AlphaGo

Il RL è utilizzato anche nel test dei giochi e nella ricerca di bug di applicazioni; la capacità di produrre migliaia di interazioni senza l’intervento umano, di effettuare test di carico, di creare situazioni imprevedibili ne fa uno strumento di punta per la ricerca di bug. Alcune case di produzione giochi utilizzano agent addestrati sull’ambiente del gioco per esplorare e usare nuove tecniche imprevedibili a priori, il tutto in tempi veloci, più efficienti di un tester umano. È d’obbligo specificare che non si tratta del classico test automation dove una persona configura o programma le azioni che un software esegue in automatico in continuo, ma l’agent decide in tempo reale e autonomamente con creatività le azioni da eseguire simulando una popolazione di utenti diversi e scovando molti più bugs nell’intento che possano essere risolti prima del rilascio del gioco.

Robotica

La robotica è forse il settore dove il RL trova vasta applicazione e ormai è quasi necessario per avere risultati competitivi. Le applicazioni attuali sono la programmazione di robot in grado di selezionare autonomamente i prodotti da scartare o con difetti, di effettuare la pulizia di un ambiente senza sapere che tipo di rifiuti ci saranno, di ri-organizzare in maniera ottimale un magazzino, di assemblare prodotti in una catena di montaggio. La sfida è arrivare a programmare robot quasi umani nei movimenti e nelle attività. Applicazioni di questo tipo richiedono l’utilizzo di più algoritmi e metodi di apprendimento, come computer vision e deep learning per interagire con l’ambiente in cui operano.

In un ambito molto vicino alla robotica parliamo di droni, utilizzati per scopi di video sorveglianza fino a interventi di emergenza. I droni devono essere in grado di volare in zone sconosciute con precisione e controllo senza danneggiarsi e senza arrecare danni. Più in generale possono trarre vantaggio dal RL i sistemi di guida autonoma, che con una buona base di apprendimento iniziale garantito da reti neurali e altri algoritmi supervisionati, possono estendere le abilità di interazione con un ambiente che, a causa del traffico, delle condizioni stradali, delle condizioni meteorologiche, degli eventi accidentali, non è mai lo stesso; in queste condizioni il vantaggio tecnologico è ottenere quel livello in più di autonomia e capacità di reazione che rendono il sistema più sicuro. In linea con la guida autonoma, possiamo ipotizzare come utilizzo efficace del RL, la gestione dei semafori in contesti di traffico con forti variazioni; una simile gestione può essere realizzata a diversi livelli progressivamente sempre più complessi ma efficaci: solo con regole logiche, con algoritmi supervisionati utilizzando dataset con simulazioni di traffico, con algoritmi di RL in cui il sistema di gestione si adatta in modo dinamico allo stato dell’ambiente.

Altri esempi

Oltre ai giochi e alla robotica si possono trovare esempi di RL in finanza, in psicologia e in altre discipline. Nel campo della finanza, il trading è un’attività che richiede molta esperienza ed espone a molti rischi; con l’aiuto del RL si possono addestrare dei bot ad agire come traders in un ambiente che richiede freddezza, fermezza, mente lucida e capacità di non cedere alle emozioni. In generale i mercati finanziari rappresentano un settore in cui intelligenza artificiale e machine learning trovano molte applicazioni e in queste si impegnano molti gruppi di ricerca.

Nel campo della psicologia il RL si applica all’apprendimento di associazioni tra stimoli, azioni e l’occorrenza di sensazioni piacevoli o spiacevoli (le ricompense); costituisce un riferimento per esplorare situazioni idealizzate di comportamento umano e animale. Molti concetti basilari del RL sono stati indotti da teorie psicologiche e gli algoritmi hanno contribuito alla comprensione dei modelli di apprendimento negli animali.

Dagli esempi descritti, può sembrare che il RL sia la soluzione a molti problemi applicativi in tutti i contesti possibili del mondo, ma la realtà è che tra i diversi tipi di apprendimento è il meno facile da implementare e può richiedere notevoli risorse. Quando è possibile i risultati sono strabilianti e pagano gli sforzi richiesti.

Machine learning: le differenze con il reinforcement learning

Il machine learning, o apprendimento automatico, racchiude come suoi sottoinsiemi diversi tipi di apprendimento, supervisionato, non supervisionato e per rinforzo; un sottoinsieme del ML è costituito dal deep learning. In questa visione il RL è un tipo di apprendimento automatico del machine learning.

Il RL è differente dal Supervised Learning, il più noto tipo di apprendimento nel ML. Apprendimento supervisionato significa imparare da un insieme di dati già etichettati ovvero degli esempi forniti su cui adattare un modello. Ogni esempio descrive una situazione con la corretta risposta del sistema. Lo scopo è quello di ottenere un modello addestrato su dati noti che dovrà essere in grado di estrapolare risultati corretti e generalizzare in presenza di dati nuovi, non presenti nei dati di esempio. Questa modalità di apprendimento non è adatta all’interazione con un ambiente dove è difficile fornire dei dati (o contesti) di esempio che siano sia corretti sia rappresentativi di tutte le situazioni in cui può trovarsi un agent. Immaginiamo un robot che abbia appreso come muoversi sulla terra e poi venga trasferito su un territorio inesplorato di cui non si conoscono le condizioni ambientali; dovrà essere in grado di imparare a muoversi nel nuovo ambiente secondo le sue esperienze.

Il RL è diverso anche da quello che viene chiamato Unsupervised Learning, molto utile per scoprire strutture nascoste in insiemi di dati non etichettati; i sistemi basati su apprendimento non supervisionato apprendono direttamente dai dati sena bisogno di un dataset di addestramento. Il RL cerca di massimizzare una ricompensa di ritorno da un’azione, non cerca strutture nascoste nei dati; scovare relazioni nascoste tra i dati in uso a un agent non aiuta all’apprendimento nel RL. Per questo il RL viene considerato uno dei paradigmi di apprendimento del ML insieme a Supervised, Unsupervised, Semi-Supervised Learning. L’apprendimento per rinforzo o Reinforcement Learning differisce dagli altri tipi per i seguenti motivi:

  • non utilizza dataset per il training
  • le interazioni avvengono con l’ambiente e non con i dati
  • l’ambiente nel RL è costituito da scenari reali, da scenari simulati o da scenari basati sui giochi
  • il RL copre contesti più ampi e generalizzati perché gli ambienti di applicazione possono essere vasti ed essere definiti da molti parametri
  • l’obiettivo del RL è raggiungere una meta o realizzare un compito
  • le ricompense, positive o negative, provengono dall’ambiente, non dai dati.

Reinforcement learning e deep learning: qual è il collegamento

Nel machine learning, oltre ai metodi di apprendimento citati, troviamo anche il deep learning che può esserne considerato un sottoinsieme particolare basato principalmente sulle reti neurali. Tutti questi tipi di apprendimento spesso vengono combinati per ottenere migliori performance del modello finale.

Il deep learning è molto utile in problemi dove ci sono molti stati e tanti dati di input; questo significa che deep learning e reinforcement learning insieme consentono di risolvere compiti da un lato più complessi e dall’altro lato con un minor livello di conoscenza iniziale, questo per l’abilità di apprendere diversi livelli di astrazione dall’ambiente.

Quando deep learning e reinforcement learning sono utilizzati insieme per costruire agent complessi si parla di Deep Reinforcement Learning (DRL). Un esempio di utilizzo di DRL viene ancora dal programma AlphaGo creato da DeepMind; in questo programma si usano alberi di ricerca e reti neurali. Le reti neurali sono almeno due, una di policy, ovvero per selezionare la mossa successiva nel gioco, un’altra di reward per calcolare il valore di ogni stato e stabilire la probabilità di vincita di ogni disposizione di pedine. La combinazione di queste reti neurali incrementa l’efficienza di addestramento dell’agent che gioca a Go.

Conclusioni

Il RL è una modalità di addestramento di agent nata nel secolo scorso ma attualmente in forte espansione per le promettenti capacità di eguagliare e, per alcuni aspetti, superare la mente umana. Non è tutto così semplice, utilizzare gli algoritmi di RL comporta uno sforzo implementativo notevole; la ricerca è molto attiva in questo settore. Un altro aspetto da sottolineare è che il RL lavora bene insieme agli altri metodi di apprendimento e attinge a tutti gli algoritmi di intelligenza artificiale per ottimizzare le performance. Sarà il metodo vincente per la vera intelligenza artificiale? Cosa ci porterà la tecnologia basata su questi algoritmi? L’abbondanza di applicazioni di successo nel mondo reale non è garanzia di intelligenza artificiale suprema e nonostante gli enormi progressi in molti settori il divario tra intelligenza artificiale e umana è ancora molto grande. Performance sovrumane in un gioco non coprono tutti gli aspetti dell’intelligenza umana.

Valuta la qualità di questo articolo

La tua opinione è importante per noi!

Articoli correlati

Articolo 1 di 3