Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Implementazioni Incrementali | Metodi Monte Carlo
Introduzione al Reinforcement Learning

bookImplementazioni Incrementali

Memorizzare ogni ritorno per ciascuna coppia stato-azione può rapidamente esaurire la memoria e aumentare significativamente il tempo di calcolo — soprattutto in ambienti di grandi dimensioni. Questa limitazione interessa sia gli algoritmi di controllo Monte Carlo on-policy che off-policy. Per affrontare questo problema, si adottano strategie di calcolo incrementale, simili a quelle utilizzate negli algoritmi multi-armed bandit. Questi metodi permettono di aggiornare le stime dei valori in tempo reale, senza conservare l'intera cronologia dei ritorni.

Controllo Monte Carlo On-Policy

Per il metodo on-policy, la strategia di aggiornamento è simile a quella utilizzata negli algoritmi MAB:

Q(s,a)Q(s,a)+α(GQ(s,a))Q(s, a) \gets Q(s, a) + \alpha (G - Q(s, a))

dove α=1N(s,a)\displaystyle \alpha = \frac{1}{N(s, a)} per la stima della media. Gli unici valori che devono essere memorizzati sono le stime correnti dei valori d'azione Q(s,a)Q(s, a) e il numero di volte in cui la coppia stato-azione (s,a)(s, a) è stata visitata N(s,a)N(s, a).

Pseudocodice

Controllo Monte Carlo Off-Policy

Per il metodo off-policy con campionamento di importanza ordinario tutto è uguale al metodo on-policy.

Una situazione più interessante si verifica con il campionamento di importanza pesato. L'equazione appare la stessa:

Q(s,a)Q(s,a)+α(GQ(s,a))Q(s, a) \gets Q(s, a) + \alpha (G - Q(s, a))

ma α=1N(s,a)\displaystyle \alpha = \frac{1}{N(s, a)} non può essere utilizzato perché:

  1. Ogni ritorno è pesato da ρ\rho;
  2. La somma finale non è divisa per N(s,a)N(s, a), ma per ρ(s,a)\sum \rho(s, a).

Il valore di α\alpha che può effettivamente essere utilizzato in questo caso è pari a WC(s,a)\displaystyle \frac{W}{C(s,a)} dove:

  • WW è il ρ\rho per la traiettoria corrente;
  • C(s,a)C(s, a) è pari a ρ(s,a)\sum \rho(s, a).

E ogni volta che la coppia stato-azione (s,a)(s, a) si verifica, il ρ\rho della traiettoria corrente viene aggiunto a C(s,a)C(s, a):

C(s,a)C(s,a)+WC(s, a) \gets C(s, a) + W

Pseudocodice

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 4. Capitolo 7

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

Awesome!

Completion rate improved to 2.7

bookImplementazioni Incrementali

Scorri per mostrare il menu

Memorizzare ogni ritorno per ciascuna coppia stato-azione può rapidamente esaurire la memoria e aumentare significativamente il tempo di calcolo — soprattutto in ambienti di grandi dimensioni. Questa limitazione interessa sia gli algoritmi di controllo Monte Carlo on-policy che off-policy. Per affrontare questo problema, si adottano strategie di calcolo incrementale, simili a quelle utilizzate negli algoritmi multi-armed bandit. Questi metodi permettono di aggiornare le stime dei valori in tempo reale, senza conservare l'intera cronologia dei ritorni.

Controllo Monte Carlo On-Policy

Per il metodo on-policy, la strategia di aggiornamento è simile a quella utilizzata negli algoritmi MAB:

Q(s,a)Q(s,a)+α(GQ(s,a))Q(s, a) \gets Q(s, a) + \alpha (G - Q(s, a))

dove α=1N(s,a)\displaystyle \alpha = \frac{1}{N(s, a)} per la stima della media. Gli unici valori che devono essere memorizzati sono le stime correnti dei valori d'azione Q(s,a)Q(s, a) e il numero di volte in cui la coppia stato-azione (s,a)(s, a) è stata visitata N(s,a)N(s, a).

Pseudocodice

Controllo Monte Carlo Off-Policy

Per il metodo off-policy con campionamento di importanza ordinario tutto è uguale al metodo on-policy.

Una situazione più interessante si verifica con il campionamento di importanza pesato. L'equazione appare la stessa:

Q(s,a)Q(s,a)+α(GQ(s,a))Q(s, a) \gets Q(s, a) + \alpha (G - Q(s, a))

ma α=1N(s,a)\displaystyle \alpha = \frac{1}{N(s, a)} non può essere utilizzato perché:

  1. Ogni ritorno è pesato da ρ\rho;
  2. La somma finale non è divisa per N(s,a)N(s, a), ma per ρ(s,a)\sum \rho(s, a).

Il valore di α\alpha che può effettivamente essere utilizzato in questo caso è pari a WC(s,a)\displaystyle \frac{W}{C(s,a)} dove:

  • WW è il ρ\rho per la traiettoria corrente;
  • C(s,a)C(s, a) è pari a ρ(s,a)\sum \rho(s, a).

E ogni volta che la coppia stato-azione (s,a)(s, a) si verifica, il ρ\rho della traiettoria corrente viene aggiunto a C(s,a)C(s, a):

C(s,a)C(s,a)+WC(s, a) \gets C(s, a) + W

Pseudocodice

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 4. Capitolo 7
some-alt