Actor-critic-metoder (A2C)
Fordelsfunksjonen, actor (policy) + critic (verdi) og synkron implementasjon av A2C.
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_currentHvorfor 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 updateA2C 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.
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
- Policy-gradientmetoder: REINFORCE
- Actor-critic-metoder (A2C)
- Proximal Policy Optimization (PPO)
- Egendefinerte Gymnasium-miljøer