Open Source Robotics

Una raccolta curata di progetti, strumenti e software di robotica open source di alta qualità per la comunità della robotica.

Proximal Policy Optimization

  • Detto anche: PPO, PPO-Clip
  • Categoria: Learning & autonomy › RL & simulation
  • Tag: reinforcement-learning, policy-gradient, on-policy, robot-learning, sim-to-real, locomotion

Un algoritmo di apprendimento per rinforzo on-policy che migliora una policy a piccoli passi con clipping, ampiamente usato per addestrare policy di locomozione e di controllo dei robot in simulazione parallela.

Definizione

Proximal Policy Optimization (PPO) è un algoritmo di policy gradient per l'apprendimento per rinforzo presentato da John Schulman e colleghi in OpenAI nel 2017. Addestra una policy stocastica, di solito una rete neurale, raccogliendo batch di esperienza con la policy corrente e aggiornando poi la policy per rendere più probabili le azioni con vantaggio elevato. L'idea centrale è mantenere ogni aggiornamento vicino alla policy che ha raccolto i dati, il che rende l'addestramento più stabile rispetto ai semplici metodi di policy gradient senza la complessità dei precedenti metodi a regione di fiducia come TRPO.

La forma più nota di PPO usa un obiettivo surrogato con clipping. Per ogni azione calcola il rapporto tra la probabilità di quell'azione sotto la nuova policy e sotto quella vecchia. L'obiettivo moltiplica questo rapporto per una stima del vantaggio ma limita il rapporto a un piccolo intervallo attorno a uno, così l'ottimizzatore non guadagna nulla spostando troppo la policy in un singolo aggiornamento. Questo permette a PPO di eseguire più epoche di discesa del gradiente a minibatch sullo stesso batch di dati. I vantaggi sono in genere calcolati con la generalized advantage estimation (GAE) usando una funzione di valore appresa, quindi PPO è un metodo actor-critic.

PPO è on-policy: i dati raccolti con una policy precedente vengono scartati dopo ogni aggiornamento. Questo lo rende meno efficiente in termini di campioni rispetto ai metodi off-policy come Soft Actor-Critic, che riutilizzano l'esperienza da un replay buffer. In robotica questa debolezza conta meno quando si addestra in simulazione, perché i simulatori basati su GPU possono eseguire migliaia di ambienti in parallelo e generare rapidamente grandi batch di dati nuovi. Semplicità, stabilità e buona scalabilità con ambienti paralleli hanno reso PPO l'algoritmo predefinito in molte pipeline di locomozione sim-to-real.

I risultati con PPO sono sensibili ai dettagli implementativi. La normalizzazione di osservazioni e vantaggi, gli schemi del learning rate, i bonus di entropia, il clipping della funzione di valore e l'inizializzazione della rete influiscono tutti sulle prestazioni. I team di robotica di solito si affidano a implementazioni ben collaudate invece di scriverne una propria, e progettano le ricompense e randomizzano i parametri di simulazione con cura, poiché PPO sfrutterà qualsiasi difetto della ricompensa o del simulatore.

Perché è importante

PPO è l'algoritmo dietro una gran parte dei risultati di apprendimento per rinforzo su robot con gambe reali, umanoidi e mani destre, perché tollera un ampio intervallo di iperparametri e scala bene con la simulazione massivamente parallela. Comprenderlo è un prerequisito pratico per leggere o riprodurre la maggior parte del lavoro di apprendimento robotico sim-to-real.

Applicazioni principali

  • Locomozione con gambe — addestrare in simulazione policy di camminata e corsa per quadrupedi e umanoidi
  • Manipolazione destra — apprendere il riorientamento di oggetti in mano con mani a più dita
  • Controllo di droni — apprendere policy di volo agile e da gara
  • Controllo del corpo intero — addestrare policy che coordinano molti giunti contemporaneamente
  • Fine-tuning di modelli linguistici — PPO è usato anche nell'apprendimento per rinforzo da feedback umano

In pratica

Un team tipico definisce il robot, le sue osservazioni, azioni e ricompense in un simulatore su GPU come Isaac Lab o MuJoCo, lancia migliaia di ambienti in parallelo e addestra una policy PPO con una libreria esistente come rsl_rl, Stable-Baselines3 o skrl. Ogni iterazione raccoglie un breve rollout da ogni ambiente, calcola i vantaggi ed esegue alcune epoche di aggiornamenti con clipping. Gli ingegneri monitorano la ricompensa per episodio, la durata degli episodi, l'entropia della policy e la loss del valore, e la maggior parte del loro impegno va nei termini di ricompensa, nel curriculum e nella domain randomization più che nell'algoritmo stesso. La policy addestrata, di solito un piccolo percettrone multistrato o una rete ricorrente, viene esportata ed eseguita sul robot a una frequenza di controllo fissa.

Idee sbagliate comuni

  • PPO è l'algoritmo di apprendimento per rinforzo (RL) più efficiente in termini di campioni — è on-policy e scarta i dati vecchi; i suoi punti di forza sono la stabilità e la scalabilità con la simulazione parallela
  • PPO funziona subito senza ritocchi — le prestazioni dipendono molto dalla progettazione della ricompensa, dalla normalizzazione e da altri dettagli implementativi
  • PPO è solo per azioni discrete — gestisce spazi di azione continui con policy gaussiane ed è usato soprattutto così in robotica
  • Il clipping garantisce un miglioramento monotono — il clipping è un'euristica che scoraggia gli aggiornamenti grandi, non una garanzia formale di regione di fiducia

Chi dovrebbe saperlo

  • Ingegneri di apprendimento robotico che addestrano policy in simulazione
  • Ricercatori di locomozione che lavorano su robot con gambe e umanoidi
  • Studenti che imparano l'apprendimento per rinforzo profondo (deep reinforcement learning)
  • Ingegneri di simulazione che costruiscono ambienti di addestramento

Tecnologie correlate

  • Trust Region Policy Optimization (TRPO)
  • Generalized Advantage Estimation (GAE)
  • Soft Actor-Critic
  • Isaac Lab
  • MuJoCo
  • Domain randomization

Termini correlati

  • Reinforcement Learning
  • Soft Actor-Critic
  • Domain Randomization
  • Sim2Real

Progetti correlati

  • LeRobot: HuggingFace ML library for real-world robotics in PyTorch
  • MuJoCo: DeepMind physics engine for robotics and ML research
  • PyBullet: Python physics simulator for robotics and RL research with fast CPU-based simulation
  • OpenPI: Physical Intelligence VLA foundation models for general robot control
  • Microduck: Pollen Robotics' $399 walking duck robot: open-source software, closed hardware
  • Isaac Lab: NVIDIA robot learning framework: one task API across Newton, PhysX and Isaac Sim

Video

  • Proximal Policy Optimization Explained: Edan Meyer

Questo sito richiede JavaScript. Attiva JavaScript per esplorare i nostri progetti di robotica open source.