Il 0% ha trovato utile questo documento (0 voti)
2 visualizzazioni122 pagine

Introduction To Reinforcement Learning With Python It

Il Reinforcement Learning (RL) è un ramo del machine learning che addestra agenti intelligenti attraverso l'interazione con l'ambiente, utilizzando metodi come il tentativo ed errore. Gli agenti apprendono a massimizzare le ricompense cumulative e sono influenzati da processi decisionali di Markov, che definiscono stati, azioni, transizioni e ricompense. Le applicazioni del RL spaziano dalla robotica ai giochi, dalla finanza alla sanità, e si distingue per l'assenza di dati etichettati e per l'apprendimento sequenziale delle decisioni.

Caricato da

ragnoraffaele162
Copyright
© All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato PDF, TXT o leggi online su Scribd
Il 0% ha trovato utile questo documento (0 voti)
2 visualizzazioni122 pagine

Introduction To Reinforcement Learning With Python It

Il Reinforcement Learning (RL) è un ramo del machine learning che addestra agenti intelligenti attraverso l'interazione con l'ambiente, utilizzando metodi come il tentativo ed errore. Gli agenti apprendono a massimizzare le ricompense cumulative e sono influenzati da processi decisionali di Markov, che definiscono stati, azioni, transizioni e ricompense. Le applicazioni del RL spaziano dalla robotica ai giochi, dalla finanza alla sanità, e si distingue per l'assenza di dati etichettati e per l'apprendimento sequenziale delle decisioni.

Caricato da

ragnoraffaele162
Copyright
© All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato PDF, TXT o leggi online su Scribd

Introduzione al Reinforcement

Learning con Python


Il Reinforcement Learning (RL) è un ramo avanzato del machine learning
focalizzato sull’addestramento di agenti intelligenti tramite l’interazione con
l’ambiente. In questo corso apprenderai come gli agenti scoprono gradualmente
comportamenti efficaci attraverso il metodo del tentativo ed errore. A partire da
concetti fondamentali come i processi decisionali di Markov e i multi-armed
bandit, affronterai la programmazione dinamica, i metodi Monte Carlo e
l’apprendimento a differenza temporale.

©2026 Codefinity. All Terms Reserved.


Teoria Fondamentale dell'RL

©2026 Codefinity. All Terms Reserved.


Che cos'è l'RL?

Per ottenere il massimo da questo corso, è necessario possedere una solida


comprensione della matematica (in particolare della teoria delle probabilità). È inoltre
utile avere familiarità con i concetti base del machine learning e con NumPy.

Definizione

L'apprendimento per rinforzo (RL) è un paradigma del machine learning


focalizzato principalmente su compiti di decisione e controllo, in cui un agente
apprende strategie ottimali interagendo con un ambiente e massimizzando le
ricompense cumulative.

L'apprendimento per rinforzo è fortemente ispirato alla psicologia comportamentale,


in particolare a come esseri umani e animali apprendono attraverso le esperienze.
Proprio come un cane impara a sedersi quando riceve premi per un comportamento
corretto, un agente RL apprende ricevendo ricompense per le sue azioni.

Agente e Ambiente

Definizione

L'agente è il decisore nel sistema RL. Osserva l'ambiente, seleziona azioni e


apprende dal feedback per migliorare le prestazioni future.

©2026 Codefinity. All Terms Reserved.


Definizione

L'ambiente rappresenta tutto ciò con cui l'agente interagisce. Risponde alle
azioni dell'agente e fornisce feedback sotto forma di nuovi stati e ricompense.

L'agente è unicamente responsabile di prendere decisioni — selezionando azioni in


base alle proprie osservazioni e apprendendo dai risultati ottenuti — mentre l'ambiente
stabilisce le regole di interazione.

Applicazioni dell'RL
L'apprendimento per rinforzo è ampiamente utilizzato in diversi settori in cui il processo
decisionale in condizioni di incertezza è fondamentale. Alcune applicazioni chiave
includono:

©2026 Codefinity. All Terms Reserved.


Robotica: l'RL aiuta i robot ad apprendere compiti complessi come afferrare
oggetti, locomozione e automazione industriale;
AI nei giochi: l'RL alimenta agenti AI in giochi come scacchi, Go e Dota 2,
raggiungendo prestazioni superiori a quelle umane;
Finanza: l'RL ottimizza strategie di trading, gestione di portafogli e valutazione
del rischio;
Sanità: l'RL supporta piani di trattamento personalizzati, chirurgia robotica e
scoperta di farmaci;
Sistemi autonomi: l'RL consente auto a guida autonoma, droni e sistemi di
controllo del traffico adattivi;
Sistemi di raccomandazione: l'RL contribuisce a migliorare le raccomandazioni
di contenuti personalizzati su piattaforme di streaming e e-commerce.

©2026 Codefinity. All Terms Reserved.


RL Rispetto ad Altri Paradigmi di Apprendimento

L'apprendimento automatico comprende tre principali paradigmi di apprendimento,


ciascuno adatto a diversi tipi di problemi. L'apprendimento per rinforzo è uno di questi,
insieme all'apprendimento supervisionato e all'apprendimento non supervisionato.

Caratteristiche chiave dell'RL

©2026 Codefinity. All Terms Reserved.


Nessun dato etichettato: l'RL non richiede coppie input-output predefinite
ma apprende dall'esperienza;
Apprendimento per tentativi ed errori: l'agente esplora diverse azioni e
affina la propria strategia in base al feedback;
Presa di decisioni sequenziale: l'RL è progettato per compiti in cui le
decisioni attuali influenzano i risultati futuri;
Massimizzazione della ricompensa: l'obiettivo dell'apprendimento è
ottimizzare le ricompense a lungo termine piuttosto che la correttezza a
breve termine.

Confronto tra i tre paradigmi di ML

©2026 Codefinity. All Terms Reserved.


Apprendiment
Apprendimento Apprendimento
Caratteristica non
per rinforzo supervisionato
supervisionato

Nessun dataset
Requisito dei Dati non
ⓘ fisso (interagisce Dati etichettati
dati etichettati
con l'ambiente)

Massimizzare le
Prevedere i Trovare schemi
Obiettivo ⓘ ricompense
risultati nascosti
cumulative

Impara tramite
Associa input e
tentativi ed Identifica
Approccio di output
ⓘ errori strutture
apprendimento utilizzando dati
interagendo con nascoste nei dat
etichettati
l'ambiente

Ricompense e
Feedback Nessun feedbac
penalità guidano
Meccanismo di diretto basato esplicito, scopre
ⓘ l'apprendimento
feedback sulle risposte la struttura
attraverso le
corrette note autonomament
interazioni

Perché l'Apprendimento per Rinforzo è Diverso

©2026 Codefinity. All Terms Reserved.


L'apprendimento per rinforzo condivide alcune somiglianze con altri paradigmi, ma si
distingue per il suo approccio unico al processo di apprendimento.

Apprendimento Supervisionato

Nell'apprendimento supervisionato, un dataset fornisce istruzioni esplicite su quale


dovrebbe essere l'output corretto. Nell'apprendimento per rinforzo, non esiste una
supervisione esplicita—l'agente deve determinare le azioni migliori attraverso
l'esperienza.

Apprendimento Non Supervisionato

L'apprendimento non supervisionato individua schemi nascosti nei dati senza


obiettivi specifici. L'apprendimento per rinforzo apprende attraverso l'interazione con
un ambiente per raggiungere un obiettivo esplicito (ad esempio, vincere una partita).

©2026 Codefinity. All Terms Reserved.


Processo Decisionale di Markov

Definizione

Il processo decisionale di Markov (MDP) è un quadro matematico utilizzato per modellare


problemi di presa di decisione in cui un agente interagisce con un ambiente nel tempo.

I problemi di apprendimento per rinforzo sono spesso inquadrati come MDP, che forniscono un modo
strutturato per definire il problema. Gli MDP descrivono l'ambiente utilizzando quattro componenti chiave:
stati, azioni, transizioni e ricompense. Queste componenti lavorano insieme secondo la proprietà di Markov,
che garantisce che lo stato futuro dipenda solo dallo stato e dall'azione attuali, e non dagli stati passati.

Le quattro componenti

Stato

Definizione

Uno stato $\(s\)$ è una rappresentazione dell'ambiente in un determinato momento. L'insieme di


tutti gli stati possibili è chiamato spazio degli stati $\(S\)$.

Uno stato è solitamente rappresentato da un insieme di parametri che raccolgono le caratteristiche rilevanti
dell'ambiente. Questi parametri possono includere vari aspetti come posizione, velocità, rotazione, ecc.

©2026 Codefinity. All Terms Reserved.


Azione

Definizione

Un'azione $\(a\)$ è una decisione o una mossa effettuata dall'agente per influenzare l'ambiente.
L'insieme di tutte le possibili azioni è chiamato spazio delle azioni $\(A\)$.

L'insieme delle azioni possibili di solito dipende dallo stato attuale.

©2026 Codefinity. All Terms Reserved.


Transizione

Definizione

Transizione descrive come lo stato dell'ambiente cambia in risposta all'azione dell'agente. La


funzione di transizione $\(p\)$ specifica la probabilità di passare da uno stato all'altro, dato
un'azione specifica.

In molti casi, gli ambienti possono essere deterministici o stocastici, il che significa che la transizione può essere
prevedibile oppure comportare un certo grado di casualità.

©2026 Codefinity. All Terms Reserved.


Ricompensa

Definizione

Una ricompensa $\(r\)$ è un valore numerico ricevuto dall'agente dopo aver eseguito un'azione in
uno specifico stato. La funzione che associa le transizioni alle ricompense attese è chiamata
funzione di ricompensa $\(R\)$.

Le ricompense guidano l'agente verso comportamenti desiderabili e possono essere sia positive che negative.
L'ingegneria delle ricompense è complessa, poiché l'agente potrebbe tentare di sfruttare le ricompense.

©2026 Codefinity. All Terms Reserved.


Proprietà di Markov
La proprietà di Markov in un processo decisionale di Markov afferma che il prossimo stato e la ricompensa
dipendono solo dallo stato attuale e dall'azione corrente, e non da informazioni passate. Questo garantisce un
quadro senza memoria, semplificando il processo di apprendimento.

Matematicamente, questa proprietà può essere descritta dalla seguente formula:

P (Rt+1 = r, St+1 = s′ ∣St, A t) = =


​ ​ ​ ​


P (Rt+1 = r, St+1 = s′ ∣S0 , A 0 , R1 , ..., St−1 , A t−1 , Rt, St, A t)
​ ​ ​ ​ ​ ​ ​ ​ ​ ​

dove: - $\(t\)$ è un'azione eseguita al tempo $\(R_t\)$.

Nota

La natura senza memoria degli MDP non significa che le osservazioni passate vengano ignorate. Lo
stato attuale dovrebbe codificare tutte le informazioni storiche rilevanti.

©2026 Codefinity. All Terms Reserved.


Episodi e Ritorni

La durata di un compito
I compiti nell'apprendimento per rinforzo sono generalmente classificati come
episodici o continui, a seconda di come il processo di apprendimento è strutturato nel
tempo.

Definizione

Episodio indica una sequenza completa di interazioni tra l'agente e l'ambiente,


che inizia da uno stato iniziale e prosegue attraverso una serie di transizioni fino
al raggiungimento di uno stato terminale.

I compiti episodici sono quelli che consistono in una sequenza finita di stati, azioni e
ricompense, in cui l'interazione dell'agente con l'ambiente è suddivisa in episodi distinti.

Al contrario, i compiti continui non presentano una chiara fine per ogni ciclo di
interazione. L'agente interagisce continuamente con l'ambiente senza reimpostare lo
stato iniziale e il processo di apprendimento è continuo, spesso senza un punto
terminale distinto.

©2026 Codefinity. All Terms Reserved.


Ritorno
È già noto che l'obiettivo principale dell'agente è massimizzare le ricompense
cumulative. Sebbene la funzione di ricompensa fornisca ricompense istantanee, non
tiene conto degli esiti futuri, il che può risultare problematico. Un agente addestrato
esclusivamente a massimizzare le ricompense immediate potrebbe trascurare i benefici
a lungo termine. Per affrontare questa problematica, introduciamo il concetto di
ritorno.

©2026 Codefinity. All Terms Reserved.


Definizione

Ritorno $\(G\)$ è la ricompensa totale accumulata che un agente riceve da uno


stato in poi, che incorpora tutte le ricompense che riceverà in futuro, non solo
quelle immediate.

Il ritorno rappresenta meglio quanto sia vantaggioso uno stato o un'azione nel lungo
termine. L'obiettivo dell'apprendimento per rinforzo può ora essere definito come
massimizzare il ritorno.

Se $\(T\)$ è il passo temporale finale, la formula del ritorno è la seguente:

Gt = Rt+1 + Rt+2 + Rt+3 + ... + RT


​ ​ ​ ​ ​

Sconto
Sebbene il ritorno semplice sia un buon obiettivo nei compiti episodici, nei compiti
continui si presenta un problema. Se il numero di passi temporali è infinito, il ritorno
stesso può diventare infinito. Per gestire questa situazione, si utilizza un fattore di
sconto per garantire che le ricompense future abbiano un peso minore, evitando che il
ritorno diventi infinito.

Definizione

Il fattore di sconto $\(\gamma\)$ è un fattore moltiplicativo utilizzato per


determinare il valore attuale delle ricompense future. Assume valori compresi tra
0 e 1, dove un valore vicino a 0 porta l'agente a dare priorità alle ricompense
immediate, mentre un valore vicino a 1 fa sì che l'agente consideri in modo più
significativo le ricompense future.

©2026 Codefinity. All Terms Reserved.


Return combinato con un fattore di sconto è chiamato return scontato.

La formula per il return scontato è la seguente:



Gt = Rt+1 + γRt+2 + γ 2 Rt+3 + ... = ∑ γ k Rt+k+1
​ ​ ​ ​ ​ ​

k=0

Approfondisci

Anche nei compiti episodici, l'utilizzo di un fattore di sconto offre vantaggi


pratici: motiva l'agente a raggiungere il proprio obiettivo il più rapidamente
possibile, portando a un comportamento più efficiente. Per questo motivo, la
scontistica viene comunemente applicata anche in contesti chiaramente episodici.

©2026 Codefinity. All Terms Reserved.


Modello, Politica e Valori

Modello

Definizione

Un modello è una rappresentazione dell'ambiente che definisce le probabilità di


transizione tra stati e le ricompense attese per le azioni intraprese.

Gli algoritmi di apprendimento per rinforzo possono essere suddivisi in due categorie: -
Model-based: in questo approccio, l'agente apprende o ha accesso a un modello
dell'ambiente, che gli consente di simulare stati e ricompense futuri prima di
intraprendere azioni. Questo permette all'agente di pianificare e prendere decisioni più
informate; - Model-free: in questo approccio, l'agente non dispone di un modello
diretto dell'ambiente. Impara esclusivamente attraverso l'interazione con l'ambiente,
affidandosi al metodo di tentativi ed errori per scoprire le azioni migliori.

Nella pratica, gli ambienti con modelli espliciti sono rari, rendendo difficile per gli
agenti affidarsi a strategie model-based. Di conseguenza, gli approcci model-free sono
diventati più diffusi e ampiamente studiati nella ricerca e nelle applicazioni di
apprendimento per rinforzo.

©2026 Codefinity. All Terms Reserved.


Politica

Definizione

Politica $\(\pi\)$ è la strategia che un agente segue per decidere le proprie azioni
in base allo stato attuale dell'ambiente.

Esistono due tipi di politiche: - Politica deterministica: l'agente seleziona sempre la


stessa azione per uno stato dato; - Politica stocastica: l'agente seleziona le azioni in
base a distribuzioni di probabilità.

Durante il processo di apprendimento, l'obiettivo dell'agente è trovare una politica


ottimale. Una politica ottimale è quella che massimizza il ritorno atteso, guidando
l'agente a prendere le migliori decisioni possibili in ogni stato dato.

©2026 Codefinity. All Terms Reserved.


Funzioni di valore
Le funzioni di valore sono fondamentali per comprendere come un agente valuta il
potenziale di uno specifico stato o coppia stato-azione. Vengono utilizzate per stimare
le ricompense attese future, aiutando l'agente a prendere decisioni informate.

Funzione di Valore di Stato

Definizione

Funzione di valore di stato $\(V\)$ (o $\(v\)$) è una funzione che fornisce il


ritorno atteso dell'essere in uno stato particolare e seguire una politica specifica.
Aiuta a valutare la desiderabilità degli stati.

©2026 Codefinity. All Terms Reserved.


Il valore di uno stato può essere espresso matematicamente come segue:


vπ (s) = Eπ [Gt∣St = s] = Eπ [∑ γ k Rt+k+1 ∣St = s]
​ ​ ​ ​ ​ ​ ​ ​

k=0

Funzione di valore stato-azione

Definizione

Funzione di valore stato-azione $\(Q\)$ (o $\(q\)$) è una funzione che fornisce il


ritorno atteso dell'esecuzione di una determinata azione in uno stato specifico e
del seguire successivamente una politica specifica. Aiuta a valutare la
desiderabilità delle azioni negli stati.

La funzione di valore stato-azione è spesso chiamata anche funzione di valore


dell'azione.

©2026 Codefinity. All Terms Reserved.


Il valore di un'azione può essere espresso matematicamente come segue:


qπ (s, a) = Eπ [Gt∣St = s, A t = a] = Eπ [∑ γ k Rt+k+1 ∣St = s, A t = a]
​ ​ ​ ​ ​ ​ ​ ​ ​ ​

k=0

Relazione tra Modello, Politica e Funzioni di Valore

I concetti di modello, politica e funzioni di valore sono strettamente collegati,


formando un quadro completo per la categorizzazione degli algoritmi di RL. Questo
quadro è definito da due assi principali: - Obiettivo di apprendimento: questo asse
rappresenta lo spettro degli algoritmi di RL in base alla loro dipendenza dalle funzioni di
valore, dalle funzioni di politica o da una combinazione di entrambe; - Applicazione del
modello: questo asse distingue gli algoritmi in base al fatto che utilizzino un modello
dell'ambiente o apprendano esclusivamente tramite interazione.

©2026 Codefinity. All Terms Reserved.


Combinando queste dimensioni, è possibile classificare gli algoritmi di RL in categorie
distinte, ognuna con le proprie caratteristiche e casi d'uso ideali. Comprendere queste
relazioni aiuta nella selezione dell'algoritmo più appropriato per compiti specifici,
garantendo processi di apprendimento e decisione efficienti.

©2026 Codefinity. All Terms Reserved.


Esplorazione vs Sfruttamento

Il problema della esplorazione vs sfruttamento è un dilemma fondamentale


nell'apprendimento per rinforzo. Si presenta quando un agente deve scegliere tra due
strategie concorrenti:

1. Esplorazione: provare nuove opzioni per raccogliere ulteriori informazioni,


anche se la ricompensa immediata è incerta;
2. Sfruttamento: selezionare l'opzione migliore conosciuta sulla base delle
esperienze passate per massimizzare le ricompense immediate.

Il Compromesso

©2026 Codefinity. All Terms Reserved.


Questo problema si verifica in scenari in cui le decisioni influenzano i risultati futuri. Se
un agente si limita a sfruttare ciò che conosce, potrebbe perdere opportunità migliori.
D'altra parte, un'eccessiva esplorazione può comportare rischi inutili o spreco di risorse
senza garantire risultati migliori.

Esempi del mondo reale

Raccomandazioni online: un servizio di streaming può raccomandare un film


popolare (sfruttamento) oppure suggerire un film meno conosciuto per
apprendere le preferenze dell'utente (esplorazione);
Sviluppo di prodotti: un'azienda può concentrarsi sul miglioramento di un
prodotto popolare che ha avuto successo costante sul mercato (sfruttamento)
oppure investire nello sviluppo di nuovi prodotti o funzionalità (esplorazione);
Strategie di investimento: un trader deve decidere se investire in azioni già
performanti (sfruttamento) oppure sperimentare nuovi investimenti che
potrebbero offrire rendimenti più elevati (esplorazione).

La sfida
La difficoltà risiede nell'equilibrare efficacemente queste due strategie. Un'eccessiva
sfruttamento può portare a guadagni subottimali nel lungo termine, mentre
un'esplorazione eccessiva può risultare inefficiente e costosa. La chiave è trovare un
equilibrio ottimale che massimizzi i benefici a lungo termine minimizzando i rischi.

Nota

Sebbene esistano diversi metodi per bilanciare esplorazione e sfruttamento, ogni


problema può richiedere un approccio personalizzato, considerando fattori come
la struttura delle ricompense, il tasso di cambiamento dell'ambiente e il livello di
incertezza riguardo alle conseguenze delle diverse azioni.

©2026 Codefinity. All Terms Reserved.


Basi di Gymnasium

Gymnasium è un toolkit open-source progettato per lo sviluppo e la valutazione di


agenti di reinforcement learning (RL). Fornisce una raccolta di ambienti standard per
testare algoritmi e addestrare agenti in modo efficiente.

Caratteristiche principali

API standardizzata: garantisce la compatibilità tra diversi ambienti;


Varietà di ambienti: supporta problemi di controllo classici, giochi Atari e
simulazioni di robotica;
Integrazione semplice: compatibile con framework di deep learning come
TensorFlow e PyTorch.

Flusso di lavoro
Un tipico flusso di lavoro in Gymnasium si presenta così:

1. Importazione della libreria

import gymnasium as gym

Dopo la dismissione della libreria originale gym , è ora consigliato utilizzare gymnasium —
un fork di gym ben mantenuto e attivamente sviluppato. Nonostante il cambio di
nome, la libreria viene ancora comunemente importata con l'alias gym per garantire la
retrocompatibilità e comodità.

2. Creazione di un ambiente

env = [Link]("CartPole-v1")

©2026 Codefinity. All Terms Reserved.


La funzione [Link]() istanzia un ambiente utilizzando il suo identificatore univoco
(ad esempio, "CartPole-v1" ). È anche possibile passare parametri di configurazione
aggiuntivi a seconda delle esigenze dell'ambiente.

3. Reset dell'ambiente

observation, info = [Link]()

Prima di interagire con l'ambiente, è necessario riportarlo allo stato iniziale tramite
[Link]() . Questo restituisce: - observation : lo stato iniziale dell'ambiente; - info :
dati ausiliari che possono includere metadati o configurazioni specifiche dello stato.

4. Interazione con l'ambiente

action = env.action_space.sample()
observation, reward, terminated, truncated, info = [Link](action)

Nella prima riga, viene scelta un'azione casuale dallo spazio delle azioni tramite
env.action_space.sample() . Lo spazio delle azioni definisce l'insieme di tutte le
possibili azioni che l'agente può compiere nell'ambiente. Inoltre, l'ambiente fornisce lo
spazio delle osservazioni, accessibile tramite env.observation_space , che rappresenta
l'insieme di tutte le possibili osservazioni (stati) che l'agente può incontrare.

Nella seconda riga, l'azione scelta viene passata a [Link](action) , che esegue l'azione
e restituisce i seguenti valori: - observation : il nuovo stato dell'agente dopo aver
compiuto l'azione; - reward : la ricompensa ricevuta per l'azione eseguita; - terminated :
booleano che indica se l'episodio è terminato (cioè, il compito è stato completato); -
truncated : booleano che indica se l'episodio è stato interrotto prematuramente (a
causa di limiti di tempo o altri vincoli); - info : informazioni diagnostiche aggiuntive,
spesso utilizzate per il debug o la registrazione.

5. Chiusura dell'ambiente

©2026 Codefinity. All Terms Reserved.


[Link]()

Se l'ambiente utilizza risorse esterne (ad esempio, finestre di rendering o simulazioni), è


opportuno chiuderlo tramite [Link]() .

Approfondisci

Se desideri approfondire le funzionalità offerte dalla libreria Gymnasium, visita


their website.

©2026 Codefinity. All Terms Reserved.


Problema del Multi-Armed Bandit

©2026 Codefinity. All Terms Reserved.


Introduzione al Problema

Il problema del multi-armed bandit (MAB) è una sfida ben nota nell'apprendimento
per rinforzo, nel processo decisionale e nella teoria della probabilità. Coinvolge un
agente che sceglie ripetutamente tra più azioni, ognuna delle quali offre una
ricompensa da una certa distribuzione di probabilità fissa. L'obiettivo è massimizzare
il rendimento su un numero fisso di passi temporali.

Origine del problema


Il termine "multi-armed bandit" deriva dall'analogia con una slot machine, spesso
chiamata "one-armed bandit" a causa della sua leva. In questo scenario, si immagini di
avere più slot machine, o una slot machine con più leve (bracci), e ogni braccio è
associato a una distribuzione di probabilità distinta per le ricompense. L'obiettivo è
massimizzare il rendimento su un numero limitato di tentativi scegliendo con
attenzione quale leva tirare.

©2026 Codefinity. All Terms Reserved.


La Sfida
Il problema MAB rappresenta la sfida di bilanciare esplorazione e sfruttamento:

Esplorazione: provare diverse leve per raccogliere informazioni sui loro


pagamenti;
Sfruttamento: tirare la leva che attualmente sembra la migliore per
massimizzare le ricompense immediate.

©2026 Codefinity. All Terms Reserved.


Un approccio ingenuo — giocare ripetutamente una sola leva — può portare a
rendimenti subottimali se esiste una leva migliore ma non viene esplorata. Al
contrario, un'eccessiva esplorazione può sprecare risorse su opzioni a basso
rendimento.

Applicazioni nel Mondo Reale

Sebbene originariamente inquadrato nel contesto del gioco d'azzardo, il problema


MAB si presenta in molti settori: - Pubblicità online: selezione dell'annuncio migliore
da mostrare in base all'interazione dell'utente; - Studi clinici: sperimentazione di più
trattamenti per individuare il più efficace; - Sistemi di raccomandazione: proposta dei
contenuti più rilevanti agli utenti.

©2026 Codefinity. All Terms Reserved.


Valori d'Azione

Il valore d'azione è un concetto fondamentale nel problema MAB. Riveste un ruolo


centrale in diversi algoritmi, tra cui epsilon-greedy e upper confidence bound. Lo scopo
principale di un valore d'azione è fornire una stima della ricompensa attesa quando
viene scelta una specifica azione. È simile a un valore stato-azione, ma è indipendente
dallo stato a causa della natura senza stato del problema MAB.

Definizione di valore d'azione


Formalmente, il valore d'azione, indicato come $\(A\)$ utilizzando i dati osservati.

Stima dei valori delle azioni


Esistono diversi metodi per stimare $\(a\)$; - $\(a\)$ assumendo che la distribuzione
delle ricompense rimanga stazionaria.

Definizione

Una distribuzione stazionaria è una distribuzione che non cambia nel tempo,
indipendentemente dalle azioni intraprese o dalle variazioni dell'ambiente.

Regola di aggiornamento incrementale

Sebbene la formula sopra possa essere utilizzata per stimare i valori delle azioni, richiede
di memorizzare tutte le ricompense precedenti e di ricalcolare la loro somma a ogni
passo temporale. Con gli aggiornamenti incrementali, ciò non è più necessario. La
formula per gli aggiornamenti incrementali può essere derivata come segue:

©2026 Codefinity. All Terms Reserved.


k
1
Qk+1 ​ = ∑ Ri
​ ​ ​

k
i=1
k−1
1
= (Rk + ∑ Ri )
​ ​ ​ ​

k
i=1

1 ​

= (Rk + (k − 1)Qk )
​ ​ ​

k
1
= (Rk + kQk − Qk )
​ ​ ​ ​

k
1
= Qk + (Rk − Qk )
​ ​ ​ ​

k
Dove, per una certa azione: - $\(k\)$, è possibile misurare l'errore come differenza tra
questi valori. Successivamente, la stima successiva può essere calcolata aggiustando
leggermente la stima precedente nella direzione della ricompensa reale, per ridurre
l'errore.

Questa intuizione porta a un'altra formula, che appare così:

Qk+1 = Qk + α(Rk − Qk )
​ ​ ​ ​

dove $\(\frac1k\)$ costante, poiché non richiede spazio aggiuntivo (per memorizzare
quante volte un'azione è stata eseguita) e consente l'adattamento ad ambienti non
stazionari dando più peso alle osservazioni recenti.

Inizializzazione ottimistica
All'inizio di un processo di addestramento, le stime dei valori d'azione possono variare
significativamente, il che può portare a sfruttamento prematuro. Ciò significa che
l'agente può sfruttare troppo presto le sue conoscenze iniziali, favorendo azioni
subottimali basate su esperienza limitata. Per mitigare questo problema e favorire una
esplorazione iniziale, una tecnica semplice ed efficace è la inizializzazione ottimistica.

©2026 Codefinity. All Terms Reserved.


Nella inizializzazione ottimistica, i valori d'azione vengono inizializzati a valori
relativamente alti (ad esempio, $\(Q_0(a) = 1\)$ invece di 0). Questo approccio crea
l'impressione che tutte le azioni siano inizialmente promettenti. Di conseguenza,
l'agente è incentivato a esplorare ciascuna azione più volte prima di scegliere la
migliore. Questa tecnica è più efficiente se utilizzata in combinazione con una
dimensione del passo costante.

©2026 Codefinity. All Terms Reserved.


Nota

La percentuale di azioni ottimali in questo e nei grafici successivi si riferisce alla


proporzione di ambienti in cui è stata scelta l'azione ottimale in un determinato
passo temporale.

Ad esempio, se ci sono 10 ambienti di test e l'azione ottimale è stata selezionata in


6 di essi al passo temporale 200, la percentuale di azioni ottimali per quel passo
sarà 0,6. Questa metrica è utile per valutare le prestazioni perché è correlata alla
massimizzazione della ricompensa, senza dipendere dai valori esatti delle
ricompense.

©2026 Codefinity. All Terms Reserved.


Algoritmo Epsilon-Greedy

L'algoritmo epsilon-greedy ($\(\varepsilon\)$-greedy) è una strategia semplice ma


estremamente efficace per affrontare il problema del multi-armed bandit. Sebbene
possa non essere robusto quanto altri metodi specifici per questo compito, la sua
semplicità e versatilità lo rendono ampiamente applicabile nel campo del
reinforcement learning.

Come Funziona
L'algoritmo segue questi passaggi:

©2026 Codefinity. All Terms Reserved.


1. Inizializzare le stime dei valori d'azione $\(Q(a)\)$ (ad esempio, 0.5) favorisce
una maggiore esplorazione; - Un basso $\(\varepsilon\)$ (ad esempio, 0.01)
privilegia lo sfruttamento dell'azione migliore conosciuta.

Codice di esempio

©2026 Codefinity. All Terms Reserved.


class EpsilonGreedyAgent:
def __init__(self, n_actions, epsilon):
"""Initialize an agent"""
self.n_actions = n_actions # Number of available actions
[Link] = epsilon # epsilon
self.Q = [Link](self.n_actions) # Estimated action
values
self.N = [Link](self.n_actions) # Action selection
counters

def select_action(self):
"""Select an action according to the epsilon-greedy
strategy"""
# With probability epsilon - random action
if [Link]() < [Link]:
return [Link](self.n_actions)
# Otherwise - action with highest estimated action value
else:
return [Link](self.Q)

def update(self, action, reward):


"""Update the values using sample average estimate"""
# Increasing the action selection counter
self.N[action] += 1
# Updating the estimated action value
self.Q[action] += (reward - self.Q[action]) /
self.N[action]

Informazioni aggiuntive

©2026 Codefinity. All Terms Reserved.


L'efficacia dell'algoritmo $\(\varepsilon\)$ diminuisce nel tempo secondo una
certa pianificazione (ad esempio, parte da 1 e diminuisce gradualmente fino a
0) per favorire l'esplorazione nelle fasi iniziali.

Riepilogo
L'algoritmo $\(\varepsilon\)$-greedy rappresenta un approccio di base per
bilanciare esplorazione e sfruttamento. Pur essendo semplice, costituisce una
base per comprendere strategie più avanzate come upper confidence bound
(UCB) e gradient bandits.

©2026 Codefinity. All Terms Reserved.


Algoritmo del Limite Superiore di Confidenza

L'algoritmo upper confidence bound (UCB) è un approccio popolare ed efficace per


risolvere il problema del multi-armed bandit. Presenta solide garanzie matematiche di
rapida convergenza, ottimizzando il processo di esplorazione.

Nonostante la sua efficacia nella risoluzione del problema MAB, l'algoritmo UCB
presenta alcune limitazioni rilevanti che ne restringono l'applicazione nell'ambito più
ampio del reinforcement learning: - Assunzione di ricompense stazionarie: l'algoritmo
UCB presume che le distribuzioni delle ricompense non cambino nel tempo; - Vincoli
sugli spazi di stati e azioni: per poter iniziare a scegliere le azioni secondo una logica,
l'algoritmo UCB richiede di provare ogni azione in ogni stato almeno una volta.

Mentre la prima limitazione può essere affrontata modificando leggermente


l'algoritmo, la seconda limitazione rimane una sfida significativa in molte applicazioni
pratiche.

Come Funziona
L'algoritmo UCB bilancia esplorazione e sfruttamento assegnando un intervallo di
confidenza al valore stimato di ciascuna azione e selezionando l'azione con il limite
superiore più alto. Questo approccio garantisce che le azioni con ricompense incerte
vengano esplorate, privilegiando al contempo le azioni che sembrano essere ottimali.

©2026 Codefinity. All Terms Reserved.


I passaggi dell'algoritmo UCB sono identici a quelli dell'algoritmo epsilon-greedy, ad
eccezione del passaggio di scelta di un'azione. L'algoritmo UCB seleziona un'azione $\
(t\)$ è un parametro regolabile che controlla l'equilibrio tra esplorazione e
sfruttamento, simile a $\(a\)$, dove valori maggiori rendono l'intervallo più ampio,
indicando che l'agente è meno sicuro del valore dell'azione, il che incoraggia
l'esplorazione.

La dimensione di questo intervallo di confidenza dipende da due fattori: 1. Tempo: con il


passare del tempo, l'agente diventa meno sicuro del valore dell'azione; 2. Frequenza
dell'azione: più spesso un'azione viene scelta, maggiore è la sicurezza dell'agente sul
suo valore.

Codice di esempio

©2026 Codefinity. All Terms Reserved.


class UpperConfidenceBoundAgent:
def __init__(self, n_actions, confidence):
"""Initialize an agent"""
self.n_actions = n_actions # Number of available actions
[Link] = confidence # c
self.Q = [Link](self.n_actions) # Estimated action values
self.N = [Link](self.n_actions) # Action selection counters
self.t = 0 # Time step counter

def select_action(self):
"""Select an action according to the upper confidence bound
strategy"""
# Increase the time step counter
self.t += 1

# Each action should be taken at least once


for action in range(self.n_actions):
if self.N[action] == 0:
return action

# Return the action with highest upper confidence bound


return [Link](self.Q + [Link] * [Link]([Link](self.t)
/ self.N))

def update(self, action, reward):


"""Update the values using sample average estimate"""
# Increasing the action selection counter
self.N[action] += 1
# Updating the estimated action value
self.Q[action] += (reward - self.Q[action]) / self.N[action]

Informazioni aggiuntive

©2026 Codefinity. All Terms Reserved.


L'algoritmo UCB incorpora un meccanismo di esplorazione, che richiede un'attenta
regolazione dell'iperparametro $\(c\)$, ma spesso è necessario un aggiustamento
sperimentale per ottenere i migliori risultati.

Riepilogo
L'algoritmo UCB è un metodo potente e ben fondato per bilanciare esplorazione e
sfruttamento nei problemi multi-armed bandit. Selezionando le azioni in base sia alle
ricompense stimate che all'incertezza, garantisce un apprendimento efficiente
riducendo al minimo il rimpianto.

©2026 Codefinity. All Terms Reserved.


Algoritmo dei Banditi a Gradiente

Quando si affrontano i problemi multi-armed bandit, i metodi tradizionali come epsilon-


greedy e UCB stimano i valori delle azioni per decidere quale azione intraprendere.
Tuttavia, i gradient bandits adottano un approccio diverso: apprendono le preferenze
per le azioni invece di stimarne i valori. Queste preferenze vengono aggiornate nel
tempo utilizzando la stochastic gradient ascent.

Preferenze
Invece di mantenere le stime dei valori delle azioni $\(a\)$; - Il denominatore
garantisce che la somma delle probabilità sia pari a 1.

La softmax è una funzione fondamentale nel ML, comunemente utilizzata per


convertire elenchi di numeri reali in elenchi di probabilità. Questa funzione
rappresenta un'approssimazione continua della funzione $\(\argmax\)$, consentendo
un'esplorazione naturale assegnando una probabilità non nulla anche alle azioni con
preferenza inferiore.

Regola di aggiornamento

Dopo aver selezionato un'azione $\(R_t\)$ è la ricompensa media osservata fino ad


ora.

Intuizione

Ad ogni passo temporale, tutte le preferenze vengono leggermente modificate. La


variazione dipende principalmente dalla ricompensa ricevuta e dalla ricompensa
media, e può essere spiegata così: - Se la ricompensa ricevuta è superiore alla media,
l'azione selezionata diventa più preferita e le altre azioni diventano meno preferite; -
Se la ricompensa ricevuta è inferiore alla media, la preferenza per l'azione selezionata
diminuisce, mentre le preferenze per le altre azioni aumentano, favorendo
l'esplorazione.

©2026 Codefinity. All Terms Reserved.


Codice di esempio

©2026 Codefinity. All Terms Reserved.


def softmax(x):
"""Simple softmax implementation"""
return [Link](x) / [Link]([Link](x))

class GradientBanditsAgent:
def __init__(self, n_actions, alpha):
"""Initialize an agent"""
self.n_actions = n_actions # Number of available actions
[Link] = alpha # alpha
self.H = [Link](n_actions) # Preferences
self.reward_avg = 0 # Average reward
self.t = 0 # Time step counter

def select_action(self):
"""Select an action according to the gradient bandits strategy"""
# Compute probabilities from preferences with softmax
probs = softmax(self.H)
# Choose an action according to the probabilities
return [Link](self.n_actions, p=probs)

def update(self, action, reward):


"""Update preferences"""
# Increase the time step counter
self.t += 1
# Update the average reward
self.reward_avg += reward / self.t

# Compute probabilities from preferences with softmax


probs = softmax(self.H) # Getting action probabilities from
preferences

# Update preference values using stochastic gradient ascent

©2026 Codefinity. All Terms Reserved.


self.H -= [Link] * (reward - self.reward_avg) * probs
self.H[action] += [Link] * (reward - self.reward_avg)

Informazioni aggiuntive
I gradient bandits presentano diverse proprietà interessanti:
- Relatività delle preferenze: i valori assoluti delle preferenze delle azioni non
influenzano il processo di selezione — contano solo le differenze relative. Spostare tutte
le preferenze dello stesso valore costante (ad esempio, aggiungendo 100) produce la
stessa distribuzione di probabilità; - Effetto della baseline nella regola di
aggiornamento: sebbene la formula di aggiornamento includa tipicamente la
ricompensa media come baseline, questo valore può essere sostituito con qualsiasi
costante indipendente dall'azione scelta. La baseline influenza la velocità di
convergenza ma non modifica la soluzione ottimale; - Impatto della dimensione del
passo: la dimensione del passo deve essere regolata in base al compito. Un valore più
piccolo garantisce un apprendimento più stabile, mentre un valore maggiore accelera il
processo di apprendimento.

©2026 Codefinity. All Terms Reserved.


Sommario
I banditi a gradiente offrono un potente alternativa agli algoritmi bandit tradizionali
sfruttando l'apprendimento basato sulle preferenze. La loro caratteristica più
interessante è la capacità di bilanciare in modo naturale esplorazione e sfruttamento.

©2026 Codefinity. All Terms Reserved.


Sfida: Multi-Armed Bandit

Da questo momento in poi, riceverai sfide di programmazione in formato Jupyter


Notebook. Se sai come configurare correttamente l'ambiente per questi notebook,
sentiti libero di farlo. Tuttavia, ti consigliamo di utilizzare Google Colab, poiché offre
molti vantaggi rispetto ai semplici notebook Jupyter. Leggi questo articolo per
scoprire come funziona Colab.

Nota

La verifica della correttezza della soluzione può essere complessa e possono


verificarsi errori. Se sei sicuro che la tua soluzione sia corretta ma viene segnalata
come errata, esamina attentamente la soluzione consigliata. Se ancora non riesci
a individuare problemi, prova a implementare la soluzione consigliata in una cella
separata ed eseguila.

Come aprire il notebook e completare i compiti?


Per aprire il notebook e completare i compiti, seguire questi passaggi: 1. Scaricare il
notebook: è possibile trovare il pulsante di download in fondo a questa pagina; 2.
Aprire Google Colab: accedere al sito web ed effettuare il login con il proprio account
Google; 3. Aprire il notebook: utilizzare File > Upload notebook oppure File > Open
notebook > Upload e selezionare il file scaricato. Se si desidera continuare a lavorare sui
compiti dopo una pausa, utilizzare File > Open notebook > Recent e trovare il proprio
notebook in quella finestra; 4. Seguire le istruzioni: il notebook conterrà istruzioni
dettagliate per i compiti. Si consiglia di leggerle prima di procedere con i compiti; 5.
Ricevere la chiave: dopo aver risolto ciascun compito, si riceverà una parte della chiave,
necessaria per completare il capitolo. Inserire queste parti all'interno di un quiz in fondo
alla pagina dopo aver terminato la sfida per verificare di aver completato tutti i compiti.

©2026 Codefinity. All Terms Reserved.


Sfida

Scarica il Notebook

©2026 Codefinity. All Terms Reserved.


Programmazione Dinamica

©2026 Codefinity. All Terms Reserved.


Che cos'è la Programmazione Dinamica?

Definizione

La programmazione dinamica (DP) aiuta a risolvere problemi complessi


scomponendo grandi problemi in sottoproblemi più piccoli e risolvendoli
ricorsivamente. Invece di risolvere ripetutamente lo stesso problema, la DP
sfrutta soluzioni già calcolate per velocizzare il processo.

È particolarmente utile nell'apprendimento per rinforzo (RL) per risolvere in modo


efficiente i processi decisionali di Markov (MDP) quando è disponibile un modello
completo dell'ambiente.

Nota

A partire da questo capitolo, tutti gli ambienti sono considerati MDP finiti. Gli
MDP finiti hanno spazio degli stati finito, spazio delle azioni finito e insieme
delle ricompense finito.

Condizioni per l'applicazione della DP


Non tutti i problemi possono essere risolti con la DP. Esistono due attributi chiave che
un problema deve possedere affinché la DP sia applicabile:

©2026 Codefinity. All Terms Reserved.


Struttura ottimale dei sottoproblemi: la soluzione ottimale di un problema
deriva dalle soluzioni ottimali dei suoi sottoproblemi. Negli MDP, ciò significa
che la politica ottimale in uno stato dipende dalle politiche ottimali degli stati
successivi. Poiché le decisioni in un MDP sono sequenziali, risolvere
sottoproblemi più piccoli (trovare la migliore azione per stati futuri) porta a
risolvere il problema complessivo (trovare la migliore azione per lo stato
attuale);
Sovrapposizione dei sottoproblemi: le soluzioni ai sottoproblemi vengono
riutilizzate per risolvere problemi più grandi. Negli MDP, questo è evidente
perché il valore di uno stato viene calcolato ripetutamente in diverse sequenze
decisionali. Poiché gli stati vengono spesso rivisitati, i valori calcolati in
precedenza possono essere memorizzati e riutilizzati, riducendo i calcoli
ridondanti e migliorando l'efficienza.

©2026 Codefinity. All Terms Reserved.


Ogni nodo nell'immagine rappresenta una chiamata ricorsiva per calcolare Fib(n), e la
struttura ad albero mostra come queste chiamate vengano suddivise in sottoproblemi
più piccoli. Si noti che sottoproblemi come Fib(2) e Fib(1) compaiono più volte,
dimostrando la sovrapposizione dei sottoproblemi, mentre la soluzione di Fib(5) è
costruita a partire dalle soluzioni ottimali dei suoi sottoproblemi, dimostrando la
struttura ottimale dei sottoproblemi. Questa ridondanza è ciò che la programmazione
dinamica mira a eliminare memorizzando e riutilizzando i risultati.

Poiché gli MDP presentano sia struttura ottimale dei sottoproblemi sia
sovrapposizione dei sottoproblemi, sono particolarmente adatti a soluzioni basate
sulla DP.

©2026 Codefinity. All Terms Reserved.


Perché utilizzare la Programmazione Dinamica
nell'Apprendimento per Rinforzo?

Garanzie di ottimalità: i metodi di programmazione dinamica garantiscono la


convergenza verso la politica ottimale quando il modello completo è noto;
Efficienza per soluzioni generali: con l'aiuto della programmazione dinamica,
è possibile ottenere soluzioni generali in modo efficiente, il che significa che la
politica risultante sarà ottimale per ogni singolo stato;
Fondamentale per altri metodi: i concetti della programmazione dinamica
costituiscono la base per altri metodi di apprendimento per rinforzo, come
Monte Carlo e apprendimento a differenza temporale.

Tuttavia, la programmazione dinamica non è praticabile per problemi su larga scala a


causa della sua dipendenza da un modello completo e delle richieste computazionali,
portando alle sfide discusse di seguito.

Sfide e limitazioni della Programmazione Dinamica


Sebbene la Programmazione Dinamica (DP) offra un quadro elegante per la risoluzione
dei problemi di RL, presenta sfide significative che ne limitano l'applicabilità negli
scenari reali:

Complessità computazionale: i metodi DP richiedono calcoli per ogni singolo


stato in un ambiente. All'aumentare dello spazio degli stati, il numero di calcoli
necessari cresce in modo significativo, rendendo la DP impraticabile per
problemi complessi;
Necessità di un modello noto: la DP presuppone che le probabilità di
transizione e le ricompense dell'ambiente siano note in anticipo. Tuttavia, in
molte applicazioni RL reali, queste informazioni non sono disponibili, rendendo
più pratici gli approcci senza modello.

©2026 Codefinity. All Terms Reserved.


Approfondisci

All'aumentare del numero di variabili di stato, lo spazio degli stati si espande in


modo esponenziale—una sfida nota come maledizione della dimensionalità.
Questo rende impraticabile memorizzare o calcolare soluzioni ottimali, limitando
la scalabilità della DP.

©2026 Codefinity. All Terms Reserved.


Equazioni di Bellman

Definizione

Un'equazione di Bellman è un'equazione funzionale che definisce una funzione di valore in forma
ricorsiva.

Per chiarire la definizione:

Un'equazione funzionale è un'equazione la cui soluzione è una funzione. Per l'equazione di Bellman, questa soluzione è la
funzione di valore per cui l'equazione è stata formulata;
Una forma ricorsiva significa che il valore nello stato attuale è espresso in termini di valori negli stati futuri.

In sintesi, risolvere l'equazione di Bellman fornisce la funzione di valore desiderata, e derivare questa equazione richiede
l'identificazione di una relazione ricorsiva tra stati attuali e futuri.

Funzione di valore di stato


Come promemoria, ecco una funzione di valore di stato in forma compatta:

vπ (s) = Eπ [Gt∣St = s]
​ ​ ​ ​

Per ottenere l'equazione di Bellman per questa funzione di valore, espandiamo il lato destro dell'equazione e definiamo una
relazione ricorsiva:

vπ (s) = Eπ [Gt∣St = s]


​ ​ ​


= Eπ [Rt+1 + γRt+2 + γ 2 Rt+3 + ...∣St = s] = Eπ [Rt+1 + γ ∑ γ k Rt+k+2 ∣St = s]
​ ​ ​ ​ ​


​ ​ ​ ​ ​


=E
k=0

L'ultima equazione di questa catena è un'equazione di Bellman per la funzione di valore di stato.

Intuizione

Per determinare il valore di uno stato $\(s'\)$.

Sommando tutte queste possibilità, si ottiene il valore atteso totale dello stato $\(s\)$ secondo la politica corrente.

Funzione di Valore d'Azione


Ecco una funzione di valore d'azione in forma compatta:

qπ (s, a) = Eπ [Gt∣St = s, A t = a]
​ ​ ​ ​ ​

La derivazione dell'equazione di Bellman per questa funzione è piuttosto simile a quella precedente:


qπ (s, a) = Eπ [Gt∣St = s, A t = a]


​ ​ ​ ​


= Eπ [Rt+1 + γRt+2 + γ 2 Rt+3 + ...∣St = s, A t = a] = Eπ [Rt+1 + γ ∑ γ k Rt
​ ​ ​ ​ ​ ​


​ ​ ​

k=0

L'ultima equazione di questa catena è un'equazione di Bellman per la funzione di valore d'azione.

©2026 Codefinity. All Terms Reserved.


Intuizione

Per trovare il valore di una coppia stato-azione $\(s'\)$ sotto la politica attuale.

©2026 Codefinity. All Terms Reserved.


Condizioni di Ottimalità

Nel capitolo precedente, hai appreso le equazioni di Bellman per le funzioni di valore di
stato e di valore stato-azione. Queste equazioni descrivono come i valori degli stati
possano essere definiti ricorsivamente attraverso i valori di altri stati, con i valori che
dipendono da una determinata politica. Tuttavia, non tutte le politiche sono
ugualmente efficaci. Infatti, le funzioni di valore forniscono un ordinamento parziale
per le politiche, che può essere descritto come segue:

π ≥ π ′ ⟺ vπ (s) ≥ vπ ′ (s)
​ ​ ∀s ∈ S

Quindi la politica $\(\pi'\)$ non è inferiore al rendimento atteso della politica $\(\pi'\)$.

Approfondisci

Un ordinamento parziale segue le regole usuali dell'ordinamento ma non obbliga


a confrontare ogni coppia. Nel nostro caso, possiamo classificare due politiche
solo se producono gli stessi risultati, oppure se una supera chiaramente l'altra. In
tutti gli altri casi, le politiche rimangono incomparabili.

Politica Ottimale

Definizione

Per qualsiasi MDP, esiste almeno una politica che è buona quanto o migliore di
tutte le altre politiche. Questa politica è chiamata politica ottimale $\(\pi_*\)$.
Anche se possono esistere molte politiche ottimali, tutte sono indicate come $\
(\pi_*\)$.

©2026 Codefinity. All Terms Reserved.


Perché esiste sempre una politica ottimale?

Potresti chiederti perché una politica ottimale esiste sempre per qualsiasi MDP. È una
domanda interessante, e l'intuizione alla base è sorprendentemente semplice. Ricorda
che gli stati in un MDP catturano completamente la condizione dell'ambiente. Questo
implica che ogni stato è indipendente dagli altri: l'azione scelta in uno stato non
influenza le ricompense o gli esiti ottenibili in un altro. Pertanto, selezionando l'azione
ottimale in ciascuno stato separatamente, si ottiene naturalmente la migliore
sequenza complessiva di azioni nell'intero processo. E questo insieme di azioni ottimali
in ogni stato costituisce una politica ottimale.

Inoltre, esiste sempre almeno una politica che sia sia ottimale sia deterministica.
Infatti, se per uno stato $\(a\)$ producono lo stesso ritorno atteso, sceglierne solo una
non influirà sull'ottimalità della politica. Applicando questo principio a ogni singolo
stato, la politica diventa deterministica pur mantenendo la sua ottimalità.

©2026 Codefinity. All Terms Reserved.


Funzioni di valore ottimali
Le politiche ottimali condividono le stesse funzioni di valore — un fatto che diventa
evidente quando si considera come le politiche vengono confrontate. Questo significa
che le politiche ottimali condividono sia la funzione di valore di stato sia la funzione di
valore d'azione.

Inoltre, le funzioni di valore ottimali possiedono le proprie equazioni di Bellman che


possono essere scritte senza riferimento a una politica specifica. Queste equazioni sono
chiamate equazioni di ottimalità di Bellman.

Funzione di valore di stato ottimale

©2026 Codefinity. All Terms Reserved.


Definizione

Funzione di valore di stato ottimale $\(V_*\)$ (o $\(v_*\)$) rappresenta il


rendimento atteso massimo ottenibile da uno stato specifico seguendo una
politica ottimale.

Può essere definito matematicamente come segue: $$


\def\E{\operatorname{\mathbb{E}}} v_(s) = \max_\pi v_\pi(s) = \E_{\pi_}[G_t | S_t = s]
$$

Equazione di ottimalità di Bellman per questa funzione di valore può essere derivata
come segue: $$ \begin{aligned} v_(s) &= \sum_a \pi_(a | s) \sum_{s', r} p(s', r | s, a)\Bigl(r
+ \gamma v_(s')\Bigr)\ &= \max_a \sum_{s', r} p(s', r | s, a)\Bigl(r + \gamma v_(s')\Bigr)
\end{aligned} $$

Intuizione

Come già noto, esiste sempre almeno una politica che è sia ottimale sia deterministica.
Una tale politica, per ogni stato, selezionerebbe costantemente una particolare azione
che massimizza i ritorni attesi. Pertanto, la probabilità di scegliere questa azione
ottimale sarebbe sempre 1, mentre la probabilità di scegliere qualsiasi altra azione
sarebbe 0. Dato ciò, l'equazione di Bellman originale non necessita più dell'operatore di
sommatoria. Invece, poiché si sa che verrà sempre selezionata la migliore azione
possibile, si può semplicemente sostituire la somma prendendo il massimo su tutte le
azioni disponibili.

Funzione di valore d'azione ottimale

©2026 Codefinity. All Terms Reserved.


Definizione

Funzione di valore d'azione ottimale $\(Q_*\)$ (o $\(q_*\)$) rappresenta il


rendimento atteso massimo ottenibile eseguendo una determinata azione in uno
stato specifico e seguendo successivamente la politica ottimale.

Può essere definita matematicamente come segue: $$


\def\E{\operatorname{\mathbb{E}}} q_(s, a) = \max_\pi q_\pi(s, a) = \E_{\pi_}[G_t |
S_t = s, A_t = a] $$

Equazione di ottimalità di Bellman per questa funzione di valore può essere derivata
come segue: $$ \begin{aligned} q_(s, a) &= \sum_{s', r} p(s', r | s, a)\Bigl(r + \gamma
\sum_{a'} \pi_(a' | s')q_(s', a')\Bigr)\ &= \sum_{s', r} p(s', r | s, a)\Bigl(r + \gamma
\max_{a'} q_(s', a')\Bigr) \end{aligned} $$

Intuizione

Analogamente alla funzione di valore di stato, la somma può essere sostituita


prendendo il massimo su tutte le azioni disponibili.

©2026 Codefinity. All Terms Reserved.


Valutazione della Policy

Definizione

Valutazione della policy è un processo di determinazione della funzione di valore


di una data policy.

Nota

La valutazione della policy può essere utilizzata per stimare sia la funzione di
valore di stato sia la funzione di valore d'azione. Tuttavia, per i metodi DP, verrà
utilizzata la funzione di valore di stato.

Come già noto, una funzione di valore di stato di una data policy può essere
determinata risolvendo una equazione di Bellman:

vπ (s) = ∑ π(a∣s) ∑ p(s′ , r∣s, a)(r + γvπ (s′ ))


​ ​ ​ ​

a s′ ,r

Se si dispone di un modello completo dell'ambiente (cioè, probabilità di transizione e


ricompense attese note per tutte le coppie stato-azione), le uniche variabili sconosciute
che rimangono nell'equazione sono i valori degli stati. Pertanto, l'equazione sopra può
essere riformulata come un sistema di $\(s_1\)$, garantisce che l'episodio termini
eventualmente.

Valutazione Iterativa della Politica

©2026 Codefinity. All Terms Reserved.


La soluzione può essere calcolata direttamente, ma un approccio iterativo è più
comunemente utilizzato per la sua facilità di implementazione. Questo metodo inizia
assegnando valori arbitrari a tutti gli stati, eccetto per gli stati terminali, che sono
impostati a 0. I valori vengono poi aggiornati iterativamente utilizzando l'equazione di
Bellman come regola di aggiornamento:

vk+1 (s) ← ∑ π(a∣s) ∑ p(s′ , r∣s, a)(r + γvk (s′ ))


​ ​ ​ ​

a s′ ,r

La funzione di valore di stato stimata $\(v_\pi\)$ se $\(v_\pi\)$ esiste.

Strategie di backup del valore


Durante l'aggiornamento delle stime di valore, le nuove stime vengono calcolate sulla
base dei valori precedenti. Il processo di conservazione delle stime precedenti è noto
come backup. Esistono due strategie comuni per eseguire i backup: - Backup completo:
questo metodo prevede la memorizzazione delle nuove stime in un array separato,
distinto da quello contenente i valori precedenti (di backup). Di conseguenza, sono
necessari due array: uno per mantenere le stime precedenti e un altro per memorizzare i
valori appena calcolati; - Backup in-place: questo approccio mantiene tutti i valori
all'interno di un unico array. Ogni nuova stima sostituisce immediatamente il valore
precedente. Questo metodo riduce l'utilizzo della memoria, poiché è necessario un solo
array.

Tipicamente, il metodo in-place backup è preferito perché richiede meno memoria e


converge più rapidamente, grazie all'uso immediato delle stime più recenti.

Quando interrompere l'aggiornamento?


Nella valutazione iterativa della policy, non esiste un punto esatto in cui l'algoritmo
debba essere interrotto. Sebbene la convergenza sia garantita al limite, continuare i
calcoli oltre un certo punto è superfluo nella pratica. Un criterio di arresto semplice ed
efficace consiste nel monitorare la differenza assoluta tra le stime di valore
consecutive, $\(\theta\)$, il processo può essere terminato in sicurezza.

©2026 Codefinity. All Terms Reserved.


Pseudocodice

©2026 Codefinity. All Terms Reserved.


Miglioramento della Policy

Definizione

Miglioramento della policy è un processo di ottimizzazione della policy basato sulle stime attuali
della funzione di valore.

Nota

Come per la valutazione della policy, il miglioramento della policy può essere applicato sia alla
funzione di valore di stato sia alla funzione di valore d'azione. Tuttavia, per i metodi DP, verrà
utilizzata la funzione di valore di stato.

Ora che è possibile stimare la funzione di valore di stato per qualsiasi policy, un passo successivo naturale è esplorare se esistono
policy migliori rispetto a quella attuale. Un modo per farlo consiste nel considerare l'esecuzione di un'azione diversa $\(a\)$ in uno
stato $\(s\)$, e seguire successivamente la policy corrente. Se questo sembra familiare, è perché è simile a come viene definita la
funzione di valore d'azione:

qπ (s, a) = ∑ p(s′ , r∣s, a)(r + γvπ (s′ ))


​ ​ ​

s′ ,r

Se questo nuovo valore è maggiore del valore originale dello stato $\(\pi\)$ tranne per il fatto che seleziona l'azione $\(s\)$.

Teorema del Miglioramento della Politica


Il ragionamento descritto sopra può essere generalizzato come il teorema del miglioramento della politica:

qπ (s, π ′ (s)) ≥ vπ (s)



​ ​


∀s ∈ S ⟹ vπ ′ (s) ≥ vπ (s)

​ ​


∀s ∈ S ​

La dimostrazione di questo teorema è relativamente semplice e può essere ottenuta tramite una sostituzione ripetuta:

vπ (s) ≤ qπ (s, π ′ (s))




= Eπ ′ [Rt+1 + γvπ (St+1 )∣St = s] ≤ Eπ ′ [Rt+1 + γqπ (St+1 , π ′ (St+1 ))∣St = s]
​ ​ ​ ​ ​


​ ​ ​ ​ ​ ​


= Eπ ′ [Rt+1

Strategia di miglioramento
Sebbene aggiornare le azioni per determinati stati possa portare a miglioramenti, è più efficace aggiornare le azioni per tutti gli stati
simultaneamente. In particolare, per ogni stato $\(a\)$:

π ′ (s) ← arg max qπ (s, a) ​ ​ ← arg max ∑ p(s′ , r∣s, a)(r + γvπ (s′ ))
​ ​ ​

a ​

a ​

s′ ,r

dove $\(\argmax\)$ (abbreviazione di argomento del massimo) è un operatore che restituisce il valore della variabile che
massimizza una determinata funzione.

©2026 Codefinity. All Terms Reserved.


La politica greedy risultante, indicata con $\(\pi\)$ sono politiche ottimali, poiché le loro funzioni di valore sono uguali e soddisfano
l'equazione di ottimalità di Bellman:

vπ (s) = max ∑ p(s′ , r∣s, a)(r + γvπ (s′ ))


​ ​ ​ ​

a
s′ ,r

©2026 Codefinity. All Terms Reserved.


Iterazione Generalizzata delle Politiche

Nei capitoli precedenti, hai appreso la valutazione della politica e il miglioramento


della politica. Questi processi si completano a vicenda e si combinano naturalmente in
un quadro noto come generalized policy iteration.

Definizione

Generalized policy iteration (GPI) è un quadro in cui la valutazione della politica


e il miglioramento della politica interagiscono iterativamente con l'obiettivo
comune di determinare una politica ottimale.

La maggior parte dei metodi di reinforcement learning può essere descritta


all'interno del quadro della GPI. Le principali differenze tra questi metodi derivano
dalle implementazioni specifiche della valutazione della politica e del miglioramento
della politica, nonché dalla natura delle loro interazioni.

Interazione tra due processi


La valutazione della policy e il miglioramento della policy possono essere considerati sia
processi cooperativi che competitivi, a seconda della prospettiva:

©2026 Codefinity. All Terms Reserved.


Cooperativi: entrambi i processi lavorano verso un obiettivo comune—trovare
la policy ottimale e la funzione di valore ottimale. La valutazione della policy
stima la funzione di valore per una determinata policy, mentre il miglioramento
della policy affina la policy sulla base di queste stime;
Competitivi: ogni processo ha obiettivi contrastanti. La valutazione della
policy mira a stimare accuratamente la funzione di valore per la policy
corrente, spesso facendo sì che la policy non sia più greedy. Al contrario, il
miglioramento della policy adatta la policy affinché sia greedy rispetto alle
stime attuali della funzione di valore, tipicamente rendendo tali stime non
corrette. Questa continua alternanza prosegue fino a quando sia la policy che
la funzione di valore convergono alle loro forme ottimali.

Riepilogo

©2026 Codefinity. All Terms Reserved.


L'iterazione generalizzata delle politiche è un quadro utile per comprendere come i
diversi metodi di apprendimento per rinforzo affrontano la risoluzione degli MDP. Nei
prossimi capitoli, esplorerai come queste idee possano essere applicate per creare due
metodi fondamentali di programmazione dinamica: iterazione delle politiche e
iterazione dei valori.

©2026 Codefinity. All Terms Reserved.


Iterazione delle Politiche

L'idea alla base della policy iteration è semplice: 1. Scegliere un'$\(v\)$ finché non è
coerente con $\(\pi\)$; 4. Ripetere i passi 2-3 fino alla convergenza.

In questo metodo, non ci sono aggiornamenti parziali: - Durante la valutazione della


policy, i valori vengono aggiornati per ogni stato, finché non sono coerenti con la policy
corrente; - Durante il miglioramento della policy, la policy viene resa greedy rispetto
alla funzione di valore.

Pseudocodice

©2026 Codefinity. All Terms Reserved.


©2026 Codefinity. All Terms Reserved.
Iterazione del Valore

Sebbene l'iterazione delle politiche sia un approccio efficace per risolvere gli MDP,
presenta un notevole svantaggio: ogni iterazione comporta una fase separata di
valutazione della politica. Quando la valutazione della politica viene eseguita in
modo iterativo, richiede molteplici passaggi sull'intero spazio degli stati, causando un
notevole sovraccarico computazionale e tempi di calcolo più lunghi.

Una valida alternativa è l'iterazione dei valori, un metodo che unisce la valutazione
della politica e il miglioramento della politica in un unico passaggio. Questo metodo
aggiorna direttamente la funzione di valore fino a quando non converge verso la
funzione di valore ottimale. Una volta raggiunta la convergenza, la politica ottimale
può essere derivata direttamente da questa funzione di valore ottimale.

Come funziona?
L'iterazione dei valori funziona eseguendo un solo backup durante la valutazione della
politica, prima di effettuare il miglioramento della politica. Questo porta alla seguente
formula di aggiornamento:

vk+1 (s) ← max ∑ p(s′ , r∣s, a)(r + γvk (s′ ))


​ ​ ​ ​ ∀s ∈ S
a
s′ ,r

Trasformando l'equazione di optimalità di Bellman in una regola di aggiornamento, la


valutazione della politica e il miglioramento della politica vengono uniti in un unico
passaggio.

Pseudocodice

©2026 Codefinity. All Terms Reserved.


©2026 Codefinity. All Terms Reserved.
Sfida: Programmazione Dinamica

Sfida

Scarica il Notebook

©2026 Codefinity. All Terms Reserved.


Metodi Monte Carlo

©2026 Codefinity. All Terms Reserved.


Cosa Sono i Metodi Monte Carlo?

Definizione

I metodi Monte Carlo (MC) sono una classe di algoritmi computazionali che si
basano sul campionamento casuale per stimare risultati numerici.

I metodi Monte Carlo vengono utilizzati quando le soluzioni deterministiche sono


difficili o impossibili da ottenere. Sostituiscono i calcoli esatti con approssimazioni che
migliorano all'aumentare del numero di campioni casuali.

Come funzionano?
I metodi Monte Carlo possono variare da un compito all'altro, ma tutti tendono a
seguire un unico schema: 1. Definizione di un dominio di possibili input; 2. Generazione
di input casuali da una distribuzione di probabilità; 3. Valutazione di una funzione su
questi input; 4. Aggregazione dei risultati per produrre una stima.

Esempi
Sebbene lo schema descritto sopra possa sembrare complesso, questi esempi
dovrebbero aiutare a chiarire l'idea alla base.

Calcolo degli integrali

Il calcolo degli integrali è un compito non banale che solitamente richiede l'applicazione
di molte tecniche per ottenere il risultato corretto.

©2026 Codefinity. All Terms Reserved.


Proviamo ad applicare il metodo Monte Carlo per risolvere questo integrale:
1 1
1
∫ ∫ dx dy
1 + (x + y)2
​ ​ ​

0 0

1. Dominio di ingresso: questo integrale doppio ha due variabili, $\(x \in [0, 1]\)$
e $\(y \in [0, 1]\)$;
2. Generazione: entrambe queste variabili sono indipendenti tra loro e distribuite
uniformemente;
3. Valutazione: per ottenere un valore puntuale, si può utilizzare la funzione
sotto l'integrale;
4. Aggregazione: il valore di questo integrale può essere definito come il volume
sotto la curva. Il volume può essere calcolato come prodotto dell'area di base e
dell'altezza media. L'area di base è 1 (quadrato unitario) e l'altezza media è la
media dei risultati ottenuti nel passo precedente.

©2026 Codefinity. All Terms Reserved.


import numpy as np

result = 0
# Many samples are required for estimates to be precise
for i in range(100000):
# Generation of random variables
x, y = [Link](), [Link]()
# Computation of point value
value = 1 / (1 + (x + y) ** 2)
# Mean aggregation
result += (value - result) / (i + 1)

# Closed-form solution of this integral


true_result = 2*[Link](2) - [Link]/2 - (1/2)*[Link](5) + [Link](2)
print(f"Approximated result: {result}")
print(f"True result: {true_result}")

Approssimazione di $\(\Large\pi\)$

L'approssimazione di $\(\displaystyle\frac{\pi}{4}\)$ può essere calcolato come

Punti all’interno
π ≈4⋅
Punti totali

©2026 Codefinity. All Terms Reserved.


import numpy as np
import [Link] as plt

# Lists for coordinates


inside = []
outside = []

# Many samples are required for estimates to be precise


for _ in range(100000):
# Generation of random variables
x, y = [Link](), [Link]()
# Splitting points inside and outside of the circle
if x**2 + y**2 <= 1:
[Link]((x, y))
else:
[Link]((x, y))

# Plotting points
[Link](figsize=(6,6))
[Link](*zip(*inside), color="blue", s=1, label="Inside")
[Link](*zip(*outside), color="red", s=1, label="Outside")
[Link]()
[Link]("x")
[Link]("y")
[Link]()

estimate = 4 * len(inside) / (len(inside) + len(outside))


print(f"Estimated value of pi: {estimate}")
print(f"True value of pi: {[Link]}")

Banditi a più braccia

©2026 Codefinity. All Terms Reserved.


Nel contesto dei banditi a più braccia, un obiettivo fondamentale è stimare il valore
d'azione per ciascuna leva, ovvero la ricompensa attesa scegliendo una determinata
azione. Una strategia comune consiste nello stimare questi valori facendo la media
delle ricompense osservate ottenute tirando ciascuna leva nel tempo. Questa tecnica
è, infatti, un metodo Monte Carlo.

Metodi Monte Carlo per MDP


A differenza dei metodi di programmazione dinamica, che si basano su un modello
completo e accurato della dinamica dell'ambiente, i metodi Monte Carlo apprendono
esclusivamente dall'esperienza — ovvero da sequenze reali o simulate di stati, azioni e
ricompense.

Questo rende gli approcci Monte Carlo particolarmente potenti: non richiedono alcuna
conoscenza preliminare su come funziona l'ambiente. Invece, estraggono le stime di
valore direttamente da ciò che accade durante l'interazione. In molti scenari reali, dove
modellare l'ambiente è impraticabile o impossibile, questa capacità di apprendere
dall'esperienza grezza rappresenta un vantaggio significativo.

Quando l'interazione diretta con l'ambiente è costosa, rischiosa o lenta, i metodi Monte
Carlo possono anche apprendere da esperienze simulate, a condizione che esista una
simulazione affidabile. Questo consente esplorazione e apprendimento in un contesto
controllato e ripetibile — anche se presuppone l'accesso a un modello in grado di
generare transizioni plausibili.

©2026 Codefinity. All Terms Reserved.


Stima della Funzione di Valore

Iniziamo riprendendo un concetto familiare: la funzione di valore di stato, indicata


come $\(v_\pi(s)\)$. Può essere definita come

vπ (s) = Eπ [Gt∣St = s]
​ ​ ​ ​

L'obiettivo di questo capitolo è stimare questa funzione a partire dai dati, assumendo
di avere una politica fissata $\(\pi\)$ ma senza accesso al modello dell'ambiente.

Stima Monte Carlo


I metodi Monte Carlo affrontano questo compito di stima campionando episodi di
esperienza secondo la politica $\(v_\pi(s)\)$; 2. Salvare il valore di ritorno ottenuto per
ogni stato che compare nell'episodio; 3. Ripetere i passaggi 1-2 per un certo periodo; 4.
Calcolare i nuovi valori facendo la media dei ritorni per ciascuno stato.

Raccolta dei ritorni


La stima Monte Carlo della funzione di valore richiede la raccolta dei ritorni dagli episodi
generati. Per calcolare questi ritorni, si possono utilizzare due approcci principali: - First-
visit: per ogni stato $\(s\)$ incontrato in un episodio, viene considerato solo il ritorno
successivo alla sua prima occorrenza. Le occorrenze successive dello stesso stato
all'interno dello stesso episodio vengono ignorate ai fini della stima; - Every-visit: viene
utilizzata ogni occorrenza di uno stato $\(s\)$ all'interno di un episodio. Ovvero, il
ritorno successivo a ciascuna visita allo stato è incluso nella stima, anche se lo stato
appare più volte nello stesso episodio.

Esplorazione degli inizi


Immagina un mondo semplice unidimensionale rappresentato da una linea che si
estende da -10 a +10. L'agente inizia dalla posizione 0 e la sua politica attuale stabilisce
che si muove sempre verso destra a ogni passo temporale.

©2026 Codefinity. All Terms Reserved.


Se proviamo a generare episodi seguendo questa politica, cosa succede? L'agente si
muoverà continuamente verso l'estremità positiva della linea — visitando stati come 1,
2, 3 e così via — ma non visiterà mai stati negativi. Di conseguenza, non possiamo
stimare le funzioni di valore per gli stati a sinistra dell'origine, semplicemente perché
l'agente non li sperimenta mai.

Quindi il problema principale è: se alcune parti dello spazio degli stati non vengono mai
esplorate, le loro stime di valore rimarranno inaccurate o non definite. Una soluzione
comune a questo problema è l'uso degli exploring starts.

Con gli exploring starts, ogni episodio non inizia da uno stato fisso come 0, ma da uno
stato selezionato casualmente. Una volta iniziato l'episodio, l'agente segue la sua
politica attuale come di consueto. Nel tempo, iniziando da molti punti diversi nello
spazio degli stati, l'agente riesce a visitare tutti gli stati — non solo quelli verso cui la sua
politica lo condurrebbe naturalmente. Questo permette al metodo Monte Carlo di
produrre stime di valore più accurate e complete per l'intero spazio degli stati.

©2026 Codefinity. All Terms Reserved.


Pseudocodice

Questo pseudocodice utilizza l'approccio every-visit insieme agli exploring starts.

©2026 Codefinity. All Terms Reserved.


Controllo Monte Carlo

Sostituendo la fase di valutazione della politica nell'algoritmo standard di policy iteration con le tecniche
di stima Monte Carlo descritte nel capitolo precedente, è possibile derivare una nuova variante della policy
iteration—una che si basa su esperienze campionate invece che sulla programmazione dinamica.

Tuttavia, esiste una limitazione fondamentale. Nella policy iteration tradizionale, la fase di miglioramento
della politica dipende dalla disponibilità di un modello completo dell'ambiente. In particolare, per
aggiornare la politica, si utilizza la seguente espressione:

π(s) ← arg max ∑ p(s′ , r∣s, a)(r + γv(s′ ))


​ ​

a
s′ ,r

Questa equazione presuppone la conoscenza delle probabilità di transizione $\(p(s', r | s, a)\)$. Ma questo è
proprio il problema: i metodi Monte Carlo sono progettati per contesti model-free, in cui la dinamica di
transizione dell'ambiente è sconosciuta. Se fosse disponibile un modello completo, converrebbe utilizzare
la programmazione dinamica in ogni fase, inclusa la valutazione della politica, poiché sarebbe più efficiente
e precisa.

Pertanto, sebbene sostituire i metodi Monte Carlo per la stima dei valori sia un passo verso
l'apprendimento per rinforzo model-free, è necessario anche trovare un modo per eseguire il
miglioramento della politica senza fare affidamento sulla conoscenza del modello. Questo richiede il
passaggio dalla funzione di valore di stato alla funzione di valore d'azione.

Perché i valori d'azione?


Utilizzando i valori d'azione, è possibile eseguire il miglioramento della politica senza la necessità di un
modello dell'ambiente. Invece di fare affidamento sulle probabilità di transizione per calcolare i ritorni
attesi, si possono selezionare direttamente le azioni che sembrano offrire il valore più alto. Il passo di
miglioramento della politica diventa quindi:

π(s) ← arg max q(s, a) ​ ∀s ∈ S


a

Ed è semplice dimostrare che la nuova politica non è peggiore della precedente, poiché il teorema di
miglioramento della politica è ancora applicabile:

qπk (s, πk+1 (s)) = qπk (s, arg max qπk (s, a))
​ ​ ​ ​ ​ = max qπk (s, a) ≥ qπk (s, πk (s))
​ ​ ​ ​ = vπk (s)​

a
​ ​ ​ ​ ​ ​

a
​ ​ ​ ​

E, come nella programmazione dinamica, questo teorema garantisce che $\(\pi_{k+1}\)$ sia migliore di $\
(\pi_k\)$, oppure che siano entrambe uguali e ottimali.

©2026 Codefinity. All Terms Reserved.


Stima della Funzione di Valore d'Azione
Il processo di stima è quasi identico a quello della funzione di valore di stato. Tutte le idee utilizzate per
stimare i valori di stato possono essere applicate per stimare i valori d'azione.

Pseudocodice

In questo modo, con un numero sufficiente di iterazioni, i valori d'azione stimati dovrebbero avvicinarsi ai
veri valori d'azione.

Con questo approccio, è già possibile costruire un metodo simile all'iterazione delle politiche che non si
basa su un modello. Per farlo, si sostituiscono le fasi di valutazione della politica e miglioramento della
politica con i processi descritti sopra.

Ottimizzazione

©2026 Codefinity. All Terms Reserved.


Sebbene la fase di valutazione possa essere eseguita utilizzando la stima Monte Carlo come descritto,
tende a essere computazionalmente inefficiente. Come già visto, i metodi Monte Carlo richiedono
generalmente un gran numero di campioni per produrre stime ragionevolmente accurate. Se si segue una
struttura simile all'iterazione delle politiche, questa inefficienza viene amplificata: dopo ogni
miglioramento della politica, è necessario rieseguire la stima Monte Carlo per rivalutare la nuova politica —
con conseguente notevole sovraccarico e apprendimento lento.

Un'alternativa più naturale consiste nell'aggiornare la politica immediatamente dopo l'elaborazione di ogni
episodio. Invece di attendere il completamento di una valutazione completa della politica, si consente
all'agente di perfezionare il proprio comportamento episodio per episodio, utilizzando le stime più
recenti dei valori d'azione.

Questo porta a un metodo che assomiglia maggiormente all'iterazione dei valori: combinando aspetti di
valutazione e miglioramento in un unico passaggio. Ciò aumenta l'efficienza del campionamento e la
velocità di calcolo.

Pseudocodice

©2026 Codefinity. All Terms Reserved.


Questo algoritmo segue un framework GPI, poiché include i passaggi di valutazione della politica e
miglioramento della politica, ed è chiamato controllo Monte Carlo. L'unico grande svantaggio di questa
specifica implementazione è l'assunzione di exploring starts. Nei prossimi capitoli vedrai perché questo
rappresenta un problema e come può essere affrontato.

©2026 Codefinity. All Terms Reserved.


Approcci di Esplorazione

L'assunzione degli exploring starts è utile per garantire che tutti gli stati (coppie stato-
azione) vengano visitati nel tempo. Tuttavia, nella maggior parte dei compiti reali,
presenta un notevole svantaggio: richiede un modello per inizializzare l'agente in stati
arbitrari.

In rari casi — quando l'ambiente inizia naturalmente gli episodi da stati casuali che
coprono l'intero spazio degli stati — gli exploring starts possono essere applicati senza
problemi. Più comunemente, però, i compiti hanno un insieme fisso o limitato di stati
iniziali, rendendo tale randomizzazione impossibile senza un modello parziale. Questo
modello dovrebbe almeno essere in grado di simulare un passo dell'ambiente da
qualsiasi stato. Sebbene ciò sia comunque meno impegnativo rispetto alla necessità di
un modello completo, spesso risulta poco pratico.

©2026 Codefinity. All Terms Reserved.


Approcci alternativi all'esplorazione
Se non è possibile iniziare da uno stato casuale (coppia stato-azione), l'alternativa è
garantire che ogni azione abbia una probabilità diversa da zero di essere selezionata
in ogni stato. Questo assicura che, nel tempo, l'agente esplori tutte le parti
raggiungibili dello spazio degli stati. Se uno stato può essere raggiunto tramite una
qualche sequenza valida di azioni, prima o poi lo sarà; se invece non può essere
raggiunto affatto secondo la dinamica dell'ambiente, allora è irrilevante per il processo
di apprendimento.

Questa idea porta all'uso di policy stocastiche, in cui l'agente non sceglie sempre
l'azione migliore conosciuta, ma seleziona le azioni con un certo grado di casualità. Una
strategia comune per questo è la nota politica $\(\varepsilon\)$-greedy, che sceglie
l'azione greedy la maggior parte delle volte, ma con probabilità $\(\varepsilon\)$
seleziona invece un'azione casuale. Questo garantisce un'esplorazione continua pur
privilegiando le azioni di alto valore.

A questo punto, è anche utile distinguere tra due principali classi di metodi: - I metodi
on-policy valutano e migliorano la stessa policy utilizzata per generare i dati; - I metodi
off-policy valutano e migliorano una policy, e generano i dati con un'altra policy.

©2026 Codefinity. All Terms Reserved.


Controllo Monte Carlo On-Policy

L'idea alla base dei metodi on-policy è intuitiva: un agente apprende seguendo la
propria politica attuale e la migliora in base agli esiti che sperimenta. Per scoprire azioni
migliori ed evitare di rimanere bloccato in comportamenti subottimali, l'agente
incorpora un certo grado di casualità — provando occasionalmente azioni alternative
per favorire l'esplorazione.

Analogia
Immagina di trovarti in una gelateria con tre gusti disponibili: cioccolato, vaniglia e
fragola. Adori il cioccolato, quindi di solito scegli quello. Ma un giorno, per curiosità,
decidi di provare la fragola. Scopri che il gelato alla fragola di questa gelateria è
incredibilmente buono e decidi di sceglierlo ogni volta che visiti questo posto.

©2026 Codefinity. All Terms Reserved.


Provare un nuovo gusto non era necessariamente la scelta più logica basata
sull'esperienza passata, ma ti ha dato l'opportunità di scoprire qualcosa di nuovo.
Questo tipo di esplorazione è al centro dei metodi on-policy.

Politiche Stocastiche

©2026 Codefinity. All Terms Reserved.


Formalmente, adottare questa idea significa sostituire le politiche deterministiche
(rigide) utilizzate nella programmazione dinamica con politiche stocastiche
(flessibili), indicate come $\(\pi(a | s)\)$, dove:

π(a∣s) > 0 ∀s ∈ S, a ∈ A(s)

In altre parole, ogni azione in ogni stato ha una probabilità non nulla di essere
selezionata. Questo garantisce che tutte le parti dell'ambiente possano essere
esplorate, aspetto essenziale quando si apprende dall'esperienza.

Politiche $\(\Large\varepsilon\)$-greedy
Per introdurre l'esplorazione nella politica, si adotta il concetto di esplorazione $\
(\varepsilon\)$ che decresce correttamente, il metodo converge a una politica
ottimale nel limite.

Pseudocodice

©2026 Codefinity. All Terms Reserved.


©2026 Codefinity. All Terms Reserved.
Controllo Monte Carlo Off-Policy

Mentre i metodi on-policy apprendono seguendo e migliorando la stessa politica, i


metodi off-policy introducono una variazione: apprendono riguardo a una politica (la
politica target) mentre ne seguono un'altra (la politica di comportamento). Questa
separazione è potente — consente di valutare o migliorare una politica target senza la
necessità di seguirla effettivamente durante la raccolta dei dati.

Analogia
Torniamo alla gelateria del capitolo precedente. Tu e il tuo amico entrate e, ancora una
volta, ci sono i tre gusti familiari: cioccolato, vaniglia e fragola. Il cioccolato è il tuo
preferito e il tuo primo istinto è ordinarlo. Tuttavia, questa gelateria è nuova per te e
non sei sicuro che scegliere il cioccolato sia la scelta giusta. Fortunatamente, il tuo
amico è un appassionato di gelato che ha visitato quasi tutte le gelaterie della città.
Chiedi la sua opinione. "Il cioccolato qui è discreto," dice, "ma fidati — la fragola è
eccezionale." Così, basandoti sulla sua esperienza, decidi di rinunciare alla tua scelta
abituale e optare invece per la fragola.

©2026 Codefinity. All Terms Reserved.


Questa decisione — affidarsi all'esperienza di qualcun altro per guidare la propria scelta
— è l'essenza dei metodi off-policy. Si cerca di migliorare il processo decisionale
utilizzando dati raccolti secondo il comportamento di un altro. Si tratta comunque di
esplorazione, ma guidata da esperienze esterne invece che proprie.

Campionamento di importanza

©2026 Codefinity. All Terms Reserved.


Poiché l'agente segue la policy di comportamento durante la generazione degli episodi,
è necessario tenere conto della discrepanza tra ciò che la policy di comportamento
genera e ciò che la policy target genererebbe. Qui entra in gioco il campionamento di
importanza.

Definition

Campionamento di importanza è una tecnica statistica utilizzata per stimare il


valore atteso di una funzione sotto una distribuzione di probabilità, utilizzando
campioni prelevati da una distribuzione diversa.

Il campionamento per importanza offre un metodo per regolare i ritorni osservati sotto
la policy di comportamento affinché siano stime valide per la policy target.

Consideriamo una traiettoria che inizia da uno stato $\(b\)$ dipende solo dalle policy,
non dall'ambiente.

Perché è importante
Il rapporto $\(G_t\)$, è comunque possibile stimare i ritorni attesi sotto $\(b\)$
potrebbe intraprendere (ipotesi di copertura).

Considerazioni pratiche

Varianza del campionamento per importanza

L'integrazione del campionamento per importanza è concettualmente semplice. Si


modifica la funzione di valore d'azione stimata $\(Returns_i(s, a)\)$ è stato visitato.

Questo è noto come campionamento per importanza ordinario. Fornisce una stima
non distorta di $\(q(s, a)\)$, ma può soffrire di varianza molto elevata, soprattutto
quando le politiche di comportamento e target differiscono in modo significativo.

©2026 Codefinity. All Terms Reserved.


Per ridurre il problema della varianza, si può utilizzare un'alternativa più stabile: il
campionamento per importanza pesato. Questo metodo normalizza i pesi di
importanza, riducendo l'impatto dei rapporti elevati e portando a un apprendimento
più stabile:

N(s,a)
∑i=0 ρi (s, a) ⋅ Returnsi (s, a)
q(s, a) =
​ ​ ​

N(s,a)

∑i=0 ​ ρi (s, a)

In questa versione il numeratore è la stessa somma pesata dei ritorni, ma il


denominatore è ora la somma dei pesi di importanza, invece di un semplice conteggio.

Questa stima risulta distorta, ma il bias diminuisce con l'aumentare dei campioni
raccolti. In pratica, il campionamento per importanza pesato è preferito grazie alla
sua varianza significativamente inferiore e alla maggiore stabilità numerica.

Politiche

Come nel caso on-policy, utilizziamo politiche $\(\rho\)$ non si annulla mai a zero
durante l'episodio. Una volta terminato l'addestramento, è semplice convertire la
politica $\(\varepsilon\)$ può comunque annullarsi a zero durante l'episodio, a causa
della rappresentazione numerica nei computer.

Pseudocodice

©2026 Codefinity. All Terms Reserved.


©2026 Codefinity. All Terms Reserved.
Implementazioni 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 consentono di aggiornare le stime dei valori in tempo reale,
senza dover 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) + α(G − Q(s, a))

dove $\(Q(s, a)\)$ è stata visitata $\(N(s, a)\)$.

Pseudocodice

©2026 Codefinity. All Terms Reserved.


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) + α(G − Q(s, a))

©2026 Codefinity. All Terms Reserved.


ma $\((s, a)\)$:

C(s, a) ← C(s, a) + W

Pseudocodice

©2026 Codefinity. All Terms Reserved.


©2026 Codefinity. All Terms Reserved.
Sfida: Metodi Monte Carlo

Sfida

Scarica il Notebook

©2026 Codefinity. All Terms Reserved.


Apprendimento a Differenza
Temporale

©2026 Codefinity. All Terms Reserved.


Che Cos'è l'Apprendimento a Differenza Temporale?

Sia la programmazione dinamica che i metodi Monte Carlo presentano alcuni vantaggi
significativi e alcune limitazioni importanti.

Programmazione Dinamica
La programmazione dinamica consente di calcolare in modo efficiente la funzione di
valore di stato e di derivare da essa una politica ottimale. Utilizza il bootstrapping —
calcolo del valore dello stato attuale basato sui valori degli stati futuri — per
raggiungere questo obiettivo.

Sebbene il concetto di bootstrapping sia potente, la programmazione dinamica


presenta due principali svantaggi: - Richiede un modello completo ed esplicito
dell'ambiente; - I valori degli stati vengono calcolati per ogni stato, anche se lo stato
non è vicino al percorso ottimale.

Metodi Monte Carlo


I metodi Monte Carlo risolvono i due principali svantaggi della programmazione
dinamica: - Non richiedono un modello, poiché apprendono dall'esperienza; - Il modo in
cui apprendono dall'esperienza limita l'esplorazione, quindi gli stati non importanti
vengono raramente visitati.

Tuttavia, introducono una nuova limitazione: il processo di apprendimento avviene solo


dopo la conclusione dell'episodio. Questo limita l'applicabilità dei metodi Monte Carlo a
compiti episodici di piccole dimensioni, poiché compiti più grandi richiederebbero un
numero estremamente elevato di azioni prima che l'episodio si concluda.

Apprendimento a Differenza Temporale

©2026 Codefinity. All Terms Reserved.


Definizione

L'apprendimento per differenza temporale (TD) è il risultato della combinazione


delle idee sia della programmazione dinamica che dei metodi Monte Carlo. Prende
l'approccio di apprendimento dall'esperienza dai metodi Monte Carlo e lo
combina con il bootstrapping dalla programmazione dinamica.

Di conseguenza, l'apprendimento TD risolve i principali problemi dei due metodi: -


Apprendimento dall'esperienza affronta il problema della necessità di un modello e
quello degli spazi di stato di grandi dimensioni; - Il bootstrapping affronta il problema
dell'apprendimento episodico.

Come funziona?
L'apprendimento TD funziona attraverso un ciclo semplice: 1. Stima del valore: l'agente
parte da una stima iniziale di quanto sia buono lo stato attuale; 2. Esecuzione di
un'azione: esegue un'azione, riceve una ricompensa e si trova in un nuovo stato; 3.
Aggiornamento della stima: utilizzando la ricompensa e il valore del nuovo stato,
l'agente modifica leggermente la stima originale per renderla più accurata; 4.
Ripetizione: nel tempo, ripetendo questo ciclo, l'agente costruisce progressivamente
stime di valore migliori e più precise per diversi stati.

Tabella di confronto

©2026 Codefinity. All Terms Reserved.


Richiede un Quando si
Metodo Basato su
modello? aggiorna?

Programmazione
Sì Ogni stato Bootstrapping
dinamica

Fine
Monte Carlo No Esperienza
dell'episodio

Differenza Bootstrapping +
No Ogni passo
temporale esperienza

©2026 Codefinity. All Terms Reserved.


TD(0): Stima della Funzione di Valore

La versione più semplice dell'apprendimento TD è chiamata TD(0). Aggiorna il valore di


uno stato in base alla ricompensa immediata e al valore stimato dello stato successivo.
Si tratta di un metodo TD a un passo.

Regola di aggiornamento
Dato uno stato $\(V(S_t)\)$ rappresenta quindi la discrepanza osservabile tra ciò che è
effettivamente accaduto e ciò che si credeva sarebbe accaduto. La regola di
aggiornamento modifica quindi la convinzione precedente a ogni passo, avvicinandola
alla realtà.

TD(0) vs Stima Monte Carlo


Sia TD(0) che la stima Monte Carlo utilizzano esperienze campionate per stimare la
funzione di valore di stato $\(\pi\)$ quando il numero di visite a ciascuno stato tende
all'infinito. Nella pratica, tuttavia, si dispone solo di una quantità finita di dati, e i due
metodi differiscono significativamente sia nell'utilizzo di questi dati sia nella velocità di
apprendimento.

Compromesso Bias-Varianza

©2026 Codefinity. All Terms Reserved.


Dal punto di vista del compromesso bias-varianza:

La stima Monte Carlo attende la fine di un episodio e poi utilizza il ritorno completo per
aggiornare i valori. Questo produce stime non distorte — i ritorni riflettono realmente
la distribuzione sottostante — ma possono variare notevolmente, soprattutto in
compiti lunghi o altamente stocastici. L'alta varianza implica che siano necessari molti
episodi per attenuare il rumore e ottenere stime di valore stabili.

TD(0) utilizza il bootstrap combinando ogni ricompensa a un passo con la stima attuale
del valore dello stato successivo. Questo introduce bias — gli aggiornamenti iniziali si
basano su stime imperfette — ma mantiene la varianza bassa, poiché ogni
aggiornamento si basa su un piccolo errore incrementale. La varianza più bassa
consente a TD(0) di propagare le informazioni sulla ricompensa nello spazio degli stati
più rapidamente, anche se il bias iniziale può rallentare la convergenza.

©2026 Codefinity. All Terms Reserved.


Dati di apprendimento vs Modello di apprendimento

Un altro modo per analizzare questi due metodi è valutare cosa apprendono realmente:

La stima Monte Carlo apprende direttamente dai ritorni osservati, adattando di fatto
le sue stime di valore agli episodi specifici che ha visto. Questo significa che minimizza
l'errore su quelle traiettorie di addestramento, ma poiché non costruisce mai una
visione esplicita di come gli stati si susseguano, può avere difficoltà a generalizzare a
situazioni nuove o leggermente diverse.

©2026 Codefinity. All Terms Reserved.


TD(0), al contrario, utilizza il bootstrap su ogni transizione a un passo, combinando la
ricompensa immediata con la sua stima del valore dello stato successivo. In questo
modo, cattura efficacemente le relazioni tra gli stati — un modello implicito della
dinamica dell'ambiente. Questa comprensione simile a un modello consente a TD(0) di
generalizzare meglio a transizioni non viste, spesso producendo stime di valore più
accurate su nuovi dati.

Pseudocodice

©2026 Codefinity. All Terms Reserved.


SARSA: Apprendimento TD On-Policy

Proprio come con i metodi Monte Carlo, è possibile seguire il framework della
generalized policy iteration (GPI) per passare dalla stima delle funzioni di valore
all'apprendimento di politiche ottimali. Tuttavia, questo processo introduce una sfida
ben nota: il compromesso tra esplorazione e sfruttamento. Allo stesso modo, esistono
due approcci che possiamo utilizzare: on-policy e off-policy. Iniziamo parlando del
metodo on-policy — SARSA.

Definizione

SARSA è un algoritmo di controllo TD on-policy utilizzato per stimare la funzione


di valore d'azione $\(q_\pi(s, a)\)$. Aggiorna le sue stime in base all'azione
effettivamente eseguita, rendendolo un algoritmo on-policy.

L'acronimo SARSA deriva dai cinque componenti chiave utilizzati nell'aggiornamento: -


S: stato attuale $\(S_{t+1}\)$.

Regola di aggiornamento
La regola di aggiornamento è simile alla TD(0), ma sostituisce la funzione di valore di
stato con la funzione di valore d'azione:

Q(St, A t) ← Q(St, A t) + α(Rt+1 + γQ(St+1 , A t+1 ) − Q(St, A t))


​ ​ ​ ​ ​ ​ ​ ​

$\(A_{t+1}\)$ è l'azione che verrà effettivamente eseguita nel passo successivo,


selezionata secondo la politica corrente. Questo implica che gli effetti dell'esplorazione
sono incorporati nel processo di apprendimento.

Dopo ogni aggiornamento della funzione di valore d'azione, anche la politica viene
aggiornata, permettendo all'agente di utilizzare immediatamente le nuove stime.

©2026 Codefinity. All Terms Reserved.


Pseudocodice

Quando utilizzare SARSA?


SARSA è preferibile quando: - Si lavora con ambienti ad alta stochasticità (ad esempio,
superfici scivolose, transizioni inaffidabili); - Si accetta una convergenza più lenta in
cambio di un comportamento più sicuro durante l'apprendimento.

©2026 Codefinity. All Terms Reserved.


Q-Learning: Apprendimento TD Off-Policy

L'apprendimento di una politica ottimale con SARSA può risultare impegnativo.


Analogamente al controllo Monte Carlo on-policy, richiede tipicamente una decrescita
graduale di $\(\varepsilon\)$ nel tempo, avvicinandosi infine a zero per passare
dall'esplorazione allo sfruttamento. Questo processo è spesso lento e può richiedere un
tempo di addestramento considerevole. Un'alternativa consiste nell'utilizzare un
metodo off-policy come il Q-learning.

Definizione

Q-learning è un algoritmo di controllo TD off-policy utilizzato per stimare la


funzione di valore d'azione ottimale $\(q_*(s, a)\)$. Aggiorna le sue stime in base
all'azione migliore attuale, rendendolo un algoritmo off-policy.

Regola di aggiornamento
A differenza del controllo Monte Carlo off-policy, Q-learning non richiede il
campionamento di importanza per correggere le differenze tra la policy di
comportamento e quella target. Invece, si basa su una regola di aggiornamento diretta
che assomiglia molto a SARSA, ma con una differenza fondamentale.

La regola di aggiornamento di Q-learning è:

Q(St, A t) ← Q(St, A t) + α(Rt+1 + γ max Q(St+1 , a) − Q(St, A t))


​ ​ ​ ​ ​ ​ ​ ​ ​

©2026 Codefinity. All Terms Reserved.


L'unica differenza rispetto a SARSA riguarda il valore target. Invece di utilizzare il valore
della prossima azione effettivamente eseguita, come fa SARSA:

γQ(St+1 , A t+1 )
​ ​

Q-learning utilizza il valore della migliore prossima azione possibile:

γ max Q(St+1 , a)
​ ​

Questa modifica sottile ha un grande impatto: consente a Q-learning di valutare le


azioni utilizzando una stima della policy ottimale, anche mentre l'agente sta ancora
esplorando. Questo è ciò che lo rende un metodo off-policy — apprende riguardo alla
policy greedy, indipendentemente dalle azioni scelte durante l'addestramento.

©2026 Codefinity. All Terms Reserved.


Quando utilizzare Q-Learning?
Q-learning è preferibile quando: - Si lavora con ambienti deterministici, o ambienti; - È
necessaria una velocità di convergenza più elevata.

©2026 Codefinity. All Terms Reserved.


Generalizzazione dell'Apprendimento TD

Finora abbiamo considerato due casi estremi di apprendimento dall'esperienza: - TD(0):


utilizza il ritorno a un passo; - Monte Carlo: attende la fine dell'episodio per calcolare il
ritorno.

Ma cosa succede se desideriamo qualcosa a metà strada? Qualcosa che sfrutti più
informazioni future rispetto a TD(0), ma che non richieda di attendere l'intero episodio
come Monte Carlo?

Qui entrano in gioco l'apprendimento TD a $\(n\)$ passi e TD($\(\lambda\)$) —


metodi che unificano e generalizzano le idee viste finora.

$\(\Large n\)$-Passi TD Learning


L'idea alla base dell'apprendimento TD a $\(n\)$: equivale a TD(0); - Quando $\(n =
\infty\)$: diventa Monte Carlo.

Questi ritorni possono quindi essere utilizzati per sostituire il target nella regola di
aggiornamento di TD(0):

V (St) ← V (St) + α(Gt − V (St))


(n)
​ ​ ​ ​

TD($\(\Large\lambda\)$)
TD($\(\lambda \in [0, 1]\)$ Monte Carlo; - Valori intermedi fondono ritorni a più
passi.

Quindi $\(\lambda\)$: meno bias, più varianza.

\[L_t$$ può quindi essere utilizzato come target di aggiornamento nella regola di
aggiornamento TD(0): $$ V(S_t) \gets V(S_t) + \alpha\Bigl(L_t - V(S_t)\Bigr) \]

©2026 Codefinity. All Terms Reserved.


Sfida: Apprendimento a Differenza Temporale

Sfida

Scarica Notebook

©2026 Codefinity. All Terms Reserved.

Potrebbero piacerti anche