Reinforcement Learning

Che cos’è il Reinforcement Learning?

3 cose da sapere

Il Reinforcement Learning è una tecnica di Machine Learning in cui un agente informatico impara a svolgere un’attività tramite ripetute interazioni di tipo “trial-and-error” (eseguite per tentativi ed errori) con un ambiente. Questo approccio all’apprendimento consente all’agente di adottare una serie di decisioni in grado di massimizzare una metrica di ricompensa per l’attività, senza essere esplicitamente programmato per tale operazione e senza l’intervento dell’uomo.

Text Size

Come funziona il Reinforcement Learning

Il meccanismo di addestramento che si cela dietro il Reinforcement Learning riflette molti scenari del mondo reale. Consideriamo, per esempio, l’addestramento degli animali domestici tramite rinforzo positivo.

Illustrazione di un cane che interagisce con un addestratore. Nella terminologia del Reinforcement Learning, il cane è l’agente e l’addestratore fa parte dell’ambiente.

Reinforcement Learning nell’addestramento dei cani.

Illustrazione di un veicolo che impara a parcheggiare autonomamente, con il computer del veicolo come agente del Reinforcement Learning.

Reinforcement Learning nel parcheggio autonomo.

Usando la terminologia del Reinforcement Learning, l’obiettivo dell’apprendimento in questo caso è quello di addestrare un cane (agente) affinché completi un’attività all’interno di un ambiente, che include l’ambiente che circonda il cane e l’addestratore. Prima di tutto, l’addestratore dà un comando o un segnale, che il cane osserva (osservazione). Il cane, poi, risponde con un’azione. Se l’azione si avvicina al comportamento desiderato, l’addestratore probabilmente offrirà una ricompensa, come un croccantino o un gioco; altrimenti, non verrà offerta alcuna ricompensa. All’inizio dell’addestramento, il cane probabilmente risponderà con azioni più casuali, ad esempio rotolandosi al comando “seduto”, in quanto sta cercando di associare delle osservazioni specifiche ad azioni e ricompense. Questa associazione, o mappatura, tra osservazioni e azioni è chiamata politica. Dal punto di vista del cane, l’ideale sarebbe riuscire a rispondere correttamente a ogni segnale, così da ottenere il maggior numero di premi. Quindi, il fine ultimo dell’addestramento tramite Reinforcement Learning consiste nel “regolare” la politica del cane in modo che apprenda i comportamenti desiderati capaci di massimizzare la ricompensa. Al termine dell’addestramento, il cane dovrebbe essere capace di osservare il padrone e di agire in modo appropriato, come sedersi al comando “seduto”, usando la politica interna che ha sviluppato. A questo punto, i premi sono ben accetti ma, in teoria, non dovrebbero più essere necessari.

Tenendo a mente l’esempio dell’addestramento del cane, consideriamo l’attività di dover parcheggiare un veicolo usando un sistema di guida autonoma. L’obiettivo è quello di insegnare al computer del veicolo (agente) a parcheggiare nello spazio corretto con il Reinforcement Learning. Come nel caso del cane, l’ambiente è tutto ciò che si trova all’esterno dell’agente e potrebbe includere la dinamica del veicolo, altri veicoli nelle vicinanze, le condizioni atmosferiche e così via. Durante l’addestramento, l’agente usa le letture provenienti da sensori quali fotocamere, GPS e LiDAR (osservazioni) per generare comandi (azioni) di sterzata, frenata e accelerazione. Per imparare a generare le azioni corrette a partire dalle osservazioni (regolazione della politica), l’agente cerca ripetutamente di parcheggiare il veicolo usando un processo di tipo “trial-and-error” (ovvero di interazioni eseguite per tentativi ed errori). Per valutare l’idoneità di un tentativo e indirizzare il processo di apprendimento può essere fornito un segnale di ricompensa.

Nell’esempio del cane, l’addestramento avviene nel cervello del cane stesso. Nell’esempio del parcheggio autonomo, l’addestramento è gestito da un algoritmo di addestramento. L’algoritmo di addestramento regola la politica dell’agente in base alle letture dei sensori, alle azioni e alle ricompense raccolte. Al termine dell’addestramento, il computer del veicolo dovrebbe essere in grado di parcheggiare usando solo la politica regolata e le letture dei sensori. Tenere presente che entrambi questi esempi sono casi di Reinforcement Learning senza modello, in quanto prevedono interazioni basate su tentativi ed errori con l’ambiente per la generazione dei dati.

I principali componenti del Reinforcement Learning (politica, ambiente, agente, azioni, ricompense e osservazioni) sono formalizzati all’interno di un framework noto come processo decisionale di Markov, che fornisce un modello matematico per il processo decisionale in ambienti caratterizzati da incertezza.

Esplorazione vs sfruttamento

Il compromesso tra esplorazione e sfruttamento è un aspetto fondamentale del Reinforcement Learning e può influenzare in modo significativo la qualità dell’apprendimento. L’idea è la seguente: l’agente dovrebbe sfruttare l’ambiente scegliendo le azioni che consentono di ottenere le ricompense più elevate già note, oppure dovrebbe scegliere azioni che esplorano parti dell’ambiente ancora sconosciute? Le scelte effettuate dall’agente determinano le informazioni che riceve e, di conseguenza, le informazioni da cui può apprendere. Un’eccessiva esplorazione impedisce all’agente di convergere verso una politica efficace. Uno sfruttamento eccessivo può portare l’agente a fermarsi su soluzioni locali e non ottimali. In generale, è opportuno che un agente esplori maggiormente all’inizio dell’apprendimento, quando le informazioni disponibili sono ancora limitate, per poi passare gradualmente a un comportamento prevalentemente orientato allo sfruttamento nelle fasi finali.

Deep Reinforcement Learning

Il Deep Reinforcement Learning combina il Reinforcement Learning e il Deep Learning. Mentre per problemi più semplici una politica sotto forma di tabella di lookup può essere sufficiente, questo approccio non è adatto a gestire problemi di grandi dimensioni o di natura continua. Le reti neurali profonde addestrate con il Deep Reinforcement Learning possono codificare comportamenti complessi, offrendo un approccio alternativo per applicazioni altrimenti intrattabili o più difficili da affrontare con metodi tradizionali. Ad esempio, nella guida autonoma, una rete neurale può sostituire il conducente e decidere come sterzare analizzando simultaneamente più sensori, come le immagini delle telecamere e le misurazioni LiDAR. Senza le reti neurali, il problema verrebbe normalmente suddiviso in parti più piccole, come l’estrazione di feature dalle immagini delle telecamere, il filtraggio delle misurazioni LiDAR, la fusione degli output dei sensori e la presa di decisioni di “guida” basate sugli input dei sensori, operazioni più facilmente risolvibili con rappresentazioni delle politiche tradizionali, come tabelle di lookup o funzioni polinomiali.

Workflow del Reinforcement Learning

Il workflow generale per addestrare un agente utilizzando il Reinforcement Learning include le seguenti fasi:

  1. Creazione dell’ambiente. Prima di tutto è necessario definire l’ambiente all’interno del quale andrà ad operare l’agente di Reinforcement Learning. L’ambiente può essere un modello di simulazione o un sistema fisico reale, ma in genere come primo step si utilizzano gli ambienti simulati perché sono più sicuri e consentono di sperimentare.
  2. Definizione della ricompensa. In seguito, è necessario specificare il segnale di ricompensa che l’agente utilizza per misurare le sue prestazioni rispetto agli obiettivi dell’attività e la modalità di calcolo di questo segnale dall’ambiente. Dare forma alla ricompensa potrebbe essere complicato e, prima di raggiungere il risultato desiderato, potrebbero servire diverse iterazioni.
  3. Creazione dell’agente. A questo punto è necessario creare l’agente, fase che prevede la scelta della rappresentazione della politica (ad esempio, rete neurale o tabelle di lookup) e la scelta e la regolazione dell’algoritmo di addestramento del Reinforcement Learning.
  4. Addestramento e validazione dell’agente. Questa fase prevede la configurazione di opzioni di addestramento (come i criteri di arresto) e l’addestramento dell’agente per regolare la politica. Al termine dell’addestramento occorre ricordarsi di validare la politica addestrata.
  5. Distribuzione della politica. Questa fase prevede la distribuzione della politica addestrata utilizzando, ad esempio, il codice CUDA o C/C++ generato. A questo punto, la politica è un sistema decisionale indipendente.
Fasi del workflow di Reinforcement Learning: ambiente, ricompensa, agente, addestramento dell’agente e distribuzione.

Workflow del Reinforcement Learning.

L’addestramento di un agente tramite Reinforcement Learning è un processo iterativo. Le decisioni e i risultati delle fasi successive potrebbero richiedere il ritorno a una fase precedente del workflow di apprendimento. Se il processo di addestramento non converge verso una politica accettabile entro un lasso di tempo ragionevole, potrebbe essere necessario riesaminare la definizione del problema (dinamiche, osservazioni, azioni), il segnale di ricompensa, l’architettura della politica e gli iperparametri dell’algoritmo prima di procedere a un nuovo addestramento.

Tipi di algoritmi di Reinforcement Learning

Reinforcement Learning, Machine Learning e Deep Learning a confronto

A differenza del Machine Learning con e senza supervisione, il Reinforcement Learning non si affida a un set di dati statici, ma opera in un ambiente dinamico e apprende dalle esperienze raccolte. I punti di dati, o esperienze, vengono raccolti durante l’addestramento tramite interazioni di tipo “trial-and-error” (eseguite per tentativi ed errori) tra l’ambiente e un software (agente). Questo aspetto del Reinforcement Learning è importante in quanto riduce le esigenze in termini di raccolta, pre-elaborazione ed etichettatura dei dati prima dell’addestramento, operazioni invece necessarie nell’apprendimento con e senza supervisione.

Il Deep Learning abbraccia tutti e tre i tipi di Machine Learning; il Reinforcement Learning e il Deep Learning non si escludono reciprocamente. I problemi complessi di Reinforcement Learning spesso si basano su reti neurali profonde e sul Deep Reinforcement Learning.

Illustrazioni di apprendimento con e senza supervisione e di Reinforcement Learning, che mostrano rispettivamente clustering, classificazione e un sistema di percorsi basato su ricompense.

Tre ampie categorie di Machine Learning: apprendimento senza supervisione, apprendimento con supervisione e Reinforcement Learning.

Un diagramma di Venn che illustra tre principali classi di algoritmi di Reinforcement Learning: gli algoritmi basati sul valore e quelli basati sulla politica si sovrappongono per creare gli algoritmi actor-critic.

Le tre principali categorie di algoritmi di Reinforcement Learning.

Algoritmi di Reinforcement Learning

Gli algoritmi di Reinforcement Learning possono essere organizzati in diverse categorie in base ai loro approcci all’apprendimento e al processo decisionale.

Algoritmi di Reinforcement Learning basati sul valore, sulla politica e actor-critic

Esistono tre principali classi di algoritmi di Reinforcement Learning:

  • I metodi basati sul valore consistono nell’apprendimento di una funzione di valore, come la funzione Q, che stima la ricompensa cumulativa attesa per l’esecuzione di una determinata azione in uno stato specifico e la successiva adozione di una specifica politica. L’esempio più noto è il Q-learning. La politica viene ricavata indirettamente dalla funzione di valore selezionando, in ciascuno stato, l’azione con il valore più alto (cioè seguendo un approccio “massimizzante” rispetto alla funzione di valore). I metodi basati sul valore sono generalmente semplici ed efficienti nell’uso dei dati, ma sono limitati a un insieme di azioni discrete di dimensioni ragionevoli (basti considerare quanto sarebbe dispendioso estrarre la politica dalla funzione di valore se lo spazio delle azioni fosse ad alta dimensionalità).
  • I metodi basati sulla politica apprendono direttamente una politica parametrizzata che associa gli stati alle azioni, ottimizzando i parametri della politica per massimizzare le ricompense attese, e funzionano in modo molto simile alla discesa del gradiente tradizionale. Tra gli esempi figurano REINFORCE e altri metodi basati sul gradiente della politica. Questi metodi sono naturalmente adatti a spazi di azione continui o di grandi dimensioni e possono anche apprendere politiche stocastiche, utili per l’esplorazione e la randomizzazione del dominio. I metodi basati sulla politica presentano alcuni svantaggi, tra cui apprendimento lento e instabile, inefficienza nell’uso dei dati e sensibilità ai minimi locali.
  • I metodi actor-critic combinano i punti di forza degli approcci basati sul valore e sulla politica. L’actor aggiorna direttamente la politica, mentre il critic valuta le azioni stimando le funzioni di valore. Il feedback del critic consente un aggiornamento più stabile ed efficiente riducendo la varianza nelle stime del gradiente della politica. Inoltre, avere una rappresentazione diretta della politica (actor) aiuta a gestire problemi con spazi di azione continui o ad alta dimensionalità. Il principale svantaggio di questi metodi è il maggior numero di parti mobili da implementare e regolare (actor e critic). Esempi di algoritmi actor-critic includono Deep Deterministic Policy Gradient (DDPG), Proximal Policy Optimization (PPO) e Soft Actor-Critic (SAC).
Quattro passaggi principali di un algoritmo di Reinforcement Learning actor-critic: 1) L’actor sceglie un’azione 2) Il critic effettua una previsione del valore di quell’azione 3) Il critic si aggiorna utilizzando la ricompensa ottenuta applicando quell’azione 4) L’actor si aggiorna sulla base del feedback fornito dal critic.

Funzionamento del Reinforcement Learning actor-critic.

Algoritmi di Reinforcement Learning Model-Based e senza modello

Il Reinforcement Learning Model-Based costruisce o utilizza un modello delle dinamiche dell’ambiente (probabilità di transizione e funzioni di ricompensa) per pianificare e prendere decisioni. La parola chiave è “pianificare”: questi algoritmi richiedono tipicamente interazioni minime con l’ambiente, poiché si basano sul modello interno per simulare stati futuri. Il modello interno può essere fornito a priori (nel qual caso l’agente non deve interagire affatto con l’ambiente) oppure può essere appreso dai dati raccolti tramite interazioni con l’ambiente reale. Il Reinforcement Learning Model-Based è generalmente più efficiente nell’uso dei dati rispetto a quello senza modello, poiché il modello può essere utilizzato per generare rapidamente grandi set di dati di addestramento. Tuttavia, a seconda che il modello interno sia disponibile o appreso, i metodi Model-Based possono richiedere molte più risorse computazionali rispetto ai metodi senza modello perché, oltre ad addestrare l’agente principale, devono anche addestrare il modello dell’ambiente e generare i dati di addestramento.

A differenza degli algoritmi Model-Based, i metodi senza modello non costruiscono un modello esplicito dell’ambiente, ma apprendono le azioni ottimali tramite interazione diretta, basandosi su tentativi ed errori (come negli esempi di addestramento dei cani e parcheggio automatico trattati nella sezione precedente). Questo approccio è più semplice e adatto ad ambienti ad alta dimensionalità o non strutturati, sebbene sia tipicamente meno efficiente nell’uso dei dati. La maggior parte degli algoritmi di Reinforcement Learning all’avanguardia è senza modello.

Algoritmi di Reinforcement Learning online vs. offline

Il Reinforcement Learning online prevede un agente che interagisce attivamente con l’ambiente durante l’apprendimento, raccogliendo esperienze, aggiornando la propria politica e adattandosi continuamente man mano che vengono acquisiti nuovi dati. Gli esempi di addestramento dei cani e parcheggio automatico descritti in precedenza illustrano questo approccio.

Al contrario, il Reinforcement Learning offline (o in batch) apprende esclusivamente da un insieme statico di esperienze registrate (ad esempio da dimostrazioni umane o da politiche passate), senza ulteriori interazioni con l’ambiente. I metodi offline sono particolarmente adatti quando l’interazione reale è dispendiosa o pericolosa e possono estrarre informazioni utili anche da dati casuali o non qualificati, sebbene la qualità dell’apprendimento sia generalmente inferiore rispetto a quella ottenuta da dati qualificati o più strutturati. In pratica, il Reinforcement Learning offline è spesso una buona opzione per pre-addestrare una politica prima di passare al Reinforcement Learning online, che, pur essendo meno efficiente nell’uso dei dati, tende a ottenere prestazioni superiori grazie all’adattamento continuo basato su nuovi dati.

Algoritmi di Reinforcement Learning on-policy vs. off-policy

Gli algoritmi di Reinforcement Learning on-policy aggiornano e valutano la stessa politica utilizzata per generare i dati di addestramento, il che significa che l’agente apprende il valore della politica attuale basandosi sulle proprie azioni effettive (ad esempio, SARSA, PPO, TRPO). Questo approccio tende a garantire aggiornamenti più stabili e affidabili, poiché non è necessario conciliare le differenze tra politica comportamentale e politica target, come avviene nei metodi off-policy. Poiché viene mantenuta e aggiornata una sola politica, questi metodi presentano anche una complessità computazionale inferiore.

I metodi off-policy (ad esempio, Q-learning, DQN), invece, sfruttano dati raccolti da una politica (la “behavior policy”) per apprendere o migliorare una diversa politica target (come una strategia massimizzante o ottimale). Di conseguenza, possono memorizzare esperienze passate (dati) in un replay buffer e riutilizzarle più volte. Questo migliora notevolmente l’efficienza nell’uso dei dati rispetto ai metodi on-policy, che scartano i dati dopo ogni aggiornamento della politica. Un altro vantaggio dei metodi off-policy è che possono apprendere da qualsiasi politica, inclusi dati casuali, obsoleti o generati dall’uomo. Questa flessibilità consente di eseguire l’addestramento anche a partire da set di dati offline o dimostrazioni.

Algoritmi di Reinforcement Learning basati sul gradiente vs. evolutivi

Gli algoritmi basati sul gradiente rappresentano lo strumento principale di molti algoritmi contemporanei di Deep Reinforcement Learning, poiché sfruttano stime rumorose del gradiente della politica (tramite retropropagazione), consentendo un apprendimento rapido ed efficiente nell’uso dei dati. D’altra parte, sono sensibili agli iperparametri, soggetti a minimi locali e richiedono differenziabilità.

Il Reinforcement Learning evolutivo, al contrario, considera la politica come una scatola nera ed è uno strumento efficace quando i gradienti non sono disponibili o non sono affidabili, quando si dispone di risorse di calcolo parallelo molto estese o quando è necessaria un’esplorazione approfondita in spazi di ricerca complessi. Le strategie evolutive ricercano soluzioni a livello globale tramite mutazioni e selezioni basate su popolazioni, garantendo robustezza anche in presenza di segnali di ricompensa scarsi o non differenziabili, sebbene risultino molto meno efficienti nell’uso dei dati e convergano più lentamente.

Le tecniche ibride permettono sempre più di sfruttare il meglio di entrambi gli approcci: utilizzano l’evoluzione per l’esplorazione e la ricerca globale, quindi raffinano le politiche promettenti con aggiornamenti basati sul gradiente, ottenendo spesso prestazioni complessive superiori.

Algoritmi di Reinforcement Learning tabellari vs. basati su reti neurali

Il tipo di problema in questione spesso determina quale tipo di algoritmo sia più appropriato. Se gli spazi di stato e azione dell’ambiente sono discreti e di dimensioni ridotte, è possibile utilizzare una semplice tabella per rappresentare le politiche. Q-learning e SARSA sono gli esempi più comuni di algoritmi tabellari. Tuttavia, rappresentare i parametri della politica in una tabella non è praticabile quando il numero di coppie stato/azione diventa elevato o infinito. Questo fenomeno è noto come maledizione della dimensionalità, ed è qui che entrano in gioco le reti neurali. In generale, la maggior parte degli algoritmi moderni di Reinforcement Learning si basa su reti neurali, poiché sono particolarmente adatte a gestire spazi di stato/azione ampi e problemi complessi.

Algoritmi di Reinforcement Learning a singolo agente vs. multi-agente

Nel Reinforcement Learning a singolo agente, un solo agente interagisce con l’ambiente, rendendo l’apprendimento più semplice, stabile e facile da analizzare. Al contrario, il Reinforcement Learning multi-agente (MARL) coinvolge più agenti che interagiscono nello stesso ambiente. Poiché gli agenti si influenzano a vicenda, l’ambiente diventa non stazionario, violando le assunzioni di Markov e destabilizzando i processi di apprendimento. Sebbene il MARL possa risolvere compiti più complessi e sviluppare comportamenti emergenti come coordinazione o negoziazione, presenta anche sfide significative, tra cui problemi di convergenza, elevati requisiti computazionali e instabilità quando ciascun agente si aggiorna in modo indipendente.

Vantaggi e sfide del Reinforcement Learning

Vantaggi del Reinforcement Learning

Sebbene il Reinforcement Learning non sia un concetto nuovo, i recenti progressi nel Deep Learning e nella potenza di calcolo hanno reso possibile ottenere risultati straordinari nel campo dell’intelligenza artificiale.

Ecco alcuni dei vantaggi del Reinforcement Learning.

  • Capacità di risolvere attività complesse e sequenziali. Il Reinforcement Learning può imparare a ottimizzare obiettivi a lungo termine su più passaggi, offrendo un’alternativa per affrontare problemi difficili da risolvere con metodi tradizionali. Il Deep Reinforcement Learning può inoltre generare soluzioni end-to-end utilizzando sensori avanzati o complessi, sfruttando le capacità rappresentazionali delle reti neurali.
  • Minore dipendenza dai dati etichettati. A differenza dell’apprendimento con supervisione, il Reinforcement Learning può apprendere direttamente dai feedback dell’ambiente tramite ricompense e penalità, riducendo la necessità di costosi set di dati etichettati.
  • Minore necessità di set di dati preesistenti. Il Reinforcement Learning impara tipicamente dai dati generati in tempo reale, ma ciò non significa che non possa utilizzare set di dati esistenti. Anzi, a differenza dell’apprendimento con supervisione, il Reinforcement Learning offline può estrarre informazioni utili anche da dati non qualificati o da dati che non codificano direttamente il comportamento desiderato da apprendere.
  • Adattabilità, autocorrezione e robustezza. Il Reinforcement Learning affina continuamente il comportamento tramite tentativi ed errori, consentendo agli agenti di rivedere le strategie sulla base delle prestazioni anche dopo la distribuzione. Inoltre, è progettato per gestire condizioni non deterministiche, in cui i risultati sono imprevedibili, risultando particolarmente adatto alla complessità del mondo reale.

Sfide del Reinforcement Learning

Il Reinforcement Learning è una tecnica estremamente efficace, ma presenta anche diverse sfide. Eccone alcune.

  • Barriera d’ingresso elevata. Il Reinforcement Learning spesso presenta una barriera d’ingresso elevata a causa della complessità degli algoritmi e dei relativi concetti.
  • Elevati requisiti di dati e calcolo (inefficienza dei campioni). L’addestramento richiede spesso grandi quantità di dati, il che comporta numerose interazioni o simulazioni. Di conseguenza, non è raro che problemi complessi richiedano giorni di addestramento per raggiungere la convergenza.
  • Elevato numero di parametri di progettazione. Il Reinforcement Learning prevede numerosi iperparametri da ottimizzare, come il segnale di ricompensa, l’architettura della rete neurale e gli iperparametri specifici dell’agente. Anche piccole modifiche a questi parametri possono influenzare drasticamente le prestazioni di addestramento, richiedendo spesso più tentativi per ottenere una politica accettabile.
  • Difficoltà di generalizzazione e trasferimento. Gli agenti spesso faticano a comportarsi correttamente al di fuori degli scenari di addestramento o a trasferire in modo efficace l’apprendimento dalla simulazione al mondo reale (il cosiddetto sim2real gap).
  • Problemi di verifica, interpretabilità e debug. Nonostante la potenza del Deep Reinforcement Learning, le reti neurali presentano limitazioni proprie. Le politiche complesse basate su reti neurali sono difficili da spiegare e da diagnosticare, il che riduce la trasparenza. Inoltre, la verifica formale delle reti neurali è ancora un’area aperta, pertanto l’applicazione del Deep Reinforcement Learning ai sistemi fondamentali per la sicurezza risulta particolarmente complessa.

Applicazioni del Reinforcement Learning nei sistemi ingegnerizzati

Negli ultimi anni il Reinforcement Learning è stato impiegato in diversi ambiti, tra cui chatbot basati su intelligenza artificiale e modelli linguistici di grandi dimensioni (LLM), sistemi di raccomandazione, marketing, pubblicità e gaming. Tuttavia, nella maggior parte dei casi, il suo utilizzo per applicazioni di produzione è ancora in fase di valutazione, soprattutto nei sistemi ingegnerizzati. Fortunatamente, i benefici sopra descritti stanno lentamente ma costantemente aprendo la strada all’adozione della tecnologia in diversi settori. Le applicazioni reali del Reinforcement Learning nei sistemi ingegnerizzati rientrano solitamente nelle seguenti aree.

  • Sistemi di controllo avanzati: gestire sistemi non lineari o complessi, o sistemi con feedback da sensori più avanzati, è una sfida e spesso richiede lavoro preliminare aggiuntivo (ad esempio linearizzare il sistema in diversi punti di funzionamento o estrarre feature dai dati dei sensori, come immagini). In questi casi, il Reinforcement Learning può essere applicato direttamente senza lavoro preliminare extra. Le aree di applicazione includono la guida autonoma (ad esempio decisioni di guida basate sugli input delle telecamere) e la robotica (ad esempio insegnare a un braccio robotico a manipolare diversi oggetti per applicazioni di pick-and-place o insegnare a un robot a camminare).
  • Pianificazione: i problemi di pianificazione si presentano nel controllo dei semafori, nel coordinamento delle risorse in fabbrica e in molti altri scenari. Il Reinforcement Learning rappresenta una valida alternativa ai metodi evolutivi per risolvere questi problemi di ottimizzazione combinatoria ad alta dimensionalità.
  • Calibrazione: le applicazioni che richiedono la calibrazione manuale dei parametri, come la calibrazione dell’unità di controllo elettronico (ECU) o del motore, o quelle soggette a errori umani, come l’ottimizzazione della linea di produzione, possono essere particolarmente adatte al Reinforcement Learning.
  • Problemi avversari: nel Machine Learning, le applicazioni avversarie si basano su input creati appositamente (detti esempi avversari) per sfruttare le vulnerabilità di altri modelli, sistemi o ambienti. Un esempio di Reinforcement Learning avversariale sarebbe progettare un agente che verifica le politiche cercando di “rompere” un’altra politica (o un altro algoritmo) per identificare controesempi e valutare le vulnerabilità del sistema. Il Reinforcement Learning avversariale è particolarmente utile anche nelle applicazioni di sicurezza informatica, dove può essere utilizzato per simulare attacchi per testare le difese e viceversa.
  • Ottimizzazione di progettazione: un’area che può trarre grande beneficio dal Reinforcement Learning è l’ottimizzazione di progettazione basata su simulazioni, soprattutto se queste ultime sono costose. Gli agenti di Reinforcement Learning possono esplorare lo spazio di progettazione in modo intelligente, riducendo la quantità di dati di addestramento e di simulazioni necessarie. Esempi specifici includono la progettazione di radar e l’ottimizzazione del posizionamento dei chip.

MATLAB®, Simulink® e Reinforcement Learning Toolbox™ semplificano le attività di Reinforcement Learning. È possibile implementare controller e algoritmi decisionali seguendo passo dopo passo l’intero workflow del Reinforcement Learning all’interno dello stesso ecosistema. Nello specifico, è possibile:

  1. Creare ambienti di addestramento e segnali di ricompensa in MATLAB e Simulink. Interfacciarsi facilmente con gli ambienti creati tramite funzioni MATLAB e blocchi Simulink.
  2. Creare politiche basate su reti neurali in modo programmatico o interattivo utilizzando Deep Network Designer. In alternativa, è possibile utilizzare tabelle di lookup e polinomi.
  3. Cambiare, valutare e confrontare gli algoritmi basati sul valore, sulla politica e actor-critic più conosciuti come DQN, DDPG, PPO e SAC con solo piccole modifiche al codice, oppure creare un algoritmo personalizzato. Provare diversi approcci di addestramento pronti all’uso, come Reinforcement Learning a singolo agente o multi-agente, basato sul gradiente o evolutivo, online o offline, e Model-Based o senza modello.
  4. Progettare, addestrare e simulare agenti in modo interattivo utilizzando l’app Reinforcement Learning Designer.
  5. Distribuire le politiche di Reinforcement Learning su sistemi di produzione e dispositivi embedded (utilizzando strumenti di generazione automatica di codice). Se necessario, ridurre l’ingombro di memoria delle politiche basate su reti neurali tramite tecniche di compressione prima della distribuzione.
Schermata dell’app Reinforcement Learning Designer che mostra le finestre interattive per la configurazione degli iperparametri dell’agente.

Creazione interattiva di un agente di Reinforcement Learning con l’app Reinforcement Learning Designer (cfr. documentazione).

Come affrontare le sfide più comuni del Reinforcement Learning con MATLAB e Simulink

Con MATLAB e Simulink è possibile affrontare molte delle sfide tipicamente associate al Reinforcement Learning.

Barriera d’ingresso elevata

Familiarizza rapidamente con il Reinforcement Learning: prova algoritmi pronti per l’uso (senza doverli sviluppare tu stesso), consulta esempi di riferimento per capire come impostare il tuo problema e approfondisci tramite risorse di apprendimento e corsi di formazione gratuiti.

Elevati requisiti di dati e calcolo (inefficienza dei campioni)

Con Parallel Computing Toolbox™ e MATLAB Parallel Server™ puoi addestrare più rapidamente le politiche di Reinforcement Learning sfruttando più GPU e CPU, cluster di computer e risorse Cloud. Ad esempio, puoi generare dati di addestramento più rapidamente eseguendo più simulazioni in parallelo e accelerare l’apprendimento velocizzando i calcoli del gradiente.

Reinforcement Learning Toolbox offre inoltre funzionalità per il Reinforcement Learning Model-Based, che possono migliorare l’efficienza nell’uso dei dati.

Gli agenti Model-Based Policy Optimization (MBPO) possono risultare più efficienti nell’uso dei dati rispetto agli agenti senza modello, poiché il modello può generare grandi set di esperienze diverse.

Diagramma che mostra come il problema possa essere eseguito su più macchine utilizzando il calcolo parallelo per accelerare il Reinforcement Learning e ottenere più rapidamente una politica ottimale.

Addestramento di un problema di apprendimento poco efficiente nell’uso dei dati sfruttando il calcolo parallelo.

Elevato numero di parametri di progettazione

Reinforcement Learning Toolbox consente di ridurre il numero di iperparametri da regolare manualmente. Ad esempio, puoi creare agenti senza dover specificare manualmente l’architettura delle politiche basate su reti neurali e puoi ottimizzare gli iperparametri dell’agente in modo interattivo utilizzando l’ottimizzazione bayesiana nell’app Reinforcement Learning Designer. Inoltre, puoi generare automaticamente le funzioni di ricompensa se disponi già delle specifiche di Model Predictive Control Toolbox™ o dei vincoli prestazionali definiti tramite i blocchi di verifica dei modelli di Simulink Design Optimization™.

Difficoltà di generalizzazione e trasferimento

Le simulazioni sono fondamentali nel Reinforcement Learning. Grazie alla stretta integrazione con Simulink, è possibile migliorare con facilità la generalizzazione delle politiche tramite la randomizzazione del dominio, addestrando gli agenti su diversi scenari, anche in condizioni estreme o pericolose che sarebbero difficili e rischiose da ricreare nel mondo reale.

Con Reinforcement Learning Toolbox, puoi sfruttare tutte le fonti di dati disponibili per migliorare la generalizzazione e ridurre il sim2real gap. Il Reinforcement Learning offline consente di pre-addestrare una politica utilizzando dati esistenti (ad esempio dati provenienti dall’hardware target). Successivamente, puoi perfezionare la politica addestrandola in un ambiente simulato e applicando la randomizzazione del dominio per renderla robusta rispetto a fattori e scenari incerti. Per garantire che il modello di simulazione rappresenti accuratamente il sistema reale, puoi ricorrere all’identificazione di sistemi. L’ultima fase del processo consiste nel perfezionare la politica addestrata addestrandola direttamente sull’hardware reale, se necessario. Sebbene includere l’hardware reale nel ciclo di addestramento sia normalmente rischioso, se non addirittura pericoloso, le prime due fasi di questo workflow assicurano che il numero di interazioni con il sistema fisico necessarie per l’ottimizzazione della politica sia ridotto al minimo. Questa funzionalità può essere utilizzata anche in applicazioni in tempo reale.

Diagramma che mostra il Reinforcement Learning offline, l’identificazione di sistemi e l’addestramento eseguito direttamente su sistemi hardware reali.

Un workflow di trasferimento sim2real che utilizza Reinforcement Learning Toolbox e sfrutta tutte le fonti di dati disponibili per migliorare la generalizzazione.

Problemi di verifica, interpretabilità e debug

Il Reinforcement Learning è spesso caratterizzato da “errori silenziosi”: problemi nascosti e difficili da individuare che possono emergere durante l’addestramento o l’esecuzione. Reinforcement Learning Toolbox ti consente di registrare e visualizzare i principali dati di addestramento, facilitando l’analisi e il debug.

Interpretabilità e verifica sono ancora aree di ricerca aperte, soprattutto per quanto riguarda le reti neurali. Deep Learning Toolbox™ offre diversi metodi di visualizzazione, una tecnica di interpretabilità che spiega le predizioni della rete tramite rappresentazioni visive di ciò che la rete sta analizzando. Un altro approccio è la logica fuzzy: addestrare un sistema di inferenza fuzzy (FIS) per replicare il comportamento di una politica di Reinforcement Learning consente di utilizzare le regole del FIS per spiegare il comportamento della politica.

La verifica basata sulla simulazione è l’approccio più comunemente utilizzato per testare le politiche di Reinforcement Learning ed è facilmente realizzabile con Simulink. Con la progettazione Model-Based, la verifica basata sulla simulazione può essere ampliata con i metodi tradizionali di verifica e validazione; ad esempio, puoi formalizzare i requisiti della politica e analizzarne coerenza, completezza e correttezza con Requirements Toolbox™. Inoltre, puoi valutare determinate proprietà delle politiche basate su reti neurali, come robustezza e limiti dell’output, utilizzando i metodi formali forniti da Deep Learning Toolbox Verification Library.

Un ultimo aspetto da considerare è che scomporre un problema complesso in problemi secondari più piccoli può aiutare a gestire tutte le sfide descritte in questa sezione: il debug e l’interpretabilità diventano più agevoli (un problema più piccolo richiede solitamente un’architettura di politica più semplice) e i requisiti di verifica possono essere ridotti. In questi casi, il Reinforcement Learning può essere combinato con metodi tradizionali (di controllo). L’idea principale di questa architettura è che i metodi verificabili o tradizionali possano essere utilizzati per affrontare gli aspetti del problema fondamentali per la sicurezza, mentre le politiche di Reinforcement Learning black-box possono gestire componenti di livello superiore e potenzialmente meno critici. Altre architetture da considerare includono approcci ibridi, in cui un metodo tradizionale opera in parallelo al Reinforcement Learning, oppure in cui il Reinforcement Learning completa o corregge un metodo tradizionale. MATLAB semplifica il processo di implementazione di queste architetture: oltre al Reinforcement Learning e ai metodi basati su IA, puoi accedere a numerosi metodi tradizionali pronti all’uso e combinarli all’interno di un’unica piattaforma di simulazione, Simulink.

Diagramma a blocchi che combina il Reinforcement Learning con un controller tradizionale.

La combinazione del Reinforcement Learning con metodi tradizionali può facilitarne l’applicazione a sistemi fondamentali per la sicurezza.