Reinforcement Learning

Il deep reinforcement learning è una branca del machine learning che consente di implementare controllori e sistemi di decision-making per sistemi complessi come robot e sistemi autonomi. Il deep reinforcement learning consente di implementare reti neurali profonde in grado di apprendere comportamenti complessi grazie all’addestramento con dati generati dinamicamente dai modelli di simulazione. Non richiede un set di dati, etichettati o non etichettati, di addestramento predefinito: tutto ciò che occorre è un modello di simulazione che rappresenti l’ambiente con cui si interagisce e che si intende controllare.

MATLAB® e Simulink® supportano il flusso di lavoro completo per la progettazione e la distribuzione di un controllore basato sul reinforcement learning. È possibile:

  • Iniziare con il reinforcement learning utilizzando esempi per semplici sistemi di controllo, sistemi autonomi e robotica
  • Vagliare, valutare e confrontare rapidamente i più diffusi algoritmi di reinforcement learning, solo con lievi modifiche al codice
  • Utilizzare reti neurali profonde per definire complesse politiche di reinforcement learning basate su dati di immagini, video e sensori
  • Addestrare le politiche più rapidamente eseguendo più simulazioni in parallelo, sfruttando core locali o il cloud
  • Distribuire controllori di reinforcement learning su dispositivi embedded

Agenti di reinforcement learning

Gli agenti di reinforcement learning includono una politica che esegue una mappatura da uno stato di input a un’azione di output e un algoritmo responsabile dell’aggiornamento di tale politica. Le deep Q-network, il modello actor-critic e i deep deterministic policy gradient sono esempi popolari di algoritmi. L’algoritmo aggiorna la politica in modo tale da massimizzare il segnale di ricompensa a lungo termine fornito dall'ambiente.

Le politiche possono essere rappresentate da reti neurali profonde, polinomi e tabelle di lookup. È quindi possibile implementare agenti integrati e personalizzati come oggetti MATLAB o blocchi Simulink.

Per saperne di più

Modellazione ambientale in MATLAB e Simulink

L’addestramento con algoritmi di reinforcement learning è un processo dinamico, poiché l’agente interagisce con l’ambiente circostante. Per applicazioni come la robotica e i sistemi autonomi, eseguire un simile addestramento nel mondo reale con hardware reale può essere costoso e pericoloso. Ciò spiega perché per il reinforcement learning si prediligono modelli virtuali dell’ambiente, che generano dati attraverso simulazioni.

In MATLAB e Simulink è possibile creare un modello del proprio ambiente che descrive le dinamiche del sistema, il modo in cui sono influenzate dalle azioni eseguite dall’agente e una ricompensa che valuta l’efficacia dell’azione eseguita. Questi modelli possono essere di natura continua o discreta e possono rappresentare il sistema a vari livelli di fedeltà. Inoltre, per accelerare l’addestramento è possibile parallelizzare le simulazioni. In alcuni casi, si può essere in grado di riutilizzare i modelli MATLAB e Simulink esistenti del sistema per il reinforcement learning con modifiche minime.

Per saperne di più

Esempi e applicazioni di riferimento

Si può iniziare con il reinforcement learning implementando controllori per problemi come il bilanciamento di un pendolo inverso, la navigazione in un problema di rete globale e il bilanciamento di un sistema cart-pole. È inoltre possibile progettare sistemi per il cruise control adattivo e il mantenimento della corsia per veicoli autonomi. Il reinforcement learning può essere utilizzato anche per applicazioni di robotica, come la pianificazione della traiettoria e per l’insegnamento di comportamenti, come la locomozione.

Per saperne di più