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
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 lossEksempel 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.