A otimização de política proximal (PPO) é um algoritmo de aprendizado por reforço profundo voltado a melhorar o desempenho de modelos por meio do aprendizado por reforço. A política no PPO indica de que forma um agente, como um robô ou um programa, aprendeu a agir no mundo. Essa abordagem revolucionou o aprendizado e é parte essencial do modo como agentes e sistemas conseguem aprender ao interagir com usuários e com o mundo. Os modernos modelos de linguagem de grande porte (como os derivados do ChatGPT, da OpenAI) usam o PPO para aprendizado por reforço com feedback humano (RLHF). O PPO também é um dos algoritmos mais comuns para treinar agentes em videogames, em automação robótica de processos e em carros autônomos.
O PPO foi apresentado pela primeira vez por John Schulman, Filip Wolski et al.1 em um artigo intitulado Proximal Policy Optimization Algorithms. Para entender como o PPO funciona e por que ele é importante, convém começar pelo aprendizado por reforço (RL). O processo de RL usa aprendizado de máquina para ajudar um sistema a escolher uma ação com base no ambiente e em um objetivo. As pessoas tomam esse tipo de decisão o tempo todo: em uma partida de blackjack, por exemplo, decidimos entre “pedir carta” (receber uma nova carta) e “parar” (ficar com as cartas que já temos). O aprendizado por reforço tem quatro elementos fundamentais: agente, ambiente, ações e recompensas. No exemplo do jogo de blackjack, temos:
Agente: o ser humano que joga.
Ambiente: quais cartas o jogador tem e quais cartas do dealer ele consegue ver.
Ações: “pedir carta” (receber uma nova carta) ou “parar” (ficar com as cartas atuais).
Recompensas: se o usuário vence ou perde a mão.
Uma política é uma estratégia ou conjunto de regras que um agente, como um robô ou um programa de software, segue para selecionar uma ação discreta com base em seu ambiente. A política fornece um mapeamento de ambientes para as ações possíveis que o agente deve tomar. As políticas podem ser simples, com uma ação fixa para cada estado, ou podem ser complexas, em que a política incorpora estimativas ou cálculos para escolher e mecanismos de aprendizado para determinar as ações ideais. O objetivo é encontrar uma política que maximize a recompensa acumulada que o agente recebe ao longo do tempo. Podemos imaginar uma política simples para o blackjack: “pedir carta se as cartas estiverem abaixo de 17, parar se as cartas estiverem acima de 18”. O agente compararia o ambiente com a política e selecionaria uma ação com base nela.
O RL é uma maneira de ajudar um agente a aprender uma política que o auxiliará a decidir quais ações tomar para maximizar as recompensas. O PPO é uma técnica poderosa para ajudar os agentes a aprender de forma mais eficaz. Ele já foi usado em aplicações que vão da construção de robôs à melhoria da forma como os modelos de linguagem de grande porte (LLMs) raciocinam e respondem a prompts. O PPO é uma das partes fundamentais do aprendizado por reforço com feedback humano (RLHF) usado para treinar LLMs. É esse último método que tem impulsionado boa parte da pesquisa recente sobre RL.
Existem duas grandes famílias de métodos de RL. A primeira é a dos métodos baseados em valor, que avaliam o ambiente e determinam a melhor ação para aquele ambiente com base na recompensa esperada. Todas as ações possíveis são avaliadas, e o agente seleciona a ação com a maior recompensa esperada. Para determinar qual é a melhor, o agente se concentra em aprender uma função de valor que estima a recompensa acumulada esperada (retorno) de cada ambiente ou par ambiente-ação. A política é derivada indiretamente pela seleção de ações que maximizam o valor estimado usando um valor. A ideia é descobrir uma função de valor ótima para cada ação possível que leve a uma política ótima. Quando há um número limitado de pares de ação e ambiente a explorar, essa abordagem pode ser altamente eficaz. O agente calculará a recompensa esperada para cada ação e escolherá com base nessa estimativa. Com espaços de ações grandes, quando o número de ações possíveis é alto, torna-se difícil estimar um retorno para cada uma delas. Um robô que decide como girar um braço com várias articulações no espaço 3D enfrenta milhares de decisões possíveis, um número grande demais para calcular uma função para cada combinação possível de posições das articulações. Essa abordagem também restringe o agente a ações predefinidas, ou seja, o agente não é capaz de criar estratégias novas ou inéditas.
Isso leva a uma segunda abordagem: os métodos baseados em política. Uma política é uma estratégia ou conjunto de regras que um agente, como um robô ou um programa de software, segue para tomar decisões com base em seu ambiente. A política fornece um mapeamento de ambientes para as ações possíveis que o agente deve tomar. As políticas podem ser simples, com uma ação fixa para cada estado, ou podem ser complexas, em que a política incorpora estimativas de vantagem e cálculos para escolher e mecanismos de aprendizado para determinar as ações ótimas. O objetivo é encontrar uma política que maximize a recompensa acumulada que o agente recebe ao longo do tempo. Imagine um modelo que tenta decidir quando comprar, vender ou manter determinados papéis. Uma política definiria quando o agente deve considerar comprar ou vender um papel, dependendo da tendência desse papel ou do comportamento do mercado acionário como um todo.
Um método de aprendizado baseado em política aprende quais ações preferir para um determinado estado sem estimar diretamente os resultados esperados dessas ações. Essa abordagem significa que o agente pode aprender muito mais ações possíveis para cada estado e não precisa estimar uma função de valor para cada uma delas. O agente otimiza a política ajustando a probabilidade de escolher uma ação para maximizar o retorno esperado, sem estimar uma função de vantagem para cada ação. Esse processo exige muito mais dados e uma arquitetura de aprendizado complexa, porque o número de ações possíveis para um determinado estado é teoricamente infinito. Os gradientes de política fazem parte da segunda categoria.
No aprendizado de política, há duas abordagens fundamentais para aprender a política de um agente. Os métodos on-policy usam apenas as ações atuais para conduzir o aprendizado: aprende-se com o que se está fazendo. Imagine um carro autônomo que tenta encontrar a rota ideal até um destino ao longo de várias viagens. No aprendizado on-policy, esse carro aprenderia apenas com as rotas que ele percorre.
A política orienta as ações do agente em todos os ambientes, inclusive o processo de tomada de decisão durante o aprendizado. O agente avalia os resultados de suas ações atuais, refinando sua estratégia de forma incremental. Esse método permite que o agente adapte e aprimore sua tomada de decisão ao interagir diretamente com o ambiente e aprender com suas próprias interações em tempo real.
Nos métodos off-policy, o carro observaria as rotas percorridas por outros carros autônomos para aprender com as ações deles. O carro não precisa seguir a mesma política dos carros que observa, mas pode ver quais recompensas eles recebem por suas ações e atualizar a própria política com base nisso. Essa abordagem envolve aprender o valor da política ideal independentemente das ações do agente. Esses métodos permitem que o agente aprenda a partir de observações sobre a política ideal, mesmo quando não a está seguindo. Esse método é útil para aprender a partir de um conjunto de dados fixo ou de uma política de ensino.
O gradiente de política é uma abordagem on-policy para criar uma política que otimiza diretamente a própria política, seguindo o gradiente do retorno esperado em relação aos parâmetros da política. Conceitualmente, ele é semelhante ao gradiente descendente estocástico (SGD), que tenta minimizar o erro de uma previsão com uma função de perda. Há uma diferença fundamental, porém: o SGD costuma estimar parâmetros para minimizar uma perda. O gradiente de política, por outro lado, tenta estimar os parâmetros da distribuição da política para priorizar ações que maximizem a recompensa. O objetivo é criar uma distribuição de probabilidade para todas as ações possíveis que torne mais prováveis as ações que renderão recompensas maiores e menos prováveis as que renderão recompensas menores.
Os gradientes de política são os chamados métodos ator-crítico. O ator é uma rede de política que seleciona ações, e o crítico que estima o quão bem essa política associa ações para estados a uma recompensa específica.
Se a sua política for (uma distribuição de probabilidade sobre as ações), e o objetivo do agente é maximizar um retorno esperado denotado por então ele daria passos de subida de gradiente definidos como:
Nesta é o vetor de parâmetros de política que determina a distribuição de probabilidade das ações. A política antiga é atualizada, , pela política anterior mais a taxa de aprendizado vezes o gradiente da política. O gradiente da política é o gradiente em relação a vezes uma função objetivo que representa o retorno esperado da política.
Um gradiente de política aprende aplicando a política atual, selecionando uma ação, avaliando a recompensa e, em seguida, calculando o gradiente da função objetivo. Em seguida, o algoritmo aplica uma atualização de política para a próxima iteração, quando pode executar uma ação e observar a vantagem obtida com a atualização.
No cerne da abordagem de gradiente de política está o teorema do gradiente de política, que mostra como uma políticapode ser otimizada. O gradiente é simplesmente o quanto a política aumenta ou diminui a probabilidade de uma ação, multiplicado pelas recompensas obtidas com essa ação. A equação do teorema do gradiente de política é dada por:
Esta equação afirma que o gradiente de uma determinada política para os parâmetros pode ser definido como uma expectativa . Essa expectativa é uma função de pontuação vezes a probabilidade logarítmica da ação escolhida e a recompensa que o agente obtém ao executar a ação no estado .
Um gradiente de política permite que um agente explore muitas variações e calcule, de forma rápida e eficiente, quais delas darão a maior recompensa. Essa técnica, no entanto, não é isenta de falhas. Por exemplo, os métodos de gradiente de política muitas vezes convergem para um máximo local em vez de um ótimo global. O cálculo de um gradiente de política pode exigir mais tempo de treinamento do que outros tipos de métodos on-policy. O próprio gradiente de política pode gerar variância alta, ou seja, a estimativa do gradiente em si é muito imprecisa. Esse resultado pode levar o processo a estimar de forma equivocada a trajetória do gradiente e o quanto as mudanças de política a afetam.
Um exemplo clássico de algoritmo de gradiente de política é a otimização de política por região de confiança (TRPO)2. Ele foi um grande avanço quando apresentado pela primeira vez, mas tem vários problemas bem conhecidos que dificultam seu uso na prática.
O PPO é um aprimoramento do uso do gradiente de política para o aprendizado. Em essência, ele busca dar o maior passo de melhoria possível em uma política com os dados atuais, sem fazer atualizações de política tão grandes a ponto de o desempenho entrar em colapso. Nos métodos de gradiente de política, a política é aprimorada com pequenos ajustes em seus parâmetros, na direção que aumenta a recompensa esperada. No entanto, atualizações grandes podem arruinar o desempenho, e um único passo de gradiente agressivo demais pode alterar drasticamente o comportamento do agente e fazer o aprendizado entrar em colapso. Algoritmos anteriores (como o TRPO) resolviam esse problema impondo uma restrição a quanto a nova política podia se afastar da antiga, mas eram matematicamente complexos.
O PPO mantém as atualizações de política próximas da política anterior, sem exigir restrições complexas. Em vez de escolher a próxima atualização de forma estocástica, o PPO usa o que se chama de objetivo substituto com recorte, que impede a política de dar saltos grandes. A política ainda vai melhorar (esse é o gradiente da recompensa à medida que o agente a aplica e observa os resultados), mas fará isso com segurança.
Com um gradiente de política, cada iteração dá um passo de subida de gradiente na função objetivo da política. O tamanho do passo representa um desafio. Se o passo for pequeno demais, o processo de treinamento será lento, mas, se for grande demais, a política variará tanto que o agente não conseguirá encontrar uma solução ótima.
No PPO, a ideia é restringir as atualizações de política com uma função objetivo substituta com recorte, que limita a mudança de política a um intervalo específico. Essa função é dada por:
Para decompor essa fórmula, a primeira parte é a função de razão: . Essa função de razão é:
Esta é a probabilidade de executar a ação no estado na política atual dividida pela anterior. Isso calcula a razão de probabilidade entre a política atual e a antiga. Se , então a ação no estado é mais provável na política atual do que na política antiga. Se a razão for menor que 1, então a ação é menos provável na política atual do que na antiga.
Esta seção mostra como o PPO recorta a função usando restrições substitutas para penalizar mudanças que levam a uma razão distante de 1. Esta etapa demonstra que, à medida que o algoritmo experimenta mudanças na política, o valor de épsilon mantém essas mudanças pequenas .
A principal vantagem dessa abordagem substituta com recorte é que ela produz mudanças pequenas e é computacionalmente eficiente. Métodos mais antigos, como o TRPO, usam a divergência de KL, depois de calcular a função objetivo, para restringir a atualização de política. Essa abordagem pode ser eficaz para restringir as atualizações, mas exige uma implementação complexa e mais tempo de computação. O PPO implementa essa razão de probabilidade recortada diretamente na função objetivo, o que acelera cada época de treinamento.
Outra vantagem do PPO sobre muitas outras abordagens é que ele gera maior eficiência amostral, ou seja, cada interação com o ambiente resulta em uma melhoria maior da política. O PPO alcança essa eficiência criando um minilote de dados de rollout que pode usar os mesmos dados de interação em várias atualizações. Outras abordagens, como as Deep Q-Networks, podem ser ainda mais eficientes, mas exigem mais recursos computacionais e, por isso, não são a escolha preferida quando há dados suficientes.
Uma parte crucial da atualização da política é estimar exatamente quanta vantagem a política tem sobre as iterações anteriores. Essa etapa é computacionalmente mais complexa do que simplesmente calcular a diferença de recompensas entre duas políticas em um determinado passo. Os agentes precisam aprender o quanto a distribuição de probabilidades de ação ao longo de vários passos. Mesmo em um jogo relativamente simples de blackjack, a ação que um ator executa só se concretiza várias rodadas depois. Esse método se torna ainda mais importante em um jogo como o xadrez ou em um cenário que envolva navegação robótica.
Para aprender essas atualizações, o PPO usa o que se chama de estratégia iterativa de estimativa generalizada de vantagem (GAE). Essa etapa ajuda a determinar quão bem a política está funcionando e o quanto ela deve se afastar da política atual para melhorar. A GAE calcula as vantagens ponderando exponencialmente os erros futuros, o que dá ao PPO um sinal de aprendizado de baixa variância e baixo viés, que torna as atualizações de política estáveis e eficientes em amostras.
Interromper cedo demais o acúmulo de recompensas reais introduz viés alto, porque apenas uma pequena parte do retorno verdadeiro é considerada, ao lado de recompensas reais mínimas. Acumular recompensas demais leva a variância alta, porque depender de um número maior de amostras reais pode tornar a estimativa instável.
Bibliotecas como Stable-Baselines3 e RLlib oferecem implementações completas do PPO, que podem ser aplicadas a uma ampla gama de domínios e problemas. Também existem implementações mais leves, como o CleanRL, que incluem tutoriais de autoaprendizado escritos em PyTorch e TensorFlow e podem ser encontradas no GitHub.
Bibliotecas como a transformer reinforcement learning (TRL), da HuggingFace, são otimizadas especificamente para ajudar a treinar modelos de linguagem transformer com algoritmos de RL como o PPO. Nesse contexto, o PPO ajuda a garantir que os modelos aprendam a selecionar respostas mais alinhadas com os objetivos do criador do modelo e com o feedback humano.
Treine, valide, ajuste e implemente recursos de IA generativa, modelos de base e recursos de aprendizado de máquina com o IBM watsonx.ai, um estúdio empresarial de última geração para construtores de IA. Crie aplicações de IA em uma fração do tempo com uma fração dos dados.
Use a IA a serviço de sua empresa com a experiência e o portfólio de soluções líder do setor da IBM à sua disposição.
Reinvente os fluxos de trabalho e operações críticos adicionando IA para maximizar experiências, tomadas de decisão em tempo real e valor de negócios.
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. (2015, June). Trust region policy optimization. In International conference on machine learning (pp. 1889-1897). PMLR.