0Pricing
Learn AI with Python · Lezione

Metodi actor-critic (A2C)

Funzione di vantaggio, actor (policy) e critic (value), implementazione sincrona di A2C

Metodi actor-critic (A2C) è una lezione Learn AI with Python gratuita su CoddyKit. Questa è la lezione 2 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Learn AI with Python, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Learn AI with Python include 4 lezioni in totale.

Combinare policy e valore

I metodi Actor-Critic combinano due idee: un actor (una policy che sceglie le azioni) e un critic (una funzione di valore che le valuta). Il critic fornisce un feedback con una varianza inferiore rispetto ai ritorni grezzi, stabilizzando l'apprendimento.

L'actor

L'actor è la rete della policy. Restituisce i logit (o le probabilità) delle azioni per lo stato corrente, esattamente come in REINFORCE, e decide cosa fare.

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)

Il critic

Il critic stima il valore dello stato V(s): il ritorno atteso a partire dallo stato s. È una testa con un'unica uscita che prevede quanto sia favorevole la situazione corrente.

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

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

Backbone condiviso, due teste

Di solito actor e critic condividono i primi layer (il backbone) e poi si separano in due teste. Condividere le feature è efficiente e permette a entrambi i compiti di rafforzare rappresentazioni utili.

La funzione di vantaggio

La quantità fondamentale è il vantaggio A = r + gamma * V(s') - V(s). Misura quanto un'azione sia stata migliore rispetto alle aspettative del critic. Un vantaggio positivo significa «migliore della media», mentre uno negativo significa peggiore.

advantage = reward + gamma * V_next - V_current

Perché il vantaggio è migliore del ritorno grezzo

Usare il vantaggio invece dell'intero ritorno G_t centra il segnale attorno alla stima del critic, riducendo drasticamente la varianza. Questo è il motivo principale per cui l'actor-critic apprende in modo più stabile rispetto a REINFORCE.

La funzione di perdita dell'actor

L'actor viene addestrato come in REINFORCE, ma con un peso dato dal vantaggio invece che dal ritorno: aumenta la probabilità delle azioni con vantaggio positivo.

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

La funzione di perdita del critic

Il critic impara a prevedere accuratamente i ritorni. La sua funzione di perdita è l'errore quadratico tra la sua previsione V(s) e il target osservato r + gamma * V(s').

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

Funzione di perdita combinata

Addestrate entrambe le teste insieme sommando le funzioni di perdita (spesso con un piccolo bonus di entropia per incoraggiare l'esplorazione). Un'unica passata backward aggiorna il backbone condiviso e entrambe le teste.

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

A2C sincrono

A2C (Advantage Actor-Critic) è la versione sincrona: più worker paralleli raccolgono simultaneamente esperienze da copie dell'ambiente, quindi un unico aggiornamento sincronizzato utilizza tutti i loro dati, migliorando stabilità e throughput.

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

A2C e A3C a confronto

La variante asincrona A3C permette ai worker di aggiornarsi indipendentemente. A2C li sincronizza, risultando più semplice, più adatto alle GPU e in genere altrettanto efficace: ecco perché è così popolare.

Verifica rapida

Verificate la vostra comprensione dell'actor-critic.

Riepilogo: Actor-Critic e A2C

Avete imparato che l'actor restituisce i logit della policy e che il critic stima V(s), spesso tramite un backbone condiviso con due teste. Il vantaggio r + gamma*V(s') - V(s) riduce la varianza, mentre A2C sincrono utilizza worker paralleli per un addestramento stabile ed efficiente.

Domande Frequenti

La lezione «Metodi actor-critic (A2C)» è gratuita?

Sì — il testo completo di «Metodi actor-critic (A2C)» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Learn AI with Python, passa a CoddyKit PRO. Il corso Learn AI with Python include 4 lezioni in totale.

Cosa imparerò in «Metodi actor-critic (A2C)»?

Funzione di vantaggio, actor (policy) e critic (value), implementazione sincrona di A2C Eserciti Learn AI with Python con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Learn AI with Python?

Non è richiesta alcuna esperienza precedente. Learn AI with Python su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 4.

Quanto tempo richiede la lezione «Metodi actor-critic (A2C)»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Learn AI with Python?

Sì. Ogni lezione Learn AI with Python include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Metodi policy gradient: REINFORCE
  2. Metodi actor-critic (A2C)
  3. Proximal Policy Optimization (PPO)
  4. Ambienti Gymnasium personalizzati
← Torna a Learn AI with Python