Proximal Policy Optimization (PPO) é um algoritmo de aprendizado por reforço (RL) utilizado para treinar um agente inteligente a tomar decisões em um ambiente. Ele pertence à família de métodos de gradiente de política, que otimizam a política diretamente estimando gradientes da recompensa esperada. O PPO é particularmente adequado para RL profundo, onde a política é representada por uma grande rede neural, e tornou-se uma escolha padrão para muitas aplicações devido ao seu equilíbrio entre simplicidade, estabilidade e eficiência amostral.
O algoritmo foi introduzido em 2017 como uma aproximação da Otimização de Política com Região de Confiança (TRPO), um método anterior que visava estabilizar o treinamento limitando o quanto a política poderia mudar em cada atualização. O PPO simplifica isso usando uma função objetivo com clipe, evitando o custo computacional dos métodos de segunda ordem do TRPO. Desde 2018, o PPO tem sido o algoritmo de RL padrão na OpenAI, e foi aplicado a domínios que vão desde robótica até jogos.
Mecanismo Central
O PPO é um algoritmo on-policy, o que significa que ele atualiza a política usando dados coletados da versão atual da política. A ideia central é dar múltiplos passos de ascensão de gradiente na política, garantindo que a nova política não se desvie muito da antiga. Isso é alcançado por meio de uma função objetivo substituta com clipe, que penaliza mudanças que tornariam a razão de probabilidade entre as políticas nova e antiga muito grande ou muito pequena.
A função objetivo é projetada para fornecer uma estimativa conservadora da melhoria da política. Ao aplicar o clipe na razão, o PPO evita atualizações excessivamente grandes que poderiam desestabilizar o treinamento, um problema comum em métodos de gradiente de política. Esse mecanismo é computacionalmente eficiente, pois requer apenas otimização de primeira ordem, ao contrário do TRPO, que utiliza a matriz Hessiana.
Relação com o TRPO
O TRPO, publicado em 2015, abordou problemas de instabilidade em algoritmos anteriores, como a Deep Q-Network (DQN), usando um método de região de confiança para limitar a divergência KL entre políticas antigas e novas. No entanto, impor essa restrição exigia calcular a matriz Hessiana de segundas derivadas, o que é ineficiente para problemas de grande escala. O PPO foi desenvolvido como uma aproximação que evita o cálculo da Hessiana, aplicando um clipe no gradiente da política. Isso torna o PPO mais simples de implementar e ajustar, alcançando desempenho comparável ou superior em muitas tarefas.
Aplicações
O PPO foi amplamente adotado tanto na pesquisa quanto na indústria. Na OpenAI, foi usado como o algoritmo de RL padrão para treinar agentes em diversos ambientes. Uma aplicação notável foi o OpenAI Five, um sistema que derrotou jogadores profissionais no videogame Dota 2 em 2019. O PPO também foi usado para controlar braços robóticos, jogar jogos de Atari e em outros domínios que exigem tomada de decisão sequencial. Sua robustez e facilidade de uso tornaram-no uma escolha popular para profissionais de aprendizado de máquina que trabalham com problemas de aprendizado por reforço.
Variantes e Extensões
Várias variantes do PPO foram propostas para abordar desafios específicos. Por exemplo, algumas versões incorporam clipe adaptativo ou usam diferentes técnicas de estimativa de vantagem. O PPO também é frequentemente combinado com outros métodos, como arquiteturas de aprendizado profundo, para lidar com observações de alta dimensionalidade. O design do algoritmo influenciou pesquisas subsequentes em RL, e ele continua sendo um referencial contra o qual algoritmos mais novos são comparados.