L'ottimizzazione prossimale della politiche (PPO) è un algoritmo di deep reinforcement learning volto a migliorare le prestazioni dei modelli utilizzando l'apprendimento per rinforzo. La politica in PPO indica come un agente, come un robot o un programma, abbia imparato ad agire nel mondo. Questo approccio ha rivoluzionato l'apprendimento ed è una parte fondamentale di come agenti e sistemi possano apprendere mentre interagiscono con gli utenti e con il mondo. I moderni modelli linguistici di grandi dimensioni (come i derivati di ChatGPT di OpenAI) utilizzano la PPO per l'apprendimento per rinforzo dal feedback umano (RLHF). La PPO è anche uno degli algoritmi più comuni per l'addestramento degli agenti nei videogiochi, nella Robotic Process Automation e nelle auto a guida autonoma.
La PPO è stata introdotta per la prima volta da John Schulman, Filip Wolski et al1 in un articolo intitolato Proximal Policy Optimization Algorithms. Per capire come funziona la PPO e perché è importante, dobbiamo iniziare dall'apprendimento per rinforzo (RL). Il processo di RL utilizza il machine learning per aiutare un sistema a scegliere un'azione basata sull'ambiente e su un obiettivo. Gli umani prendono sempre questo tipo di decisioni, ad esempio, in una partita di blackjack decidiamo se chiedere una nuova carta o "stare" (tenere le carte che già abbiamo). L'apprendimento per rinforzo ha quattro elementi fondamentali: agente, ambiente, azioni e ricompense. Proseguendo con l'esempio del blackjack abbiamo:
Agente: l'umano che gioca.
Ambiente: quali carte ha il giocatore e quali carte può vedere che ha il mazzo.
Azioni: se chiedere una nuova carta o "stare" (mantenere le carte attuali).
Ricompense: se l'utente vince o perde la mano.
Una politica è una strategia o un insieme di regole che un agente, come un robot o un programma software, segue per selezionare un'azione discreta in base al suo ambiente. La politica fornisce una mappatura tra gli ambienti e le possibili azioni che l'agente dovrebbe intraprendere. Le politiche possono essere semplici, con un'azione fissa per ogni stato, oppure possono essere complesse e incorporare stime o calcoli per scegliere e meccanismi di apprendimento per determinare le azioni ottimali. L'obiettivo è trovarne una che massimizzi la ricompensa cumulativa che l'agente riceve nel tempo. Si potrebbe immaginare una semplice regola per il blackjack: "Chiedi carta se il tuo punteggio è inferiore a 17, stai se il tuo punteggio è superiore a 18". L'agente confronterebbe l'ambiente con la politica e selezionerebbe un'azione in base alla politica.
L'RL è un modo per aiutare un agente a imparare una politica che lo aiuterà a decidere quali azioni intraprendere per massimizzare i benefici. La PPO è una tecnica potente per aiutare gli agenti a imparare in modo più efficace. È stata utilizzata in applicazioni che vanno dalla costruzione di robot al miglioramento di come i modelli linguistici di grandi dimensioni (LLM) ragionano e rispondono ai prompt. La PPO è una delle parti fondamentali dell'apprendimento per rinforzo che utilizza il feedback umano (RLHF) utilizzato per addestrare gli LLM. È quest'ultimo di questi metodi che ha guidato gran parte delle recenti ricerche sull'RL.
Esistono due grandi famiglie di metodi RL. I primi sono metodi basati sul valore che valutano l'ambiente e determinano l'azione migliore per quell'ambiente in base alla ricompensa attesa. Tutte le azioni possibili vengono valutate e l'agente seleziona l'azione con la ricompensa attesa più alta. Per determinare la soluzione migliore, l'agente si concentra sull'apprendimento di una funzione di valore che stimi la ricompensa cumulativa attesa (rendimento) da ciascun ambiente o coppia ambiente-azione. La politica viene derivata indirettamente selezionando azioni che massimizzano il valore stimato utilizzando un valore. L'idea è quella di scoprire una funzione di valore ottimale per ogni possibile azione che conduca a una politica ottimale. Quando le coppie di azioni e l'ambiente da esplorare sono limitati, questo approccio può risultare estremamente efficace. L'agente calcolerà la ricompensa attesa per ogni azione e sceglierà in base a tale stima. Con grandi spazi di azione, quando il numero di azioni possibili è elevato, diventa prtò difficile stimare un ritorno per ogni azione possibile. Un robot che decide come ruotare un braccio con più giunzioni nello spazio 3D si trova di fronte a migliaia di possibili decisioni, troppe per calcolare una funzione per ogni possibile combinazione di posizioni. Inoltre, limita l'agente ad azioni predefinite, il che significa che l'agente non è in grado di ideare strategie nuove o innovative.
Questo conduce a un secondo approccio: i metodi basati sulle politiche. Una politica è una strategia o un insieme di regole che un agente, come un robot o un programma software, segue per prendere decisioni basate sul suo ambiente. La politica fornisce una mappatura tra gli ambienti e le possibili azioni che l'agente dovrebbe intraprendere. Le politiche possono essere semplici, con un'azione fissa per ogni stato, oppure possono essere complesse e incorporare stime di vantaggio e calcoli per scegliere e meccanismi di apprendimento per determinare azioni ottimali. L'obiettivo è trovarne una che massimizzi la ricompensa cumulativa che l'agente riceve nel tempo. Immagina un modello che cerca di decidere quando comprare, vendere o mantenere azioni specifiche. Una politica definirà quando l'agente dovrebbe considerare l'acquisto o la vendita di un'azione, in base all'andamento del titolo o al comportamento complessivo del mercato azionario.
Un metodo di apprendimento basato sulle politiche impara quali azioni preferire per un determinato stato senza stimare direttamente i risultati attesi. Questo approccio significa che l'agente può apprendere molte più azioni possibili per ogni stato e non ha bisogno di stimare una funzione valore per ciascuno di essi. L'agente ottimizza la politica regolando la probabilità di scegliere un'azione per massimizzare il rendimento atteso senza stimare una funzione di vantaggio per ogni azione. Questo processo richiede molti più dati e un'architettura di apprendimento complessa perché il numero di azioni possibili per un determinato stato è teoricamente infinito. I gradienti della politica fanno parte della seconda categoria.
Nell'ambito dell'apprendimento tramite politiche, esistono due approcci fondamentali per l'apprendimento di una politica da parte di un agente. I metodi on-policy utilizzano solo le azioni attuali per guidare l'apprendimento, cioè imparare da ciò che si fa. Immaginiamo un'auto a guida autonoma che cerca il percorso ottimale verso una destinazione nel corso di più viaggi. Nell'apprendimento on-policy, l'auto imparerà solo dai percorsi che effettua.
La politica dirige le azioni degli agenti in ogni ambiente, incluso il processo decisionale durante l'apprendimento. L'agente valuta i risultati delle sue azioni attuali, perfezionando gradualmente la sua strategia. Questo metodo consente all'agente di adattare e migliorare il proprio processo decisionale interagendo direttamente con l'ambiente e imparando dalle proprie interazioni in tempo reale.
I metodi off-policy prevedono che l'auto osservi i percorsi intrapresi da altre auto a guida autonoma per imparare dalle loro azioni. L'auto non è tenuta a seguire la stessa politica delle auto che osserva, ma può osservare quali ricompense ricevono dalle loro azioni e aggiornare di conseguenza la propria. Consiste nell'apprendere il valore della politica ottimale indipendentemente dalle azioni dell'agente. Questi metodi permettono all'agente di apprendere la politica ottimale tramite osservazione, anche quando non la sta seguendo. È un metodo utile per apprendere da un set di dati fisso o da una politica didattica.
Il gradiente di politica è un approccio on-policy per la creazione di una policy che ottimizza direttamente la politica stessa seguendo il gradiente del rendimento atteso rispetto ai parametri della politica. Concettualmente è simile alla discesa stocastica del gradiente (SGD), che cerca di ridurre al minimo l'errore di una previsione con una funzione di perdita. C'è però una differenza fondamentale: l'SGD in genere stima i parametri per minimizzare la perdita. Un gradiente di politica tenta invece di stimare i parametri della distribuzione delle politiche per dare priorità alle azioni che massimizzano la ricompensa. L'obiettivo è creare una distribuzione di probabilità per tutte le possibili azioni, in modo da rendere più probabili le azioni che offrono ricompense maggiori e meno probabili quelle che offrono ricompense minori.
I gradienti di politica sono quelli che vengono chiamati metodi attore-critico. L'attore è una rete politica che seleziona le azioni, mentre il critico stima quanto bene quella politica abbina le azioni per gli stati a una ricompensa specifica.
Se la tua politica è (una distribuzione di probabilità sulle azioni), e l'obiettivo degli agenti è massimizzare un rendimento atteso indicato da allora si procederebbe con passi di salita graduale definiti come:
In questo è il vettore di parametri politici che determina la distribuzione di probabilità delle azioni. La vecchia politica è stata aggiornata, , dalla politica precedente più il tasso di apprendimento moltiplicato per il gradiente della politica. Il gradiente della politica è il gradiente rispetto a volte una funzione obiettivo che rappresenta il rendimento atteso dalla politica.
Un gradiente di politica apprende applicando la politica attuale, selezionando un'azione, valutando la ricompensa e quindi calcolando il gradiente della funzione obiettivo. L'algoritmo applica quindi un aggiornamento della politica per la successiva iterazione, quando può compiere un'azione e osservare il vantaggio ottenuto dall'aggiornamento.
Al centro dell'approccio del gradiente di politica c'è il teorema del gradiente di politica, che mostra come una politica può essere ottimizzata. Il gradiente rappresenta semplicemente la misura in cui la probabilità di un'azione viene aumentata o diminuita dalla politica, moltiplicata per le ricompense ottenute da tale azione. L'equazione per il teorema del gradiente di politica è:
Questa equazione afferma che il gradiente di una data politica per i parametri può essere impostato su un'aspettativa . Quell'aspettativa è una funzione di punteggio moltiplicato per la log-probabilità dell'azione scelta e , la ricompensa dell'agente che agisce in stato .
Un gradiente di politica consente a un agente di esplorare molte varianti e calcolare quali daranno la massima ricompensa in modo rapido ed efficiente. Questa tecnica però non è priva di difetti. Ad esempio, i metodi a gradiente di politica spesso convergono verso un massimo locale invece che verso un ottimale globale. Il calcolo di un gradiente di politica può richiedere più tempo per addestrare rispetto ad altri tipi di metodi on-policy. Il gradiente di politica stesso può generare un'elevata varianza, il che significa che la stima stessa del gradiente è altamente imprecisa. Questo risultato può portare il processo a stimare in modo errato la traiettoria del gradiente e la quantità di cambiamenti di politica che lo influenzano.
Un esempio classico di algoritmo a gradiente di politica è l'ottimizzazione delle politiche a regione di fiducia (TRPO)2. È stata una vera e propria innovazione al momento della sua introduzione, ma presenta diversi problemi ben noti che ne rendono difficile l'utilizzo nella pratica.
La PPO rappresenta un miglioramento rispetto all'utilizzo di un gradiente di politica per imparare. Fondamentalmente, cerca di capire come apportare il maggior miglioramento possibile a una politica utilizzando i dati attuali, senza però introdurre modifiche così radicali da comprometterne le prestazioni. Nei metodi basati sul gradiente di politica, la politica viene migliorata modificando i suoi parametri nella direzione che aumenta la ricompensa attesa. Tuttavia, grandi aggiornamenti possono distruggere le prestazioni e un singolo passo di gradiente troppo aggressivo può cambiare drasticamente il comportamento degli agenti e far crollare l'apprendimento. Gli algoritmi precedenti (come il TRPO) risolvevano questo problema imponendo un vincolo sulla distanza massima tra la nuova politica e quella precedente, ma erano matematicamente complessi.
La PPO mantiene gli aggiornamenti delle politiche vicini a quelli precedenti, evitando però la necessità di vincoli complessi. Anziché scegliere l'aggiornamento successivo in modo stocastico, la PPO utilizza quello che viene definito un obiettivo surrogato limitato, che impedisce alla politica di effettuare salti eccessivi. La politica, ovvero il gradiente della ricompensa man mano che l'agente la applica e osserva i risultati, migliorerà comunque ma lo farà in modo sicuro.
Con un gradiente di politica, ogni iterazione effettua una fase di ascesa del gradiente sulla funzione dell'obiettivo della politica stessa. La dimensione del passo rappresenta una sfida. Se è troppo piccolo, il processo di addestramento sarà lento, ma se è troppo grande, ci sarà troppa variabilità nella politica perché l'agente possa trovare una soluzione ottimale.
Nella PPO, l'idea è di vincolare gli aggiornamenti delle politiche con una funzione obiettivo surrogata troncata che limita la modifica della politica a un intervallo specifico. Questa funzione è:
Per scomporre questa formula, la prima parte è la funzione rapporto: . Questa funzione rapporto è:
Questa è la probabilità di agire allo stato nella politica attuale divisa per quella precedente. Questo calcola il rapporto di probabilità tra la politica attuale e quella precedente. Se , allora l'azione in stato è più probabile nella politica attuale rispetto alla vecchia. Se il rapporto è inferiore a 1, l'azione è meno simile alla politica attuale rispetto a quella precedente.
Questa sezione mostra come la PPO riduce la funzione usando vincoli surrogati per penalizzare le modifiche che portano a un rapporto lontano da 1. Questo passaggio dimostra che, mentre l'algoritmo prova le modifiche nella politica, queste vengono mantenute piccole dal valore epsilon .
Il principale vantaggio di questo approccio a recorte sostituti è che comporta piccole modifiche ed è efficiente dal punto di vista computazionale. I metodi più vecchi come il TRPO utilizzano la divergenza KL dopo aver calcolato la funzione obiettivo per vincolare l'aggiornamento della politica. Questo approccio può essere efficace per limitare gli aggiornamenti, ma richiede un'implementazione complessa e tempi di calcolo più lungi. La PPO implementa il rapporto di probabilità di clip direttamente nella funzione obiettivo, accelerando ogni epoca di addestramento.
Un altro vantaggio della PPO rispetto a molti altri approcci è che crea una maggiore efficienza del campione, ovvero ogni interazione con l'ambiente porta a un maggiore miglioramento delle politiche. La PPO raggiunge questa efficienza creando un mini-batch di dati di implementazione che può utilizzare gli stessi dati di interazione per più aggiornamenti. Altri approcci come Deep Q-Networks possono essere ancora più efficienti ma sono più intensivi dal punto di vista computazionale e quindi non sono preferiti quando ci sono dati adeguati.
Una parte cruciale dell'aggiornamento della politica consiste nello stimare quanto vantaggio essa offra rispetto alle versioni precedenti. Dal punto di vista computazionale, questo passaggio è più complesso del semplice calcolo della differenza di ricompense per due politiche in un dato passaggio. Gli agenti devono imparare quanto la distribuzione delle probabilità di azione su più passaggi. Anche in una partita di blackjack relativamente semplice, l'azione compiuta da un giocatore non sarà visibile fino a diverse mani successive. Questo metodo diventa ancora più importante in un gioco come gli scacchi o in uno scenario che coinvolge la navigazione robotica.
Per apprendere questi aggiornamenti, la PPO utilizza quella che viene definita una strategia iterativa di stima generalizzata del vantaggio (GAE). Questo passaggio aiuta a determinare il funzionamento della politica e quanto dovrebbe allontanarsi da quella attuale per migliorare. La GAE calcola i vantaggi ponderando esponenzialmente gli errori futuri, fornendo alla PPO un segnale di apprendimento a bassa varianza e bassa distorsione che rende gli aggiornamenti delle politiche stabili ed efficienti in termini di campionamento.
Interrompere troppo presto l'accumulo di ricompense effettive introduce un forte bias, poiché viene considerata solo una piccola parte del rendimento reale a fronte di ricompense effettive minime. L'accumulo di troppe ricompense porta a un'elevata varianza perché affidarsi a un numero maggiore di campioni reali può rendere instabile la stima.
Librerie come Stable-Baselines3 e RLlib forniscono implementazioni complete di PPO che possono essere applicate a un'ampia gamma di domini e problemi. Esistono anche implementazioni più leggere come CleanRL che includono tutorial per l'autoapprendimento scritti in PyTorch e Tensorflow si possono trovare su GitHub.
Librerie come Transformer Reforce Learning (TRL) di HuggingFace sono ottimizzati specificamente per aiutare ad addestrare modelli di linguaggio transformer utilizzando algoritmi RL come la PPO. In questo contesto, la PPO aiuta a garantire che i modelli imparino a selezionare risposte meglio allineate agli obiettivi del creatore del modello e al feedback umano.
Addestra, convalida, adatta e implementa le funzionalità di AI generativa, foundation model e machine learning con IBM watsonx.ai, uno studio aziendale di nuova generazione per builder AI. Crea applicazioni AI in tempi ridotti e con una minima quantità di dati.
Metti l'AI al servizio della tua azienda grazie all'esperienza leader di settore e alla gamma di soluzioni di IBM nel campo dell'AI.
Reinventa i flussi di lavoro e le operazioni critiche aggiungendo l'AI per massimizzare le esperienze, il processo decisionale in tempo reale e il valore di business.
1. Schulman, J., Wolski, F., Dhariwal, P., Radford, A., & Klimov, O. (2017). Proximal policy optimization algorithms. arXiv preprint arXiv:1707.06347.
2. Schulman, J., Levine, S., Abbeel, P., Jordan, M., & Moritz, P. (giugno 2015). Trust region policy optimization. In International conference on machine learning (pag. 1889-1897). PMLR.