Pourquoi DQN nécessite-t-il deux réseaux différents?


12

J'étais en train de passer par cette implémentation de DQN et je vois que sur les lignes 124 et 125 deux réseaux Q différents ont été initialisés. D'après ma compréhension, je pense qu'un réseau prédit l'action appropriée et le deuxième réseau prédit les valeurs Q cibles pour trouver l'erreur Bellman.

Pourquoi ne pouvons-nous pas créer un seul réseau qui prédit simplement la valeur Q et l'utiliser dans les deux cas? Ma meilleure supposition que cela a été fait pour réduire le temps de calcul, sinon nous aurions à trouver la valeur q pour chaque action, puis sélectionner la meilleure. Est-ce la seule raison? Suis-je en train de manquer quelque chose?

Réponses:


9

Ma meilleure supposition que cela a été fait pour réduire le temps de calcul, sinon nous aurions à trouver la valeur q pour chaque action, puis sélectionner la meilleure.

Il n'a aucun impact réel sur le temps de calcul, hormis une légère augmentation (due à la mémoire supplémentaire utilisée par deux réseaux). Vous pouvez mettre en cache les résultats du réseau cible, je suppose, mais cela n'en vaudrait probablement pas la peine pour la plupart des environnements, et je n'ai pas vu d'implémentation qui le fasse.

Suis-je en train de manquer quelque chose?

Il s'agit de la stabilité de l'algorithme Q-learning lors de l'utilisation de l'approximation de fonction (ie le réseau neuronal). L'utilisation d'un réseau cible distinct, mis à jour à chaque étape avec une copie des derniers paramètres appris, aide à empêcher le biais incontrôlable de bootstrap de dominer le système numériquement, entraînant une divergence des valeurs Q estimées.

Imaginez que l'un des points de données (at S, A, R, S') provoque une surestimation actuellement médiocre pour l' Q(S', A')aggravation. Peut-être S', A'n'a -t- elle même pas encore été visitée, ou la valeur des Rvues jusqu'à présent est supérieure à la moyenne, juste par hasard. Si un échantillon de (S,A)plusieurs fois apparaissait lors de la relecture d'expérience, cela empirerait à chaque fois, car la mise à jour de Q(S,A)est basée sur R + max_a Q(S',a). La correction du réseau cible limite les dommages que de telles surestimations peuvent faire, donnant au réseau d'apprentissage le temps de converger et de perdre plus de son biais initial.

À cet égard, l'utilisation d'un réseau cible distinct a un objectif très similaire à l'expérience de la relecture. Il stabilise un algorithme qui, autrement, a des problèmes de convergence.

Il est également possible d'avoir un DQN avec "double apprentissage" pour résoudre un problème distinct: le biais de maximisation. Dans ce cas, vous pouvez voir des implémentations DQN avec 4 réseaux de neurones.


Pour une lecture supplémentaire, on peut se référer à aaai.org/ocs/index.php/AAAI/AAAI16/paper/download/12389/11847
amitection du
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.