Perché Q-Learning usa epsilon-greedy durante i test?


18

Nell'articolo di DeepMind su Deep Q-Learning per i videogiochi Atari ( qui ), usano un metodo avido di epsilon per l'esplorazione durante l'allenamento. Ciò significa che quando si seleziona un'azione in allenamento, questa viene scelta come azione con il valore q più alto o un'azione casuale. La scelta tra questi due è casuale e basata sul valore di epsilon, e epsilon viene ricotto durante l'allenamento in modo tale che inizialmente vengano intraprese molte azioni casuali (esplorazione), ma man mano che l'allenamento progredisce, vengono intraprese molte azioni con i massimi valori q (sfruttamento).

Quindi, durante i test, usano anche questo metodo avido di epsilon, ma con epsilon a un valore molto basso, in modo tale che vi sia una forte propensione allo sfruttamento rispetto all'esplorazione, favorendo la scelta dell'azione con il più alto valore q rispetto a un'azione casuale. Tuttavia, a volte vengono ancora scelte azioni casuali (5% delle volte).

Le mie domande sono: perché a questo punto è necessaria alcuna esplorazione, dato che la formazione è già stata fatta? Se il sistema ha appreso la politica ottimale, allora perché l'azione non può sempre essere scelta come quella con il più alto valore q? L'esplorazione non dovrebbe essere fatta solo durante l'addestramento e, una volta appresa la politica ottimale, l'agente può semplicemente scegliere più volte l'azione ottimale?

Grazie!


Potrebbe in qualche modo essere collegato alla natura deterministica dell'ambiente ALE. Se non si eseguono azioni casuali durante le valutazioni, si eseguirà sempre la stessa sequenza di azioni (poiché la sequenza degli stati è la stessa). Fanno anche avviamenti casuali: attendi fino a 30 fotogrammi senza fare nulla per questo motivo.
yobibyte,

Risposte:


10

Nel documento sulla natura citano:

Gli agenti addestrati sono stati valutati giocando ogni partita 30 volte per un massimo di 5 minuti ogni volta con diverse condizioni casuali iniziali ("noop"; vedere la Tabella dati estesa 1) e una politica e-golosa con epsilon 0.05. Questa procedura è stata adottata per ridurre al minimo la possibilità di overfitting durante la valutazione.

Penso che significhino "annullare gli effetti negativi del sovra / sotto adattamento". L'uso di epsilon di 0 è una scelta pienamente sfruttatrice (come fai notare) e fa una dichiarazione forte.

Ad esempio, si consideri un gioco labirinto in cui le attuali stime Q dell'agente sono convergenti nella politica ottimale, tranne per una griglia, in cui sceglie avidamente di spostarsi verso un limite che si traduce nella sua permanenza nella stessa griglia. Se l'agente raggiunge uno di questi stati, e sta scegliendo l'azione Max Q, rimarrà bloccato lì per l'eternità. Tuttavia, mantenere un elemento vagamente esplorativo / stocastico nella sua politica (come una piccola quantità di epsilon) gli consente di uscire da tali stati.

Detto questo, dalle implementazioni del codice che ho esaminato (e codificato da solo) nella pratica, le prestazioni sono spesso misurate con una politica avida per i motivi esatti che elenchi nella tua domanda.



2

Penso che lo scopo del test sia quello di capire come il sistema risponde nelle situazioni del mondo reale.


ε

Opzione 2:
se sono preoccupati di essere fragili, giocando contro un giocatore meno "incontaminatamente razionale", potrebbero "annotare" i loro punteggi di allenamento per non sopravvalutarli.

Opzione 3:
questo è il loro fumo magico. Ci saranno pezzi che non possono e non vogliono condividere. Potrebbero pubblicarlo al fine di oscurare qualcosa di proprietario o eccezionalmente rilevante per la loro attività che non vogliono condividere.

Opzione 4:
potrebbero usare test ripetuti e vari valori di epsilon per verificare la quantità di "grasso" rimasto nel sistema. Se avessero avuto una randomizzazione debole, o così tanti campioni che persino una buona randomizzazione inizierebbe a ripetersi, allora il metodo potrebbe "apprendere" un comportamento falso rispetto alla distorsione pseudo-casuale. Ciò potrebbe consentire di verificarlo durante la fase di test.

Sono sicuro che ci sono una mezza dozzina di altri motivi significativi, ma questi erano i miei pensieri.

EDIT: nota a me stesso, mi piace molto il pensiero "fragile". Penso che potrebbe essere una debolezza esistenziale dell'IA intermedia di prima generazione.


1

ε

εε=0.05

Soprattutto dal momento che l'input preelaborato contiene una cronologia di stati precedentemente incontrati, la preoccupazione è che, invece di generalizzare al gameplay sottostante, l'agente memorizza solo traiettorie ottimali per quel gioco specifico e le riproduce durante la fase di test; questo è ciò che si intende per "la possibilità di un eccessivo adattamento durante la valutazione" . Per gli ambienti deterministici questo è ovvio, ma anche per le transizioni di stato stocastico può avvenire la memorizzazione (cioè un overfitting). L'uso della randomizzazione durante la fase di test, sotto forma di avviamenti non-op di lunghezza casuale e una parte di azioni casuali durante il gioco, forza l'algoritmo a gestire stati imprevisti e quindi richiede un certo grado di generalizzazione.

εε=0durante i test potrebbe potenzialmente migliorare le prestazioni, ma il punto qui è mostrare la capacità di generalizzare. Inoltre, nella maggior parte dei giochi Atari, lo stato si evolve anche in modalità no-op e quindi l'agente sarebbe naturalmente "sbloccato" se ciò accadesse. Considerando l'esempio del labirinto menzionato altrove in cui l'ambiente non si evolve in modalità no-op, l'agente imparerebbe rapidamente che correre contro un muro non è una buona idea se la ricompensa è modellata correttamente (-1 per ogni passaggio, ad esempio); specialmente quando si usano valori iniziali ottimistici, l'esplorazione richiesta avviene naturalmente. Nel caso in cui trovi ancora che il tuo algoritmo si blocca in alcune situazioni, ciò significa che devi aumentare il tempo di allenamento (ovvero eseguire più episodi), invece di introdurre una randomizzazione ausiliaria rispetto alle azioni.

Se tuttavia si esegue in un ambiente con dinamiche di sistema in evoluzione (ovvero le transizioni di stato sottostanti o le modifiche dei premi nel tempo), è necessario conservare un certo grado di esplorazione e aggiornare di conseguenza la propria politica al fine di tenere il passo con le modifiche.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.