Reinforcement learning (apprendimento per rinforzo): quando le macchine imparano a pensare
Il reinforcement learning (in italiano, apprendimento per rinforzo) è un sottoinsieme dell’apprendimento automatico, in cui un agente impara, tramite un meccanismo di ricompensa e punizione, a prendere decisioni ottimali in un ambiente. A questo scopo prova azioni diverse e migliora gradualmente il proprio comportamento, così da ottenere nel lungo periodo il massimo beneficio possibile.
- Conformità al GDPR e hosting sicuro in Europa
- Potenti modelli basati sull'intelligenza artificiale
- Assenza di vendor lock-in grazie all'open source
Che cos’è il reinforcement learning?
Tradotto letteralmente, il reinforcement learning significa “apprendimento per rinforzo”. Questo termine descrive un metodo nel campo dell’apprendimento automatico. Insieme all’apprendimento supervisionato e all’apprendimento non supervisionato, l’apprendimento per rinforzo è uno dei tre metodi per addestrare gli algoritmi e gli agenti a prendere decisioni in modo indipendente. L’attenzione è rivolta allo sviluppo di soluzioni intelligenti per problemi di controllo complessi.
A differenza dell’apprendimento supervisionato e di quello non supervisionato, questa opzione di apprendimento dell’apprendimento automatico non richiede alcun dato per il condizionamento. Invece i dati vengono generati con una strategia per tentativi ed errori durante l’addestramento e contrassegnati, allo stesso tempo, con un’etichetta. In questo caso, il programma svolge diversi cicli di addestramento all’interno di un ambiente di simulazione fino a fornire un risultato esatto. Vengono quindi impostati solo degli impulsi a supporto del sistema.
L’obiettivo desiderato di questo addestramento è mettere l’intelligenza artificiale nelle condizioni di risolvere autonomamente problemi di controllo molto complessi senza alcun input umano. Rispetto all’engineering convenzionale, è un metodo più veloce, più efficiente e che fornisce, idealmente, anche il risultato ottimale.
Come funziona l’apprendimento per rinforzo?
Il reinforcement learning descrive numerosi metodi individuali in cui un algoritmo o un agente software apprende autonomamente delle strategie. L’obiettivo è massimizzare le ricompense in un ambiente di simulazione. Il computer esegue un’azione e riceve poi un feedback. L’agente software non riceve in anticipo alcuna informazione su quali azioni siano le più promettenti e deve determinare da solo il proprio approccio tramite una procedura per tentativi ed errori.
Per ottimizzare il successo del processo, il computer riceve in momenti diversi delle ricompense che influenzano le sue strategie. Attraverso questi eventi, l’agente software impara a valutare la sequenza di determinate azioni all’interno dell’ambiente di simulazione.

Per addestrare in modo efficace un sistema di apprendimento per rinforzo, si utilizza spesso il Q-learning. La funzione Q descrive l’utilità futura attesa di una determinata azione in uno stato preciso. L’obiettivo dell’apprendimento per rinforzo è sviluppare una strategia comportamentale ottimale sulla base di queste stime.
Tradizionalmente, nel Q-learning la policy viene rappresentata in una tabella Q, in cui stati e azioni sono elencati in modo esplicito e ogni combinazione contiene un valore per la ricompensa attesa. Tuttavia, questo procedimento è praticabile solo in ambienti fortemente semplificati. Negli scenari moderni con spazi di stati e azioni ampi o continui, la tabella Q viene sostituita da approssimazioni di funzioni. In questo contesto si utilizzano per lo più reti neurali.
Dove e quando si utilizza l’apprendimento per rinforzo?
L’apprendimento per rinforzo viene utilizzato in molti ambiti diversi in cui macchine o sistemi devono prendere decisioni in modo autonomo e imparare dalle proprie esperienze. L’obiettivo è sempre quello di sviluppare strategie migliori e ottimizzare i processi tramite un apprendimento continuo. Tra i principali campi di applicazione rientrano ad esempio:
- Robotica: nell’ambito della robotica, il reinforcement learning aiuta per esempio i robot a imparare movimenti complessi come afferrare, camminare o orientarsi. Invece di programmare manualmente ogni movimento, i robot imparano per tentativi ed errori come svolgere i compiti in modo efficiente. In questo modo possono adattarsi anche a nuovi ambienti o situazioni.
- Sviluppo di giochi e addestramento delle IA: l’apprendimento per rinforzo è diventato famoso grazie ai suoi successi in giochi come scacchi, go o videogiochi. Le intelligenze artificiali imparano, attraverso milioni di simulazioni, a sviluppare strategie ottimali e a superare persino le giocatrici e i giocatori umani.
- Finanza: nel mondo finanziario, questo metodo di apprendimento viene utilizzato per ottimizzare le strategie di trading o gestire automaticamente i portafogli. L’algoritmo impara a reagire ai cambiamenti del mercato e a valutare rischi e rendimenti. In questo modo può prendere decisioni di investimento migliori sul lungo periodo.
- Controllo di sistemi complessi: un altro esempio di reinforcement learning è il controllo di sistemi avanzati come i sistemi di traffico intelligenti. In questo modo fornisce soluzioni intelligenti per il controllo della qualità. Inoltre, l’apprendimento per rinforzo viene utilizzato nelle reti elettriche intelligenti, nell’ottimizzazione delle catene di fornitura in diverse aziende di logistica e nell’automazione delle fabbriche.
- Medicina e ottimizzazione energetica: in ambito medico l’apprendimento per rinforzo supporta i trattamenti personalizzati suggerendo piani terapeutici ottimali. Nel settore dell’energia aiuta a controllare in modo dinamico il consumo e la distribuzione dell’energia, per preservare le risorse e ridurre i costi.
Per semplificare la scrittura di nuovi algoritmi dell’apprendimento per rinforzo esistono diverse librerie. L’azienda DeepMind, specializzata in intelligenza artificiale, ha pubblicato con Acme una libreria specifica per il linguaggio di programmazione Python. Anche la libreria Stable-Baselines3 include già molte implementazioni pronte di algoritmi popolari.

