Ich habe Zweifel, wie genau die Verlustfunktion eines Deep Q-Learning-Netzwerks trainiert wird. Ich verwende ein 2-Schicht-Feedforward-Netzwerk mit linearer Ausgangsschicht und relu versteckten Schichten.
- Nehmen wir an, ich habe 4 mögliche Aktionen. Somit ist der Ausgang von dem Netzwerk für den aktuellen Zustand ist . Um es konkreter zu machen, nehmen wir an, dass
- Jetzt nehme ich die Aktion entsprechend dem Wert dh die 3. Aktion, und erreiche einen neuen Zustand .
- Als nächstes berechne ich den Vorwärtsdurchlauf mit dem Zustand und nehme an, ich erhalte die folgenden Werte auf der Ausgangsschicht . Nehmen wir auch an, die Belohnung r_t = 2 und .
Ist der Verlust gegeben durch:
ODER
ODER
Vielen Dank, tut mir leid, dass ich das sehr einfach aufschreiben musste ... Ich bin durch die ganze Notation verwirrt. (Ich denke, die richtige Antwort ist die zweite ...)
Antworten:
Nachdem Sie die Gleichungen noch einige Male überprüft haben. Ich denke, der richtige Verlust ist der folgende:
Meine Argumentation ist, dass die Q-Learning-Aktualisierungsregel für den allgemeinen Fall nur den Q-Wert für ein bestimmtes aktualisiert .state,action
Diese Gleichung bedeutet, dass die Aktualisierung nur für einen bestimmten ein bestimmtes und für das neuronale Q-Netzwerk erfolgt. Dies bedeutet, dass der Verlust nur für eine bestimmte Ausgabeeinheit berechnet wird, die einer bestimmten .state,action action
In dem angegebenen Beispiel ist und das ist .Q(s,a)=4.3 target r+γmaxa∗Q(s′,a∗)=11.1
quelle