0Pricing
Learn AI with Python · Aula

Otimização proximal de política (PPO)

Objetivo substituto limitado, estimativa de vantagem GAE e PPO com stable-baselines3.

Otimização proximal de política (PPO) é uma aula grátis de Learn AI with Python no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Learn AI with Python, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Learn AI with Python inclui 4 aulas no total.

Por que PPO?

PPO é atualmente o algoritmo de RL padrão: estável, eficiente em amostras e fácil de ajustar. Ele resolve um problema central dos gradientes da política — atualizações grandes demais que destroem a política — ao limitar o quanto a política pode mudar a cada atualização.

O perigo de grandes atualizações

Uma única atualização da política grande demais pode fazer o desempenho desmoronar e, como o RL é executado em política, a recuperação é difícil. O PPO mantém cada atualização próxima da política atual para permanecer seguro.

A razão entre probabilidades

O PPO acompanha a razão entre as probabilidades nova e antiga da ação: ratio = pi_new(a|s) / pi_old(a|s). Uma razão próxima de 1 significa que a política mudou pouco; uma razão distante de 1 significa uma grande mudança.

ratio = torch.exp(new_log_prob - old_log_prob)

O objetivo substituto com recorte

A característica marcante do PPO é o objetivo substituto com recorte. Ele multiplica a razão pela vantagem, mas aplica um recorte à razão, limitando-a a [1-eps, 1+eps] e eliminando o incentivo para alterar demais a política.

clipped = torch.clamp(ratio, 1 - eps, 1 + eps)
objective = torch.min(ratio * adv, clipped * adv)
loss = -objective.mean()

O limiar de recorte épsilon

eps (normalmente 0.2) é o limiar de recorte. Ele limita o quanto a razão pode se afastar de 1; assim, mesmo que a vantagem seja grande, a atualização da política permanece limitada e estável.

eps = 0.2  # allow at most +/-20% change in probability

Por que min() e o recorte funcionam

Usar o min entre os objetivos com e sem recorte torna o limite pessimista: melhorias além do intervalo de recorte não oferecem recompensa adicional, portanto o otimizador não tem motivo para ultrapassá-lo.

Estimativa generalizada de vantagem

O PPO estima as vantagens com GAE, que combina retornos de várias etapas usando os parâmetros gamma e lambda. O GAE equilibra viés e variância para produzir estimativas de vantagem suaves e confiáveis.

def gae(rewards, values, gamma=0.99, lam=0.95):
    adv, gae_acc = [], 0
    for t in reversed(range(len(rewards))):
        delta = rewards[t] + gamma * values[t+1] - values[t]
        gae_acc = delta + gamma * lam * gae_acc
        adv.insert(0, gae_acc)
    return adv

Várias épocas por lote

Ao contrário do REINFORCE, o PPO reutiliza cada lote de dados coletados por várias épocas de otimização. O recorte torna isso seguro, melhorando bastante a eficiência de amostras.

for _ in range(n_epochs):
    # recompute ratio and clipped loss on the same batch
    optimizer.zero_grad()
    loss.backward()
    optimizer.step()

PPO com Stable-Baselines3

Na prática, raramente é necessário programar o PPO manualmente. O Stable-Baselines3 fornece uma implementação testada. Crie-a com o tipo de política, o ambiente e o nível de detalhamento; depois, chame learn.

from stable_baselines3 import PPO

model = PPO("MlpPolicy", env, verbose=1)
model.learn(total_timesteps=100_000)

Usando o agente treinado

Depois do treinamento, use predict para obter ações para novas observações. Defina deterministic=True durante a avaliação para escolher a ação mais provável em vez de fazer amostragem.

obs, _ = env.reset()
action, _ = model.predict(obs, deterministic=True)
model.save("ppo_agent")

Por que PPO predomina

O PPO combina atualizações estáveis com recorte, vantagens calculadas por GAE e reutilização de dados em um algoritmo robusto e geral que funciona em muitas tarefas com ajustes mínimos; por isso, é usado em tudo, da robótica ao RLHF.

Verificação rápida

Teste sua compreensão do PPO.

Recapitulação: PPO

Você aprendeu o objetivo substituto com recorte do PPO, que usa a razão entre probabilidades e um limiar de recorte eps para limitar as atualizações, o GAE para estimar vantagens e a reutilização de dados em várias épocas. Você executou tudo facilmente com PPO("MlpPolicy", env, verbose=1) no Stable-Baselines3.

Perguntas Frequentes

A aula “Otimização proximal de política (PPO)” é grátis?

Sim — o texto completo de “Otimização proximal de política (PPO)” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Learn AI with Python, atualize para CoddyKit PRO. O curso de Learn AI with Python inclui 4 aulas no total.

O que vou aprender em “Otimização proximal de política (PPO)”?

Objetivo substituto limitado, estimativa de vantagem GAE e PPO com stable-baselines3. Você pratica Learn AI with Python com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Learn AI with Python?

Nenhuma experiência prévia é necessária. Learn AI with Python no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.

Quanto tempo leva a aula “Otimização proximal de política (PPO)”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Learn AI with Python?

Sim. Cada aula de Learn AI with Python inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Métodos de gradiente de política: REINFORCE
  2. Métodos ator-crítico (A2C)
  3. Otimização proximal de política (PPO)
  4. Ambientes personalizados do Gymnasium
← Voltar para Learn AI with Python