Pourquoi utiliser deux réseaux, s'entraîner une fois par épisode et mettre à jour le réseau cible à chaque fois ? N alors que nous pouvons utiliser un seul réseau et l'entraîner UNE FOIS à chaque épisode. N épisode ! Il n'y a littéralement aucune différence !
Réponse
Trop de publicités?Ce que vous décrivez est no Double DQN . Le réseau cible mis à jour périodiquement est une caractéristique essentielle de l'algorithme DQN original (et de tous ses dérivés). L'article classique de DeepMind explique pourquoi il est crucial d'avoir deux réseaux :
La deuxième modification apportée à l'apprentissage par questions en ligne visait à améliorer encore l'efficacité de l'apprentissage par questions. stabilité de notre méthode avec les réseaux neuronaux est d'utiliser un réseau séparé pour générer les cibles.
y_j
dans la mise à jour de l'apprentissage Q. Plus précisément, chaqueC
les mises à jour que nous clonons le réseauQ
pour obtenir un réseau cibleQ^
et utiliserQ^
pour générer le cibles d'apprentissage Qy_j
pour les points suivantsC
les mises à jour deQ
. Cette modification rend l'algorithme plus stable par rapport à l'apprentissage Q en ligne standard, où une mise à jour qui augmenteQ(s_t, a_t)
augmente souvent aussiQ(s_{t+1}, a)
pour tousa
et donc augmente également la cibley_j
Ce qui peut conduire à des oscillations ou à des divergences de la politique. La génération des cibles à l'aide d'un jeu de paramètres plus ancien ajoute un délai entre le moment où une mise à jour des cibles est effectuée et celui où les cibles sont mises à jour.Q
est effectuée et le moment où la mise à jour affecte les ciblesy_j
ce qui rend les divergences ou les oscillations beaucoup plus improbables.