IA 101

Che cos’è il Deep Reinforcement Learning?

mm

Che cos’è il Deep Reinforcement Learning?

Insieme all’apprendimento automatico non supervisionato e all’apprendimento supervisionato, un’altra forma comune di creazione di intelligenza artificiale è l’apprendimento per rinforzo. Oltre all’apprendimento per rinforzo standard, il deep reinforcement learning può portare a risultati impressionanti, grazie al fatto che combina i migliori aspetti dell’apprendimento profondo e dell’apprendimento per rinforzo. Vediamo come funziona il deep reinforcement learning.

Prima di addentrarci nel deep reinforcement learning, potrebbe essere una buona idea rinfrescare la nostra conoscenza di come funziona l’apprendimento per rinforzo standard. Nell’apprendimento per rinforzo, gli algoritmi orientati agli obiettivi sono progettati attraverso un processo di prova ed errore, ottimizzando per l’azione che porta al miglior risultato/l’azione che ottiene la maggior “ricompensa”. Quando gli algoritmi di apprendimento per rinforzo vengono addestrati, vengono dati “premi” o “punizioni” che influenzano le azioni che saranno prese in futuro. Gli algoritmi cercano di trovare un set di azioni che forniranno al sistema la massima ricompensa, bilanciando sia le ricompense immediate che future.

Gli algoritmi di apprendimento per rinforzo sono molto potenti perché possono essere applicati a quasi ogni compito, essendo in grado di imparare in modo flessibile e dinamico da un ambiente e scoprire azioni possibili.

Panoramica del Deep Reinforcement Learning

Foto: Megajuice via Wikimedia Commons, CC 1.0 (https://commons.wikimedia.org/wiki/File:Reinforcement_learning_diagram.svg)

Quando si tratta di deep reinforcement learning, l’ambiente è solitamente rappresentato con immagini. Un’immagine è una cattura dell’ambiente in un particolare momento. L’agente deve analizzare le immagini ed estrarre informazioni rilevanti da esse, utilizzando le informazioni per decidere quale azione intraprendere. Il deep reinforcement learning viene solitamente eseguito con due tecniche diverse: apprendimento basato su valori e apprendimento basato su politiche.

Le tecniche di apprendimento basato su valori utilizzano algoritmi e architetture come le reti neurali convoluzionali e le Deep-Q-Network. Questi algoritmi operano convertendo l’immagine in scala di grigi e ritagliando le parti non necessarie dell’immagine. Dopo di che, l’immagine subisce varie convoluzioni e operazioni di pooling, estraendo le parti più rilevanti dell’immagine. Le parti importanti dell’immagine vengono quindi utilizzate per calcolare il valore Q per le diverse azioni che l’agente può intraprendere. I valori Q vengono utilizzati per determinare il miglior corso d’azione per l’agente. Dopo che i valori Q iniziali vengono calcolati, viene eseguita la backpropagation in modo che i valori Q più precisi possano essere determinati.

I metodi basati su politiche vengono utilizzati quando il numero di azioni possibili che l’agente può intraprendere è estremamente alto, il che è solitamente il caso in scenari reali. Situazioni del genere richiedono un approccio diverso perché il calcolo dei valori Q per tutte le azioni individuali non è pragmatico. Gli approcci basati su politiche operano senza calcolare i valori di funzione per azioni individuali. Invece, adottano politiche imparando direttamente la politica, spesso attraverso tecniche chiamate Policy Gradients.

Le policy gradients operano ricevendo uno stato e calcolando le probabilità per le azioni in base alle esperienze precedenti dell’agente. L’azione più probabile viene quindi selezionata. Questo processo viene ripetuto fino alla fine del periodo di valutazione e le ricompense vengono date all’agente. Dopo che le ricompense sono state gestite dall’agente, i parametri della rete vengono aggiornati con la backpropagation.

Che cos’è il Q-Learning?

Poiché il Q-Learning è una parte così grande del processo di deep reinforcement learning, vediamo come funziona il sistema di Q-learning.

Il Processo Decisionale di Markov

Un processo decisionale di Markov. Foto: waldoalvarez via Pixabay, Pixbay License (https://commons.wikimedia.org/wiki/File:Markov_Decision_Process.svg)

Perché un agente di intelligenza artificiale possa eseguire una serie di compiti e raggiungere un obiettivo, l’agente deve essere in grado di gestire una sequenza di stati e eventi. L’agente inizia in uno stato e deve intraprendere una serie di azioni per raggiungere uno stato finale, e ci possono essere un numero enorme di stati esistenti tra l’inizio e la fine. Memorizzare informazioni su ogni stato è impratico o impossibile, quindi il sistema deve trovare un modo per conservare solo le informazioni più rilevanti sullo stato. Ciò viene fatto attraverso l’utilizzo di un Processo Decisionale di Markov, che conserva solo le informazioni sullo stato attuale e sullo stato precedente. Ogni stato segue una proprietà di Markov, che tiene traccia di come l’agente cambia dallo stato precedente a quello attuale.

Deep Q-Learning

Una volta che il modello ha accesso alle informazioni sugli stati dell’ambiente di apprendimento, i valori Q possono essere calcolati. I valori Q sono la ricompensa totale data all’agente alla fine di una sequenza di azioni.

I valori Q vengono calcolati con una serie di ricompense. C’è una ricompensa immediata, calcolata nello stato attuale e in base all’azione attuale. Il valore Q per lo stato successivo viene anche calcolato, insieme al valore Q per lo stato dopo di quello, e così via fino a quando tutti i valori Q per gli stati diversi vengono calcolati. C’è anche un parametro Gamma che viene utilizzato per controllare quanto peso hanno le ricompense future sulle azioni dell’agente. Le politiche vengono solitamente calcolate inizializzando casualmente i valori Q e lasciando che il modello converga verso i valori Q ottimali nel corso dell’addestramento.

Deep Q-Network

Uno dei problemi fondamentali relativi all’utilizzo del Q-learning per l’apprendimento per rinforzo è che la quantità di memoria necessaria per memorizzare i dati aumenta rapidamente con il numero di stati. Le Deep Q-Network risolvono questo problema combinando modelli di reti neurali con valori Q, consentendo all’agente di imparare dall’esperienza e fare ipotesi ragionevoli sulle migliori azioni da intraprendere. Con il deep Q-learning, le funzioni di valore Q vengono stimate con reti neurali. La rete neurale prende lo stato come input e produce il valore Q per tutte le azioni possibili che l’agente potrebbe intraprendere.

Il deep Q-learning viene eseguito memorizzando tutte le esperienze passate in memoria, calcolando gli output massimi per la rete Q e utilizzando una funzione di perdita per calcolare la differenza tra i valori attuali e i valori teorici più alti possibili.

Deep Reinforcement Learning vs Deep Learning

Una differenza importante tra il deep reinforcement learning e il deep learning standard è che, nel caso del primo, gli input sono costantemente in cambiamento, il che non è il caso del deep learning standard. Come può il modello di apprendimento tenere conto degli input e degli output che sono costantemente in cambiamento?

In sostanza, per tenere conto della divergenza tra i valori previsti e i valori target, possono essere utilizzate due reti neurali invece di una. Una rete stima i valori target, mentre l’altra rete è responsabile delle previsioni. I parametri della rete target vengono aggiornati mentre il modello impara, dopo un certo numero di iterazioni di addestramento. Gli output delle reti vengono quindi uniti per determinare la differenza.

Apprendimento Basato su Politiche

Gli approcci di apprendimento basato su politiche operano in modo diverso rispetto agli approcci basati sui valori Q. Mentre gli approcci basati sui valori Q creano una funzione di valore che prevede le ricompense per stati e azioni, i metodi basati su politiche determinano una politica che mappa gli stati alle azioni. In altre parole, la funzione di politica che seleziona le azioni viene ottimizzata direttamente senza riguardo alla funzione di valore.

Policy Gradients

Una politica per il deep reinforcement learning rientra in una di due categorie: stocastica o deterministica. Una politica deterministica è una politica in cui gli stati vengono mappati direttamente alle azioni, il che significa che quando la politica viene data informazioni su uno stato, un’azione viene restituita. Nel frattempo, le politiche stocastiche restituiscono una distribuzione di probabilità per le azioni invece di un’unica azione discreta.

Le politiche deterministiche vengono utilizzate quando non c’è incertezza sugli esiti delle azioni che possono essere intraprese. In altre parole, quando l’ambiente stesso è deterministico. Al contrario, le politiche stocastiche sono adatte per ambienti in cui l’esito delle azioni è incerto. Solitamente, gli scenari di apprendimento per rinforzo coinvolgono un certo grado di incertezza, quindi le politiche stocastiche vengono utilizzate.

Gli approcci di policy gradient hanno alcuni vantaggi rispetto agli approcci basati sui valori Q, nonché alcuni svantaggi. In termini di vantaggi, i metodi basati su politiche convergono più rapidamente e in modo più affidabile sui parametri ottimali. Il gradiente di politica può essere semplicemente seguito fino a quando non vengono determinati i migliori parametri, mentre con i metodi basati sui valori, piccoli cambiamenti nei valori di azione stimati possono portare a grandi cambiamenti nelle azioni e nei parametri associati.

I gradienti di politica funzionano meglio per spazi di azione ad alta dimensionalità. Quando c’è un numero estremamente alto di azioni possibili da intraprendere, il deep Q-learning diventa impratico perché deve assegnare un punteggio a ogni azione possibile per tutti i passaggi temporali, il che può essere impossibile dal punto di vista computazionale. Tuttavia, con i metodi basati su politiche, i parametri vengono aggiustati nel tempo e il numero di parametri migliori si riduce rapidamente mentre il modello converge.

I gradienti di politica sono anche in grado di implementare politiche stocastiche, a differenza dei metodi basati sui valori. Poiché le politiche stocastiche producono una distribuzione di probabilità, non è necessario implementare un trade-off tra esplorazione e sfruttamento.

In termini di svantaggi, il principale svantaggio dei gradienti di politica è che possono rimanere bloccati durante la ricerca dei parametri ottimali, concentrandosi solo su un insieme ristretto di valori ottimali locali invece dei valori ottimali globali.

Funzione di Punteggio di Politica

Le politiche utilizzate per ottimizzare le prestazioni di un modello hanno come obiettivo di massimizzare una funzione di punteggio – J(θ). Se J(θ) è una misura di quanto buona sia la nostra politica per raggiungere l’obiettivo desiderato, possiamo trovare i valori di “θ” che ci danno la migliore politica. Innanzitutto, dobbiamo calcolare una ricompensa di politica attesa. Stimiamo la ricompensa di politica in modo da avere un obiettivo, qualcosa da ottimizzare. La Funzione di Punteggio di Politica è il modo in cui calcoliamo la ricompensa di politica attesa, e ci sono diverse Funzioni di Punteggio di Politica che vengono comunemente utilizzate, come ad esempio: valori iniziali per ambienti episodici, il valore medio per ambienti continui e la ricompensa media per passo temporale.

Ascesa del Gradiente di Politica

L’ascesa del gradiente mira a spostare i parametri fino a quando non sono nel punto in cui il punteggio è più alto. Foto: Public Domain (https://commons.wikimedia.org/wiki/File:Gradient_ascent_(surface).png)

Dopo che la Funzione di Punteggio di Politica desiderata viene utilizzata e la ricompensa di politica attesa viene calcolata, possiamo trovare un valore per il parametro “θ” che massimizza la funzione di punteggio. Per massimizzare la funzione di punteggio J(θ), viene utilizzata una tecnica chiamata “ascesa del gradiente”. L’ascesa del gradiente è simile al concetto di discesa del gradiente nel deep learning, ma stiamo ottimizzando per il più grande aumento invece di diminuzione. Ciò è perché il nostro punteggio non è “errore”, come in molti problemi di deep learning. Il nostro punteggio è qualcosa che vogliamo massimizzare. Un’espressione chiamata Teorema del Gradiente di Politica viene utilizzata per stimare il gradiente rispetto alla politica “θ”.

Riepilogo del Deep Reinforcement Learning

In sintesi, il deep reinforcement learning combina aspetti dell’apprendimento per rinforzo e delle reti neurali profonde. Il deep reinforcement learning viene eseguito con due tecniche diverse: Deep Q-learning e gradienti di politica.

Il Deep Q-learning mira a prevedere quali ricompense seguiranno azioni specifiche intraprese in uno stato dato, mentre gli approcci basati su politiche mirano a ottimizzare lo spazio di azione, prevedendo le azioni stesse. Gli approcci basati su politiche al deep reinforcement learning sono o deterministici o stocastici per natura. Le politiche deterministiche mappano gli stati direttamente alle azioni, mentre le politiche stocastiche producono distribuzioni di probabilità per le azioni.

Blogger e programmatore con specializzazioni in Machine Learning e Deep Learning argomenti. Daniel spera di aiutare gli altri a utilizzare il potere dell'AI per il bene sociale.