Che cos’è il Reinforcement Learning?
3 cose da sapere
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
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.
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.
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.
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.
Il workflow generale per addestrare un agente utilizzando il Reinforcement Learning include le seguenti fasi:
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.
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.
Gli algoritmi di Reinforcement Learning possono essere organizzati in diverse categorie in base ai loro approcci all’apprendimento e al processo decisionale.
Esistono tre principali classi di algoritmi di Reinforcement Learning:
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.
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.
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.
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.
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.
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.
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.
Il Reinforcement Learning è una tecnica estremamente efficace, ma presenta anche diverse sfide. Eccone alcune.
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.
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:
Creazione interattiva di un agente di Reinforcement Learning con l’app Reinforcement Learning Designer (cfr. documentazione).
Creazione interattiva di un agente di Reinforcement Learning con l’app Reinforcement Learning Designer (cfr. documentazione).
Con MATLAB e Simulink è possibile affrontare molte delle sfide tipicamente associate al Reinforcement Learning.
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.
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.
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™.
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.
Un workflow di trasferimento sim2real che utilizza Reinforcement Learning Toolbox e sfrutta tutte le fonti di dati disponibili per migliorare la generalizzazione.
Un workflow di trasferimento sim2real che utilizza Reinforcement Learning Toolbox e sfrutta tutte le fonti di dati disponibili per migliorare la generalizzazione.
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.
Amplia le tue conoscenze consultando la documentazione, gli esempi, guardando video e molto altro ancora.
Scopri argomenti simili comunemente utilizzati con i prodotti MATLAB e Simulink.
Seleziona un sito web
Seleziona un sito web per visualizzare contenuto tradotto dove disponibile e vedere eventi e offerte locali. In base alla tua area geografica, ti consigliamo di selezionare: .
Puoi anche selezionare un sito web dal seguente elenco:
Come ottenere le migliori prestazioni del sito
Per ottenere le migliori prestazioni del sito, seleziona il sito cinese (in cinese o in inglese). I siti MathWorks per gli altri paesi non sono ottimizzati per essere visitati dalla tua area geografica.
Americhe
Europa