Warum benötigt DQN zwei verschiedene Netzwerke?


12

Ich habe diese Implementierung von DQN durchlaufen und sehe, dass in den Zeilen 124 und 125 zwei verschiedene Q-Netzwerke initialisiert wurden. Nach meinem Verständnis sagt ein Netzwerk die geeignete Aktion voraus und das zweite Netzwerk sagt die Q-Zielwerte zum Auffinden des Bellman-Fehlers voraus.

Warum können wir nicht einfach ein einziges Netzwerk erstellen, das einfach den Q-Wert vorhersagt, und ihn für beide Fälle verwenden? Ich gehe davon aus, dass dies getan wurde, um die Rechenzeit zu verkürzen. Andernfalls müssten wir den q-Wert für jede Aktion ermitteln und dann den besten auswählen. Ist das der einzige Grund? Vermisse ich etwas

Antworten:


9

Ich gehe davon aus, dass dies getan wurde, um die Rechenzeit zu verkürzen. Andernfalls müssten wir den q-Wert für jede Aktion ermitteln und dann den besten auswählen.

Abgesehen von einer geringfügigen Erhöhung (aufgrund des zusätzlichen Speichers, der von zwei Netzwerken verwendet wird) hat dies keinen wirklichen Einfluss auf die Rechenzeit. Sie könnten die Ergebnisse des Zielnetzwerks zwischenspeichern, aber es würde sich für die meisten Umgebungen wahrscheinlich nicht lohnen, und ich habe keine Implementierung gesehen, die dies tut.

Vermisse ich etwas

Dies hat mit der Stabilität des Q-Learning-Algorithmus bei Verwendung der Funktionsnäherung (dh des neuronalen Netzwerks) zu tun. Die Verwendung eines separaten Zielnetzwerks, das alle paar Schritte mit einer Kopie der zuletzt erlernten Parameter aktualisiert wird, trägt dazu bei, dass das Bootstrapping das System nicht numerisch dominiert und die geschätzten Q-Werte divergieren.

Stellen Sie sich vor, einer der Datenpunkte (at S, A, R, S') führt zu einer derzeit schlechten Überschätzung Q(S', A'), um sich zu verschlechtern. Vielleicht S', A'wurde es noch nicht einmal besucht, oder der Wert von Rbisher gesehen ist zufällig zufällig überdurchschnittlich hoch. Wenn ein Beispiel von (S,A)mehrmals in der Erfahrungswiederholung aufgetaucht ist, wird es jedes Mal wieder schlechter, da das Update auf Q(S,A)basiert auf R + max_a Q(S',a). Durch das Festlegen des Zielnetzwerks wird der Schaden begrenzt, den solche Überschätzungen verursachen können, sodass das lernende Netzwerk Zeit hat, sich zu konvergieren und mehr von seiner anfänglichen Verzerrung zu verlieren.

In dieser Hinsicht hat die Verwendung eines separaten Zielnetzwerks einen sehr ähnlichen Zweck, die Wiedergabe zu erleben. Es stabilisiert einen Algorithmus, der ansonsten Probleme bei der Konvergenz hat.

Es ist auch möglich, DQN mit "doppeltem Lernen" zu haben, um ein separates Problem anzugehen: Maximierungsbias. In diesem Fall sehen Sie möglicherweise DQN-Implementierungen mit 4 neuronalen Netzen.


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.