Actor-critic
En familie af reinforcement learning-algoritmer, der kombinerer en policy-baseret aktør (actor) og en værdibaseret kritiker (critic) for at forbedre træningseffektivitet.
Kort fortalt
To neurale netværk lærer sammen: ét vælger handlinger (aktøren), og ét vurderer handlingerne (kritikeren).
- Kategori
- teknik
- Niveau
- øvet
- Udtale
- /ˈæktər ˈkrɪtɪk/
Betydninger
1- 1
En algoritme, der bruger to separate modeller: En aktør (actor) til at vælge handlinger baseret på en policy, og en kritiker (critic) til at estimere værdifunktionen (f.eks. state-value) for at give feedback til aktøren.
- A2C (Advantage Actor-Critic) er en populær implementation, hvor kritikeren estimerer fordelen (advantage) for at opdatere aktøren. — Mnih et al., 2016
- I kontinuerte kontrolopgaver bruges ofte en actor-critic-arkitektur for at håndtere højdimensionelle handlingsrum. — Lillicrap et al., 2015 (DDPG)
Hvornår bruges det
Actor-critic bruges ofte i reinforcement learning, når handlingsrummet er kontinuert eller stokastisk, og hvor man ønsker at reducere variansen i policy-gradient estimater. Metoden anvendes i robotstyring, spil-AI og autonome systemer.
Formel
Policy gradient med fordel: ∇θ J(θ) = E[∇θ log πθ(a|s) · (r + γV(s′) - V(s))]Kodeeksempel
# Pseudokode for en simpel actor-critic opdatering
state = env.reset()
while not done:
action = actor(state) # policy netværk
next_state, reward, done = env.step(action)
td_error = reward + gamma * critic(next_state) - critic(state)
critic_loss = td_error ** 2
# opdater critic
optimizer_critic.zero_grad()
critic_loss.backward()
optimizer_critic.step()
# opdater actor
log_prob = actor.log_prob(state, action)
actor_loss = -log_prob * td_error.detach()
optimizer_actor.zero_grad()
actor_loss.backward()
optimizer_actor.step()
state = next_stateEn simpel implementering af en actor-critic loop, hvor kritikeren estimerer state-value, og aktøren opdateres med TD-fejlen som fordel.
Oprindelse
Begrebet stammer fra Barto, Sutton og Andersons arbejde i 1983, hvor de introducerede en arkitektur med en separat 'actor' og 'critic' til at løse reinforcement learning-problemer.