Contents — find the section you need

Il Q-learning è un metodo di apprendimento per rinforzo off-policy che aggiorna un valore per ogni coppia stato-azione: "quanto frutterà questa scelta a lungo termine?". Un piccolo labirinto può essere risolto con una tabella, ma un'immagine ripresa da una telecamera e molte articolazioni rendono tale tabella impraticabilmente grande. Una Deep Q-Network (DQN) sostituisce la tabella con una rete neurale e utilizza la riproduzione dell'esperienza e una rete target per ridurre i dati correlati e l'instabilità autoreferenziale.

Riepilogo in 30 secondi

  • Q(s,a) è il rendimento futuro atteso dopo aver eseguito l'azione a nello stato s. Scegliere il valore Q più grande dà luogo a una politica greedy.

  • Il Q-learning utilizza il valore Q massimo nello stato successivo anche quando la politica comportamentale ha esplorato un'altra azione. Questa è la proprietà off-policy.

  • DQN mappa un'osservazione ad alta dimensionalità, come un'immagine, ai valori Q per un insieme finito di azioni discrete. La coppia continua richiede la discretizzazione o un metodo Actor-Critic.

  • La riproduzione dell'esperienza rimescola le transizioni precedenti, mentre una rete target mantiene l'obiettivo di apprendimento quasi fisso per diversi aggiornamenti.

  • Un robot deve impostare i limiti di velocità, forza, corrente e arresto di emergenza al di fuori del sistema di apprendimento. Un'elevata ricompensa non è prova di sicurezza hardware.

1. Inserire i valori Q in una tabella

Nel MDP del manuale di base sull'apprendimento per rinforzo, la scelta dell'azione a nello stato s produce la ricompensa r e lo stato successivo s'. L'apprendimento Q non mantiene un modello esplicito P dell'ambiente sconosciuto; Aggiorna il valore Q basandosi esclusivamente sull'esperienza (s,a,r,s'):

Q(s_t,a_t)\leftarrow Q(s_t,a_t)+\alpha\left[r_{t+1}+\gamma\max_{a'}Q(s_{t+1},a')-Q(s_t,a_t)\right]

La parentesi indica l'errore di differenza temporale (TD). Un errore positivo aumenta il valore dell'azione; un errore negativo lo diminuisce. \alpha è il tasso di apprendimento e \gamma il fattore di sconto. Allo stato terminale, il valore dello stato successivo è zero.

Diagram 1 · Use the button to switch views
Q-learning: aggiorna la tabella da una transizione

Figura 1 — Il Q-learning sposta leggermente il valore precedente verso un obiettivo creato a partire dalla ricompensa osservata e dal valore massimo dello stato successivo.

Un labirinto 5×5 ha solo 25 stati e quattro azioni, quindi 100 voci nella tabella sono sufficienti. Con l'esplorazione ε-greedy, le esperienze propagano gradualmente il valore obiettivo all'indietro attraverso il labirinto. Impostare il tasso di apprendimento a 1 e fidarsi completamente di una singola esperienza la rende vulnerabile al rumore ambientale, quindi in genere si utilizza un valore compreso tra 0 e 1 per calcolare la media tra le esperienze.

2. Apprendimento off-policy ed esplorazione ε-greedy

L'obiettivo \max_{a'}Q(s',a') è l'azione stimata migliore, non necessariamente l'azione effettivamente intrapresa dalla politica di comportamento esplorativo. Il Q-learning può quindi apprendere una politica greedy mentre l'ε-greedy raccoglie dati. Inizia con una grande ε per coprire lo spazio degli stati e decadimento lento. Su una macchina fisica, randomizza solo all'interno dei comandi candidati validati e mantieni il monitoraggio delle collisioni alla massima priorità.

3. Perché la tabella non funziona per immagini e valori continui

Se uno stato è ogni pixel di un'immagine della telecamera e ogni motore ha 256 livelli di velocità, la tabella non può essere contenuta nella memoria effettiva. Anche immagini quasi identiche verrebbero trattate come stati non correlati. DQN approssima la tabella con una rete neurale Q_\theta(s,a).

La rete mappa un'immagine a un valore Q per ogni azione discreta. Per su/giù/sinistra/destra, l'output è (Q(s,\mathrm{up}),Q(s,\mathrm{down}),Q(s,\mathrm{left}),Q(s,\mathrm{right})). La funzione di perdita è

L(\theta)=\mathbb{E}_{(s,a,r,s')\sim D}\left[\left(y-Q_\theta(s,a)\right)^2\right],\qquad y=r+\gamma\max_{a'}Q_{\theta^-}(s',a')

dove D è il buffer di replay e \theta^- appartiene alla rete target. Per una transizione terminale, y=r.

4. Replay dell'esperienza: mescolamento dei log correlati

I log del robot sono sequenziali: i frame a t e t+1 sono quasi identici. Un mini-batch composto da frame adiacenti produce un gradiente distorto. DQN memorizza (s_t,a_t,r_{t+1},s_{t+1},done) in un buffer di replay e campiona mini-batch casuali.

Progettazione del buffer Beneficio Costo
Campionamento uniforme semplice, indebolisce la correlazione temporale i guasti rari vengono campionati meno
Replay prioritario si concentra sugli errori TD di grandi dimensioni richiede correzione dell'importanza e gestione dei dati
FIFO a dimensione fissa segue un ambiente in continua evoluzione vecchio e raro I fallimenti scompaiono

Archiviazione degli episodi | preserva il contesto di successo/fallimento | i batch possono essere nuovamente correlati |

Non sovrascrivere la traccia di controllo con la preelaborazione dell'apprendimento. Archiviare i timestamp grezzi dei sensori, le azioni richieste e effettivamente limitate e i flag di collisione separatamente dai tensori di addestramento normalizzati.

5. Reti target: ritardare l'insegnante

Se la stessa rete in fase di aggiornamento calcola simultaneamente sia il target y che la previsione Q_\theta, il target si sposta ogni volta. Un aggiornamento volto a ridurre l'errore sposta anche il target successivo, causando divergenza o oscillazione. DQN mantiene una copia Q_{\theta^-} e la sincronizza come \theta^-\leftarrow\theta ogni poche centinaia o migliaia di aggiornamenti.

Allungare l'intervallo di sincronizzazione stabilizza il target ma lo rende obsoleto. La media di Polyak è un'alternativa più fluida:

\theta^-\leftarrow\tau\theta+(1-\tau)\theta^-

Registrare la scelta, l'intervallo di sincronizzazione, perdita e distribuzione del valore Q nella configurazione dell'esperimento e nei log.

6. Sovrastima e Double DQN

Prendere il massimo su stime rumorose favorisce un'azione che appare elevata. Il Double DQN separa la selezione dell'azione dalla valutazione dell'azione:

a^*=\arg\max_{a'}Q_\theta(s',a'),\qquad y=r+\gamma Q_{\theta^-}(s',a^*)

Questo non elimina completamente il bias, ma spesso riduce la crescita instabile di Q. Un flag terminale mancante, una maschera di azione errata o una scala di ricompensa incoerente possono apparire simili, quindi ispezionare i dati prima di modificare gli algoritmi.

7. Dove DQN si adatta a un robot

DQN presuppone un insieme finito di azioni. Discretizzare l'angolo di sterzata o la coppia articolare può funzionare per una dimostrazione approssimativa, ma le griglie fini crescono rapidamente e creano comandi a scatti. DDPG, TD3 e SAC producono direttamente azioni continue e sono spesso più adatti per il controllo della coppia o delle valvole idrauliche.

DQN rimane utile per scelte di alto livello: corsia sinistra o destra, candidato di presa A/B/C, o Modalità bassa/media/alta velocità. Passare il riferimento risultante a un livello PID o MPC. Gli articoli PID e MPC mostrano come mantenere limiti e watchdog in quel livello inferiore.

8. Disegnare curve diverse dalla ricompensa

Registrare il tasso di successo, il tasso di collisione, la durata dell'episodio, Q medio e massimo, errore TD e frequenze di azione insieme alla ricompensa media dell'episodio. Una ricompensa crescente con un tasso di collisione crescente di solito indica un bug nella ricompensa o nella terminazione. Un valore Q che esplode con una perdita decrescente suggerisce una discrepanza di scala, un flag di terminazione mancante o un target bootstrap errato.

Mantenere gli ambienti di valutazione separati da quelli di addestramento. Modificare l'illuminazione, l'attrito del pavimento, il carico utile, la disposizione degli ostacoli e il ritardo di comunicazione. Una politica che ha successo in un simulatore ma ignora l'esposizione della telecamera, le zone morte del motore o il calo della batteria non ha dimostrato prestazioni DQN sull'hardware.

Lista di controllo per l'implementazione

  1. Memorizzare lo stato, l'azione discreta, 1. Ricompense, flag di terminale e timestamp come un'unica transizione.

  2. Fissare e registrare ε, tasso di apprendimento, sconto, dimensione del buffer, dimensione del batch e intervallo target.

  3. Monitorare i valori Q, gli errori TD, la perdita, i tassi di successo/collisione e le frequenze delle azioni per ID esperimento.

  4. Mantenere la preelaborazione del replay separata dal log di audit grezzo.

  5. Eseguire unit test su maschere di azione, stati terminali, timeout e valori dei sensori non validi.

  6. Verificare che limiti, watchdog e arresti di emergenza rimangano al di sopra di DQN e funzionino anche in caso di dropout di rete.

  7. Escludere dall'addestramento condizioni e guasti non visti.

Riepilogo

Il Q-learning trasforma l'equazione di ottimalità di Bellman in un aggiornamento di tabella senza richiedere un modello dinamico noto. DQN approssima tale tabella con una rete, ma il replay dell'esperienza e una rete target sono essenziali per evitare che il target autoreferenziale amplifichi il rumore. DQN è un utile livello decisionale discreto; la coppia continua e la sicurezza appartengono ad altri controllori. Monitoraggio TD Errori, collisioni, ritardi e distribuzioni Q, non solo la ricompensa, trasformano uno script di ricerca in un sistema robotico verificabile.

Verifica la tua comprensione
Un valore Q elevato garantisce una grande ricompensa realizzata?

Q è una stima del rendimento atteso. Stati o azioni non familiari possono produrre grandi errori di stima.

Riferimenti

What to read next

Review the backgroundNozioni di base sull'apprendimento per rinforzo: MDP, equazioni di Bellman ed esplorazione per i robotContinue the seriesGradienti di policy, PPO e SAC: controllo continuo stabile per robotExplore another aspect of this fieldIntroduzione all'apprendimento per rinforzo multi-agente: ottimizzazione in un mondo in cui anche l'altra parte sta imparando.