Lær AI med Python · leksjon

Actor-critic-metoder (A2C)

Fordelsfunksjonen, actor (policy) + critic (verdi) og synkron implementasjon av A2C.

Leksjon 2 av 413 trinn

Actor-critic-metoder (A2C) er en gratis leksjon i Lær AI med Python på CoddyKit. Dette er leksjon 2 av 4. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Lær AI med Python, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Lær AI med Python inneholder totalt 4 leksjoner.

Kombinere policy og verdi

Actor-Critic-metoder kombinerer to ideer: en actor (en policy som velger handlinger) og en critic (en verdifunksjon som vurderer dem). Criticen gir tilbakemeldinger med lavere varians enn rå avkastning, noe som stabiliserer læringen.

Actoren

Actoren er policynettverket. Det gir ut handlings-logits (eller sannsynligheter) for den gjeldende tilstanden, akkurat som i REINFORCE, og avgjør hva som skal gjøres.

class ActorCritic(nn.Module):
    def __init__(self, obs_dim, n_actions):
        super().__init__()
        self.shared = nn.Sequential(nn.Linear(obs_dim, 128), nn.ReLU())
        self.actor = nn.Linear(128, n_actions)

Criticen

Criticen estimerer tilstandsverdien V(s): den forventede avkastningen fra tilstanden s. Det er et hode med ett utdataelement som forutsier hvor god den gjeldende situasjonen er.

        self.critic = nn.Linear(128, 1)

    def forward(self, s):
        h = self.shared(s)
        return self.actor(h), self.critic(h)

Felles backbone, to hoder

Actoren og criticen deler vanligvis de tidlige lagene (backbone), før nettverket deles i to hoder. Deling av egenskaper er effektivt og lar begge oppgavene forsterke nyttige representasjoner.

Advantage-funksjonen

Nøkkelstørrelsen er advantage A = r + gamma * V(s') - V(s). Den måler hvor mye bedre en handling var enn det criticen forventet. Positiv advantage betyr «bedre enn gjennomsnittet», mens negativ advantage betyr dårligere.

advantage = reward + gamma * V_next - V_current

Hvorfor advantage er bedre enn rå avkastning

Hvis du bruker advantage i stedet for hele avkastningen G_t, sentreres signalet rundt criticens estimat, og variansen reduseres kraftig. Dette er hovedårsaken til at actor-critic lærer mer stabilt enn REINFORCE.

Actorens tap

Actoren trenes som i REINFORCE, men vektes med advantage i stedet for avkastningen: Øk sannsynligheten for handlinger med positiv advantage.

actor_loss = -(log_prob * advantage.detach()).mean()

Criticens tap

Criticen lærer å forutsi avkastning nøyaktig. Tapet er den kvadrerte feilen mellom prediksjonen V(s) og det observerte målet r + gamma * V(s').

target = reward + gamma * V_next.detach()
critic_loss = (V_current - target).pow(2).mean()

Kombinert tap

Tren begge hodene samtidig ved å summere tapene (ofte med en liten entropibonus for å oppmuntre til utforskning). Ett backward-pass oppdaterer den delte backbonen og begge hodene.

loss = actor_loss + 0.5 * critic_loss - 0.01 * entropy
loss.backward()

Synkron A2C

A2C (Advantage Actor-Critic) er den synkrone varianten: Flere parallelle worker-prosesser samler inn erfaring fra kopier av miljøet samtidig, og deretter bruker ett synkronisert oppdateringssteg alle dataene. Dette gir bedre stabilitet og gjennomstrømming.

# N parallel envs step together each iteration
# gather all transitions, then one combined update

A2C kontra A3C

Den asynkrone varianten A3C lar workerne oppdatere uavhengig. A2C synkroniserer dem, noe som er enklere, mer GPU-vennlig og vanligvis like effektivt, og derfor er metoden så populær.

Kunnskapssjekk

Sjekk forståelsen din av actor-critic.

Oppsummering: Actor-Critic og A2C

Du har lært at actoren gir ut policy-logits, mens criticen estimerer V(s), ofte gjennom en felles backbone med to hoder. Advantage r + gamma*V(s') - V(s) reduserer variansen, og synkron A2C bruker parallelle workere for stabil og effektiv trening.

Gratis å komme i gang

Lær deg Python med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
53
Leksjoner
225

Ofte stilte spørsmål

Er leksjonen «Actor-critic-metoder (A2C)» gratis?

Ja – du kan lese valgfritt 3 av leksjonene i læringsstien Lær AI med Python, inkludert «Actor-critic-metoder (A2C)», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i Lær AI med Python inneholder totalt 4 leksjoner.

Hva lærer jeg i «Actor-critic-metoder (A2C)»?

Fordelsfunksjonen, actor (policy) + critic (verdi) og synkron implementasjon av A2C. Du øver på Lær AI med Python med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med Lær AI med Python?

Ingen tidligere erfaring er nødvendig. Lær AI med Python på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 2 av 4.

Hvor lang tid tar leksjonen «Actor-critic-metoder (A2C)»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne Lær AI med Python-leksjonen?

Ja. Alle Lær AI med Python-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. Policy-gradientmetoder: REINFORCE
  2. Actor-critic-metoder (A2C)
  3. Proximal Policy Optimization (PPO)
  4. Egendefinerte Gymnasium-miljøer
← Tilbake til Lær AI med Python