Reinforcement learning: quando le macchine imparano a pensare
Google investe in molte aree e progetti diversi, soprattutto quando si tratta di tecnologie all’avanguardia. In particolare nel campo dell’intelligenza artificiale (IA), con il progetto Deepmind, il gigante tecnologico ha un’importante carta da giocare. L’obiettivo è quello di sviluppare, con l’aiuto dell’intelligenza artificiale, programmi in grado di risolvere problemi complessi in futuro senza alcuna influenza umana. L’apprendimento per rinforzo fornisce un contributo molto importante all’ulteriore sviluppo dell’IA.
Che cos’è il reinforcement learning?
Tradotto letteralmente, il termine “reinforcement learning” significa “apprendimento per rinforzo”. Questo termine descrive un metodo nel campo dell’apprendimento automatico. Insieme al supervised learning e all’unsupervised learning, il reinforcement learning è uno dei tre metodi per addestrare gli algoritmi a prendere decisioni in modo indipendente. L’attenzione è rivolta allo sviluppo di soluzioni intelligenti per problemi di controllo complessi.
A differenza del supervised learning e dell’unsupervised learning, questa opzione di apprendimento del machine learning non richiede alcun dato per il condizionamento. Nei due metodi citati, i programmi vengono prima alimentati con dati. Questo passaggio è completamente assente nell’apprendimento per rinforzo, dove i dati vengono invece generati con una strategia trial-and-error 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. Dunque, invece di confrontare il sistema con i risultati corretti nel corso dell’addestramento (come nel supervised learning), vengono 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 offre, idealmente, anche il miglior risultato possibile.
La ricerca sul reinforcement learning si basa spesso sull’utilizzo di giochi. I giochi per computer offrono un ambiente perfetto per esplorare e comprendere il reinforcement learning. Nei giochi per computer vengono, generalmente, prestabiliti un ambiente di simulazione, varie opzioni di controllo e anche un grado di influenza sull’ambiente. Inoltre, pongono di solito un problema o compiti complessi nelle varie sezioni del gioco che devono essere risolti. Nella maggior parte dei giochi, ci sono anche sistemi a punti che si avvicinano molto al sistema di ricompensa dell’apprendimento per rinforzo.
Ricercatori di spicco nel campo dell’intelligenza artificiale ritengono che il reinforcement learning sia un metodo molto promettente per raggiungere l’Intelligenza Artificiale Generale che permetterà, in futuro, alle macchina di prendere le proprie decisioni razionali, proprio come un essere umano, e quindi di portare a termine con successo qualsiasi compito. La macchina osserva, apprende e può risolvere i problemi in modo indipendente.
A differenza del supervised learning e dell’unsupervised learning, questa opzione di apprendimento del machine learning non richiede alcun dato per il condizionamento. Nei due metodi citati, i programmi vengono prima alimentati con dati. Questo passaggio è completamente assente nell’apprendimento per rinforzo, dove i dati vengono invece generati con una strategia trial-and-error 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. Dunque, invece di confrontare il sistema con i risultati corretti nel corso dell’addestramento (come nel supervised learning), vengono 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 offre, idealmente, anche il miglior risultato possibile.
La ricerca sul reinforcement learning si basa spesso sull’utilizzo di giochi. I giochi per computer offrono un ambiente perfetto per esplorare e comprendere il reinforcement learning. Nei giochi per computer vengono, generalmente, prestabiliti un ambiente di simulazione, varie opzioni di controllo e anche un grado di influenza sull’ambiente. Inoltre, pongono di solito un problema o compiti complessi nelle varie sezioni del gioco che devono essere risolti. Nella maggior parte dei giochi, ci sono anche sistemi a punti che si avvicinano molto al sistema di ricompensa dell’apprendimento per rinforzo.
Ricercatori di spicco nel campo dell’intelligenza artificiale ritengono che il reinforcement learning sia un metodo molto promettente per raggiungere l’Intelligenza Artificiale Generale che permetterà, in futuro, alle macchina di prendere le proprie decisioni razionali, proprio come un essere umano, e quindi di portare a termine con successo qualsiasi compito. La macchina osserva, apprende e può risolvere i problemi in modo indipendente.
Fondamentalmente, l’obiettivo del reinforcement learning è quello di mettere una macchina nelle condizioni di risolvere problemi complessi senza la necessità di input manuali da parte dell’essere umano attraverso interazioni con l’ambiente e l’applicazione di ciò che ha imparato.
Come funziona il reinforcement learning?
L’apprendimento per rinforzo prevede numerosi metodi individuali in cui un algoritmo o un agente software impara in modo autonomo delle strategie. L’obiettivo è ottenere più ricompense possibile in un ambiente di simulazione. All’interno di questo ambiente di simulazione, il computer esegue un’azione e riceve un feedback. L’agente software non riceve alcuna informazione in anticipo su quale sia l’azione più promettente e deve determinare il proprio approccio con una strategia trial-and-error.
Il computer riceve delle ricompense in momenti diversi che influenzano le sue strategie. In questo modo, l’agente software impara a stimare quali sono le conseguenze di determinate azioni all’interno dell’ambiente di simulazione. Il tutto costituisce quindi la base dell’agente software per sviluppare strategie a lungo termine e massimizzare le ricompense.
Al fine di addestrare correttamente un sistema di apprendimento per rinforzo viene utilizzato l’algoritmo Q-learning. Il nome deriva dalla funzione Q, che calcola il beneficio atteso di un’azione nello stato. L’obiettivo dell’apprendimento per rinforzo è quindi quello di creare la migliore policy possibile. Il termine “policy” indica qui il comportamento appreso dall’agente software, da cui può derivare quale azione deve essere eseguita mediante un comportamento osservato nell’ambiente di apprendimento.
La policy può essere rappresentata in una tabella Q. Le righe contengono tutte le osservazioni possibili mentre le colonne riportano tutte le azioni possibili. Le celle vengono quindi riempite durante l’addestramento con dei valori, che rappresentano la ricompensa attesa.
L’utilizzo della tabella Q è, tuttavia, limitato. La rappresentazione visiva funziona solo in un observation space di piccole dimensioni. Quando le possibilità sono molte, l’agente software deve utilizzare una rete neurale.
Il computer riceve delle ricompense in momenti diversi che influenzano le sue strategie. In questo modo, l’agente software impara a stimare quali sono le conseguenze di determinate azioni all’interno dell’ambiente di simulazione. Il tutto costituisce quindi la base dell’agente software per sviluppare strategie a lungo termine e massimizzare le ricompense.
Al fine di addestrare correttamente un sistema di apprendimento per rinforzo viene utilizzato l’algoritmo Q-learning. Il nome deriva dalla funzione Q, che calcola il beneficio atteso di un’azione nello stato. L’obiettivo dell’apprendimento per rinforzo è quindi quello di creare la migliore policy possibile. Il termine “policy” indica qui il comportamento appreso dall’agente software, da cui può derivare quale azione deve essere eseguita mediante un comportamento osservato nell’ambiente di apprendimento.
La policy può essere rappresentata in una tabella Q. Le righe contengono tutte le osservazioni possibili mentre le colonne riportano tutte le azioni possibili. Le celle vengono quindi riempite durante l’addestramento con dei valori, che rappresentano la ricompensa attesa.
L’utilizzo della tabella Q è, tuttavia, limitato. La rappresentazione visiva funziona solo in un observation space di piccole dimensioni. Quando le possibilità sono molte, l’agente software deve utilizzare una rete neurale.
Dove e quando si utilizza il reinforcement learning?
Una società che utilizza già questo metodo di apprendimento automatico è Google. Il gruppo utilizza il reinforcement learning, ad esempio, per controllare gli impianti di climatizzazione nei data center. L’intelligenza artificiale ha già permesso a Google di risparmiare il 40% dell’energia necessaria per raffreddare i server.
L’apprendimento per rinforzo è utilizzato anche nel controllo di sistemi complessi, come i sistemi di trasporto intelligenti. Il reinforcement learning offre quindi soluzioni intelligenti per monitorare la qualità. Inoltre, viene utilizzato nelle smart grid (reti elettriche intelligenti), nel controllo dei robot, nell’ottimizzazione delle catene di fornitura in aziende logistiche e nell’automazione delle fabbriche.
L’esempio più tangibile di reinforcement learning per il consumatore è, tuttavia, l’assistente di parcheggio. In questo caso, l’intelligenza artificiale viene utilizzata per rilevare gli oggetti e per individuare per il consumatore il modo ottimale di parcheggiare.
Rendere un nuovo algoritmo di apprendimento per rinforzo funzionante richiede numerosi cicli di addestramento, dal momento che l’individuazione delle ricompense può, talvolta, essere rallentata. In futuro, il metodo del reinforcement learning controllerà molti processi e risolverà anche problemi complessi.
L’apprendimento per rinforzo è utilizzato anche nel controllo di sistemi complessi, come i sistemi di trasporto intelligenti. Il reinforcement learning offre quindi soluzioni intelligenti per monitorare la qualità. Inoltre, viene utilizzato nelle smart grid (reti elettriche intelligenti), nel controllo dei robot, nell’ottimizzazione delle catene di fornitura in aziende logistiche e nell’automazione delle fabbriche.
L’esempio più tangibile di reinforcement learning per il consumatore è, tuttavia, l’assistente di parcheggio. In questo caso, l’intelligenza artificiale viene utilizzata per rilevare gli oggetti e per individuare per il consumatore il modo ottimale di parcheggiare.
Rendere un nuovo algoritmo di apprendimento per rinforzo funzionante richiede numerosi cicli di addestramento, dal momento che l’individuazione delle ricompense può, talvolta, essere rallentata. In futuro, il metodo del reinforcement learning controllerà molti processi e risolverà anche problemi complessi.