Replay prioritario, cosa fa realmente il campionamento di importanza?


10

Non riesco a capire lo scopo dei pesi di campionamento per importanza (IS) in Replay prioritario (pagina 5) .

È più probabile che una transizione venga campionata per esperienza, più grande è il suo "costo". La mia comprensione è che "IS" aiuta ad abbandonare senza problemi l'uso del replay prioritario dopo che ci siamo allenati abbastanza a lungo. Ma cosa usiamo invece, campionamento uniforme?

Immagino di non riuscire a capire come ogni componente in un tale coefficiente sta influenzando il risultato. Qualcuno potrebbe spiegarlo a parole?

wio=(1N1P(io))β

Viene quindi utilizzato per smorzare il gradiente, che proviamo a ottenere dalle transizioni.

Dove:

  • wio è "IS"
  • N è la dimensione del buffer Experience Replay
  • P (i) è la possibilità di selezionare la transizione , a seconda di "quanto è grasso il suo costo".io
  • β inizia da 0 e viene trascinato sempre più vicino a 1 con ogni nuova epoca.

Anche la mia comprensione di questi parametri è corretta?

Modifica Qualche tempo dopo l'accettazione della risposta ho trovato una fonte aggiuntiva, un video che potrebbe essere utile per i principianti - Simulazioni MC: 3.5 Campionamento dell'importanza


Modifica Come ha detto @avejidah nel commento alla sua risposta " viene utilizzato per calcolare la media dei campioni in base alla probabilità che vengano campionati" . 1/N

Per capire perché è importante, supponiamo che sia fissato a 1, abbiamo 4 campioni, ognuno ha come segue:βP(io)

0.1  0.2   0.3     0.4

Cioè, la prima voce ha il 10% di essere scelta, la seconda è il 20% ecc. Ora, invertendoli, otteniamo:

 10   5    3.333   2.5

Media tramite 1/N (che nel nostro caso è 1/4) noi abbiamo:

2.5  1.25  0.8325  0.625     ...which would add up to '5.21'

Come possiamo vedere, sono molto più vicini allo zero rispetto alle versioni semplicemente invertite (10,5,3.333,2.5). Ciò significa che il gradiente per la nostra rete non sarà ingrandito tanto, con conseguente minore varianza durante l'allenamento della nostra rete.

Quindi, senza questo 1Nsiamo stati fortunati a selezionare il campione meno probabile (0.1), il gradiente verrebbe ridimensionato 10 volte. Sarebbe ancora peggio con valori più piccoli, diciamo0.00001 possibilità, se la nostra esperienza di riproduzione ha molte migliaia di voci, il che è abbastanza normale.

Risposte:


11

DQN soffre intrinsecamente di instabilità. Nell'implementazione originale, vengono utilizzate più tecniche per migliorare la stabilità:

  1. una rete target viene utilizzata con parametri in ritardo rispetto al modello addestrato;
  2. i premi vengono tagliati nell'intervallo [-1, 1];
  3. i gradienti vengono ritagliati nell'intervallo [-1, 1] (usando qualcosa come Huber Loss o il gradiente di ritaglio);
  4. e più rilevante per la tua domanda, un grande buffer di riproduzione viene utilizzato per memorizzare le transizioni.

Continuando al punto 4, l'utilizzo di campioni completamente casuali da un ampio buffer di riproduzione aiuta a decorrelare i campioni, poiché è altrettanto probabile campionare transizioni da centinaia di migliaia di episodi in passato, così come campionarne di nuovi. Ma quando il campionamento prioritario viene aggiunto al mix, il campionamento puramente casuale viene abbandonato: c'è ovviamente una propensione verso i campioni ad alta priorità. Per correggere questa distorsione, i pesi corrispondenti ai campioni ad alta priorità sono regolati molto poco, mentre quelli corrispondenti ai campioni a bassa priorità rimangono invariati.

Intuitivamente questo dovrebbe avere senso. È probabile che i campioni che hanno una priorità alta vengano utilizzati nell'allenamento più volte. Ridurre i pesi su questi campioni spesso visti in pratica dice alla rete "allenarsi su questi campioni, ma senza troppa enfasi; saranno presto rivisti". Al contrario, quando si vede un campione a bassa priorità, i pesi IS sostanzialmente dicono alla rete, "questo campione probabilmente non verrà mai più visto, quindi si aggiorna completamente". Tieni presente che questi campioni a bassa priorità hanno comunque un errore TD basso e quindi probabilmente non c'è molto da imparare da loro; tuttavia, sono ancora utili ai fini della stabilità.

In pratica, il parametro beta viene ricotto fino a 1 durante la durata dell'allenamento. Il parametro alfa può essere ricotto simultaneamente, rendendo così il campionamento prioritario più aggressivo e allo stesso tempo correggendo più fortemente i pesi. E in pratica, dal documento che hai collegato, mantenere un'alfa fissa (.6) mentre ricottura la beta da .4 a 1 sembra essere il punto debole per il campionamento basato sulla priorità (pagina 14).

Come nota a margine, dalla mia esperienza personale, semplicemente ignorando i pesi IS (cioè non correggendo affatto) si ottiene una rete che si allena inizialmente, ma poi la rete sembra sovrautilizzare, dimentica ciò che è appreso (aka dimenticanza catastrofica) e carri armati. Su Atari Breakout, ad esempio, le medie aumentano durante i primi 50 milioni di fotogrammi o giù di lì, quindi le medie si riempiono completamente. Il documento che hai collegato ne discute un po 'e fornisce alcuni grafici.


Grazie! Temo perché gli autori debbano bilanciare1N quando hanno già 1P(io)(all'interno del peso 'IS'). non è1P(io)già in base alla dimensione della collezione comunque?
Kari,

2
Prego. Per rispondere alla domanda nel commento, no,1N non viene inserito nel file 1P(io). P(io)è la probabilità di selezionare il campione i. Questo è calcolato usandopriooioΣKpriooK Vale a dire la priorità del campione i rispetto alla somma di tutte le priorità. (Dove le priorità sono generalmente calcolate come(td_error+ε)α). Senza entrare troppo nei dettagli, il1Nesiste la media (parola chiave) dei campioni in base alla probabilità che vengano campionati.
Avejidah,

1
@ user3180 Il punto di importanza del campionamento non è ottenere uno stimatore imparziale del rendimento atteso - è distorto per sua stessa natura. Il punto è che alcuni campioni hanno un impatto maggiore sull'allenamento rispetto ad altri e quindi dovrebbero essere campionati più frequentemente. La ponderazione corregge la distorsione diminuendo le regolazioni del peso relative alle priorità dei campioni. Questa ponderazione diventa sempre più importante quando la rete inizia a convergere, quindi viene utilizzata la ricottura. Ignorare la ponderazione o correggere in altro modo completamente la distorsione è qualcosa che la carta PER copre (vedere la figura 12).
Avejidah,

2
@ user3180 Per quanto riguarda la seconda domanda su come utilizzare tutto il peso (β = 1): Ho il sospetto che in questo caso sarà generalmente ancora vedere un beneficio al PER, ma in generale la formazione sarà più lento di quello con i beta ricottura. Tenere presente che esistono due parametri, α e β, e anche se si fissa β su 1, il parametro α determina la quantità di priorità dei campioni. Cioè, i campioni vengono ancora estratti in modo distorto e, anche la distorsione viene completamente corretta, la soluzione su cui converge la tua rete differirà dal caso uniforme. Ancora una volta, vedere la figura 12 nel documento PER.
Avejidah,

1
@ user3180 Non sono sicuro di poter fornire una buona risposta matematica; tuttavia, la ragione pratica è che dando la priorità ai treni di rete su un set di dati che differisce dal caso uniforme. Con 0 <α <= 1, i campioni hanno la priorità, quindi sono non uniformi e distorti. Certo, è possibile regolare i pesi per correggere tale distorsione, ma i campioni sono ancora drasticamente diversi dal caso uniforme. L'allenamento su una diversa serie di campioni produce una soluzione diversa, indipendentemente dalle regolazioni del peso.
Avejidah,

0

Ho un dubbio. Come da carta,

Per motivi di stabilità, normalizziamo sempre i pesi di 1 / maxi wi in modo che ridimensionino l'aggiornamento solo verso il basso

Quindi il fattore 1 / N non diventa inefficace? ad esempio, considera l'ultimo campione,

case 1 without N : 0.25/10 = 0.25
case 2 with N=4; 0.625/2.5 = 0.25.

così,

Wi = pow(N,-beta) * pow(Pi, -beta)
Wmax = pow(N,-beta) * pow(Pmin,-beta)

normalizzando,

Wi/Wmax will cancel out the pow(N, -beta).

Ti prego, aiutami se la mia comprensione è sbagliata.


Ne hai ancora bisogno. Ad esempio, considera di avere 100 voci e un valore massimo di alcune voci dovrebbe essere, diciamo, 5. Adesso immagina di passare a 1 trilione di voci.
Kari,

Scusa, non ti ho preso. Ho aggiornato con la formula. Per favore controlla e fammi sapere la tua risposta.
Karthikeyan Nagarajan,
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.