proximal policy optimization

En policy-gradient-algoritme der stabiliserer træning ved at begrænse opdateringernes størrelse til et lille område omkring den nuværende policy.

Kort fortalt

En metode til at lære en agent at handle optimalt ved at tage små, forsigtige skridt i retning af bedre adfærd.

Kategori
træning
Niveau
øvet

Betydninger

1
  1. 1

    En policy-gradient-metode i reinforcement learning der bruger en klippet surrogate objektivfunktion for at forhindre for store policy-opdateringer, hvilket gør træningen mere stabil.

    • PPO blev brugt til at træne OpenAI's agent i Dota 2.OpenAI, 2018
    • Det klippede objektiv i PPO forhindrer destruktive store opdateringer.Schulman et al., 2017

Hvornår bruges det

PPO bruges i reinforcement learning, især når man træner neurale netværk til robotstyring, spil eller dialogmodeller, og det er kendt for at være pålideligt og nemt at implementere.

Formel

L^CLIP(θ) = E_t[ min(r_t(θ) A_t, clip(r_t(θ), 1-ε, 1+ε) A_t) ] hvor r_t(θ) = π_θ(a_t|s_t) / π_θ_old(a_t|s_t)

Kodeeksempel

import torch

def ppo_update(policy, old_policy, states, actions, advantages, epsilon=0.2):
    # Compute probability ratio
    log_probs = policy.log_prob(states, actions)
    old_log_probs = old_policy.log_prob(states, actions)
    ratio = torch.exp(log_probs - old_log_probs)
    
    # Clipped objective
    surr1 = ratio * advantages
    surr2 = torch.clamp(ratio, 1 - epsilon, 1 + epsilon) * advantages
    loss = -torch.min(surr1, surr2).mean()
    
    # Gradient step
    optimizer.zero_grad()
    loss.backward()
    optimizer.step()

Kort eksempel på PPO-opdatering med klippet objektiv i PyTorch.

Oprindelse

Ordet 'proximal' betyder nærliggende; her refererer det til at opdateringen holdes tæt på den gamle policy. Introduceret af Schulman et al. i 2017.

Afledte ord

2

Kilder

1