Leer AI met Python · Les

Proximal Policy Optimization (PPO)

Geknipte surrogate objective, GAE-advantageschatting, PPO met stable-baselines3.

Les 3 van 413 stappen

Proximal Policy Optimization (PPO) is een gratis Leer AI met Python-les op CoddyKit. Dit is les 3 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Leer AI met Python. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Leer AI met Python bevat in totaal 4 lessen.

Waarom PPO?

PPO is tegenwoordig het standaardalgoritme voor bekrachtigingsleren: stabiel, steekproefefficiënt en eenvoudig af te stellen. Het lost een kernprobleem van beleidsgradiënten op: aanpassingen die te groot zijn en het beleid vernietigen. Dit doet het door te beperken hoeveel het beleid per aanpassing kan veranderen.

Het gevaar van grote aanpassingen

Eén overdreven grote aanpassing van het beleid kan de prestaties laten instorten. Omdat bekrachtigingsleren volgens het huidige beleid werkt, is herstel moeilijk. PPO houdt elke aanpassing dicht bij het huidige beleid om veilig te blijven.

De kansverhouding

PPO volgt de verhouding tussen nieuwe en oude actiekansen: ratio = pi_new(a|s) / pi_old(a|s). Een verhouding dicht bij 1 betekent dat het beleid nauwelijks is veranderd; een verhouding die ver van 1 ligt betekent een grote verschuiving.

ratio = torch.exp(new_log_prob - old_log_prob)

De afgeknotte doelstelling

Het kenmerkende onderdeel van PPO is de afgeknotte surrogaatdoelstelling. Deze vermenigvuldigt de verhouding met het voordeel, maar kapt de verhouding af op [1-eps, 1+eps]. Zo verdwijnt de prikkel om het beleid te ver te veranderen.

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

De afkapdrempel epsilon

eps (gewoonlijk 0.2) is de afkapdrempel. Deze begrenst hoe ver de verhouding van 1 mag afwijken. Daardoor blijft de beleidsaanpassing begrensd en stabiel, zelfs als het voordeel groot is.

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

Waarom min() en afkappen werken

Door de min van de afgeknotte en niet-afgeknotte doelstelling te nemen, wordt de grens pessimistisch: verbeteringen buiten het afkapbereik leveren geen extra beloning op, waardoor de optimalisatie geen reden heeft om door te schieten.

Veralgemeende voordeelinschatting

PPO schat voordelen met GAE, dat meerstapsopbrengsten combineert met de parameters gamma en lambda. GAE vormt een afweging tussen vertekening en variantie en levert zo vloeiende, betrouwbare voordeleschattingen.

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

Meerdere rondes per gegevensbatch

In tegenstelling tot REINFORCE gebruikt PPO elke verzamelde gegevensbatch opnieuw voor meerdere optimalisatierondes. Het afkappen maakt dit veilig en verbetert de steekproefefficiëntie sterk.

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

PPO met Stable-Baselines3

In de praktijk schrijf je PPO zelden zelf. Stable-Baselines3 biedt een geteste implementatie. Maak deze met het beleidstype, de omgeving en het zichtbaarheidsniveau en roep daarna learn aan.

from stable_baselines3 import PPO

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

De getrainde agent gebruiken

Gebruik na de training predict om acties voor nieuwe observaties te verkrijgen. Stel voor evaluatie deterministic=True in om de waarschijnlijkste actie te kiezen in plaats van een actie te trekken.

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

Waarom PPO overheerst

PPO combineert stabiele afgeknotte aanpassingen, voordelen van GAE en hergebruik van gegevens tot een robuust, algemeen algoritme dat met minimale afstelling voor veel taken werkt. Daarom vormt het de basis voor alles van robotica tot RLHF.

Korte controle

Toets je begrip van PPO.

Samenvatting: PPO

Je hebt geleerd hoe PPO's afgeknotte surrogaatdoelstelling de kansverhouding en een afkapdrempel eps gebruikt om aanpassingen te begrenzen, hoe GAE voordelen schat en hoe gegevens over meerdere rondes worden hergebruikt. Je hebt PPO eenvoudig uitgevoerd met PPO("MlpPolicy", env, verbose=1) in Stable-Baselines3.

Gratis beginnen

Leer Python met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
53
Lessen
225

Veelgestelde vragen

Is de les “Proximal Policy Optimization (PPO)” gratis?

Ja — je kunt hier op het web alle 3 lessen van het leerpad Leer AI met Python, waaronder “Proximal Policy Optimization (PPO)”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus Leer AI met Python bevat in totaal 4 lessen.

Wat leer ik in “Proximal Policy Optimization (PPO)”?

Geknipte surrogate objective, GAE-advantageschatting, PPO met stable-baselines3. Je oefent met Leer AI met Python door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met Leer AI met Python te beginnen?

Ervaring vooraf is niet nodig. Leer AI met Python op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 3 van 4.

Hoe lang duurt de les “Proximal Policy Optimization (PPO)”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over Leer AI met Python?

Ja. Elke les over Leer AI met Python bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. Policy-gradientmethoden: REINFORCE
  2. Actor-criticmethoden (A2C)
  3. Proximal Policy Optimization (PPO)
  4. Aangepaste Gymnasium-omgevingen
← Terug naar Leer AI met Python