PPO-penalty

forkortelse for Proximal Policy Optimization with KL penalty

PPO-penalty er en variant af PPO-algoritmen, der bruger en KL-divergens-straf i stedet for clipping for at begrænse policy-opdateringer.

Kort fortalt

PPO-penalty justerer policy'en ved at straffe for store ændringer via en KL-divergens-straf.

Kategori
teknik
Niveau
øvet

Betydninger

1
  1. 1

    En variant af PPO-algoritmen, der anvender en KL-divergens-straf for at begrænse størrelsen af policy-opdateringer, i stedet for at bruge clipping.

    • PPO-penalty anvender en adaptiv β-værdi til at balancere straffen.Schulman et al., 2017
    • I praksis kræver PPO-penalty mindre tuning af hyperparametre end PPO-clip.

Hvornår bruges det

Bruges i reinforcement learning når man ønsker en mere konsekvent begrænsning af policy-opdateringer uden at skulle justere et clipping-vindue. Det er især nyttigt i kontinuerlige aktionsrum.

Formel

L(θ) = E_t[ r_t(θ) A_t - β_t · KL(π_{θ_old} || π_θ) ]

Kodeeksempel

import torch

def ppo_penalty_loss(new_log_probs, old_log_probs, advantages, old_policy_dist, new_policy_dist, beta):
    ratio = torch.exp(new_log_probs - old_log_probs)
    kl = torch.distributions.kl.kl_divergence(old_policy_dist, new_policy_dist).mean()
    loss = -(ratio * advantages - beta * kl).mean()
    return loss

Eksempel på tabsfunktion for PPO-penalty i PyTorch.

Oprindelse

PPO-penalty blev introduceret af Schulman et al. i 2017 som en alternativ implementering af Proximal Policy Optimization med en adaptiv KL-straf.

Kilder

1