Open Source Robotics

Uma coleção selecionada de projetos, ferramentas e software de robótica de código aberto de alta qualidade.

Proximal Policy Optimization

  • Também chamado: PPO, PPO-Clip
  • Categoria: Learning & autonomy › RL & simulation
  • Tags: reinforcement-learning, policy-gradient, on-policy, robot-learning, sim-to-real, locomotion

Um algoritmo de aprendizado por reforço on-policy que melhora uma política em passos pequenos e recortados, amplamente usado para treinar políticas de locomoção e de controle de robôs em simulação paralela.

Definição

Proximal Policy Optimization (PPO) é um algoritmo de gradiente de política para aprendizado por reforço apresentado por John Schulman e colegas na OpenAI em 2017. Ele treina uma política estocástica, geralmente uma rede neural, coletando lotes de experiência com a política atual e depois atualizando a política para tornar mais prováveis as ações com vantagem alta. Sua ideia central é manter cada atualização próxima da política que coletou os dados, o que torna o treinamento mais estável do que nos métodos simples de gradiente de política, sem a complexidade de métodos anteriores de região de confiança como o TRPO.

A forma mais conhecida do PPO usa um objetivo substituto recortado. Para cada ação, ele calcula a razão entre a probabilidade dessa ação sob a nova política e sob a antiga. O objetivo multiplica essa razão por uma estimativa de vantagem, mas recorta a razão em um pequeno intervalo em torno de um, de modo que o otimizador não ganha nada ao afastar demais a política em uma única atualização. Isso permite que o PPO execute várias épocas de descida de gradiente em minilotes sobre o mesmo lote de dados. As vantagens geralmente são calculadas com a estimativa de vantagem generalizada (GAE) usando uma função de valor aprendida, então o PPO é um método ator-crítico.

O PPO é on-policy: os dados coletados com uma política anterior são descartados após cada atualização. Isso o torna menos eficiente em amostras do que métodos off-policy como o Soft Actor-Critic, que reutilizam experiência de um buffer de replay. Na robótica, essa fraqueza importa menos quando o treinamento é feito em simulação, porque simuladores baseados em GPU conseguem rodar milhares de ambientes em paralelo e gerar rapidamente grandes lotes de dados novos. Sua simplicidade, estabilidade e boa escalabilidade com ambientes paralelos fizeram do PPO o algoritmo padrão em muitos pipelines de locomoção sim-to-real.

Os resultados com PPO são sensíveis a detalhes de implementação. Normalização de observações e de vantagens, cronogramas da taxa de aprendizado, bônus de entropia, recorte da função de valor e inicialização da rede afetam o desempenho. Equipes de robótica costumam usar implementações bem testadas em vez de escrever a sua própria, e modelam as recompensas e randomizam os parâmetros de simulação com cuidado, já que o PPO vai explorar qualquer falha na recompensa ou no simulador.

Por que importa

O PPO é o algoritmo por trás de grande parte dos resultados de aprendizado por reforço em robôs com pernas reais, humanoides e mãos destras, porque tolera uma ampla faixa de hiperparâmetros e escala bem com simulação massivamente paralela. Entendê-lo é um pré-requisito prático para ler ou reproduzir a maior parte dos trabalhos de aprendizado de robôs sim-to-real.

Principais aplicações

  • Locomoção com pernas — treinar em simulação políticas de caminhada e corrida para quadrúpedes e humanoides
  • Manipulação destra — aprender a reorientação de objetos na mão com mãos de vários dedos
  • Controle de drones — aprender políticas de voo ágil e de corrida
  • Controle de corpo inteiro — treinar políticas que coordenam muitas juntas ao mesmo tempo
  • Ajuste fino de modelos de linguagem — o PPO também é usado no aprendizado por reforço a partir de feedback humano

Na prática

Uma equipe típica define o robô, suas observações, ações e recompensas em um simulador em GPU como o Isaac Lab ou o MuJoCo, lança milhares de ambientes em paralelo e treina uma política PPO com uma biblioteca existente como rsl_rl, Stable-Baselines3 ou skrl. Cada iteração coleta um rollout curto de cada ambiente, calcula as vantagens e executa algumas épocas de atualizações recortadas. Os engenheiros monitoram a recompensa por episódio, a duração dos episódios, a entropia da política e a perda de valor, e a maior parte do esforço vai para os termos de recompensa, o currículo e a randomização de domínio, e não para o algoritmo em si. A política treinada, geralmente um pequeno perceptron multicamadas ou uma rede recorrente, é exportada e executada no robô a uma frequência de controle fixa.

Equívocos comuns

  • O PPO é o algoritmo de RL mais eficiente em amostras — ele é on-policy e descarta dados antigos; seus pontos fortes são a estabilidade e a escalabilidade com simulação paralela
  • O PPO funciona de imediato — o desempenho depende muito do projeto da recompensa, da normalização e de outros detalhes de implementação
  • O PPO é só para ações discretas — ele lida com espaços de ação contínuos com políticas gaussianas e é usado principalmente assim na robótica
  • O recorte garante melhoria monotônica — o recorte é uma heurística que desencoraja atualizações grandes, não uma garantia formal de região de confiança

Quem deve saber

  • Engenheiros de aprendizado de robôs que treinam políticas em simulação
  • Pesquisadores de locomoção que trabalham com robôs com pernas e robôs humanoides
  • Estudantes que aprendem aprendizado por reforço profundo
  • Engenheiros de simulação que constroem ambientes de treinamento

Tecnologias relacionadas

  • Trust Region Policy Optimization (TRPO)
  • Estimativa de vantagem generalizada (Generalized Advantage Estimation, GAE)
  • Soft Actor-Critic
  • Isaac Lab
  • MuJoCo
  • Randomização de domínio (Domain Randomization)

Termos relacionados

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

Projetos relacionados

  • 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

Vídeos

  • Proximal Policy Optimization Explained: Edan Meyer

Wikipédia

  • Otimização de Política Proximal

Este site requer JavaScript. Por favor, habilite o JavaScript para explorar nossos projetos de robótica.