Perché DQN richiede due reti diverse?


12

Stavo attraversando questa implementazione di DQN e vedo che sulla linea 124 e 125 sono state inizializzate due diverse reti Q. Da quanto ho capito, penso che una rete preveda l'azione appropriata e la seconda preveda i valori Q di destinazione per trovare l'errore Bellman.

Perché non possiamo creare un'unica rete che prevede semplicemente il valore Q e lo utilizza in entrambi i casi? La mia ipotesi migliore è che sia stato fatto per ridurre il tempo di calcolo, altrimenti dovremmo scoprire il valore q per ogni azione e quindi selezionare quello migliore. È questa l'unica ragione? Mi sto perdendo qualcosa?

Risposte:


9

La mia ipotesi migliore è che sia stato fatto per ridurre il tempo di calcolo, altrimenti dovremmo scoprire il valore q per ogni azione e quindi selezionare quello migliore.

Non ha alcun impatto reale sul tempo di calcolo, se non un leggero aumento (dovuto alla memoria aggiuntiva utilizzata da due reti). Si potrebbe in cache i risultati della rete di destinazione suppongo, ma probabilmente non sarebbe valsa la pena per la maggior parte degli ambienti, e non ho visto un'implementazione che lo fa.

Mi sto perdendo qualcosa?

Ha a che fare con la stabilità dell'algoritmo Q-learning quando si usa l'approssimazione di funzioni (cioè la rete neurale). L'utilizzo di una rete di destinazione separata, aggiornata ogni tanti passaggi con una copia degli ultimi parametri appresi, aiuta a evitare che la tendenza alla fuga dal bootstrap dal dominio del sistema numericamente, facendo divergere i valori Q stimati.

Immagina che uno dei punti dati (at S, A, R, S') causi una sopravvalutazione attualmente scarsa per Q(S', A')peggiorare. Forse S', A'non è stato ancora visitato, o il valore di Rvisto finora è superiore alla media, solo per caso. Se un campione di (S,A)più volte viene riprodotto durante la riproduzione dell'esperienza, peggiorerebbe nuovamente ogni volta, poiché l'aggiornamento a Q(S,A)si basa R + max_a Q(S',a). Riparare la rete di destinazione limita il danno che tali sovrastime possono fare, dando alla rete di apprendimento il tempo di convergere e perdere più del suo pregiudizio iniziale.

A questo proposito, l'utilizzo di una rete di destinazione separata ha uno scopo molto simile all'esperienza di riproduzione. Stabilizza un algoritmo che altrimenti ha problemi di convergenza.

È anche possibile avere DQN con "doppio apprendimento" per affrontare un problema separato: distorsione da massimizzazione. In tal caso potresti vedere implementazioni DQN con 4 reti neurali.


Per ulteriori letture, si può fare riferimento a aaai.org/ocs/index.php/AAAI/AAAI16/paper/download/12389/11847
modifica
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.