Wie effizient ist Q-Learning mit neuronalen Netzen, wenn pro Aktion eine Ausgabeeinheit vorhanden ist?


9

Hintergrund:
Ich verwende in meiner Lernaufgabe zur Verstärkung die Q-Wert-Näherung des neuronalen Netzwerks. Der Ansatz ist genau der gleiche wie der in dieser Frage beschriebene , jedoch ist die Frage selbst anders.

Bei diesem Ansatz ist die Anzahl der Ausgaben die Anzahl der Aktionen, die wir ausführen können. In einfachen Worten lautet der Algorithmus wie folgt: Führen Sie die Aktion A aus, untersuchen Sie die Belohnung, bitten Sie NN, Q-Werte für alle möglichen Aktionen vorherzusagen, wählen Sie den maximalen Q-Wert, berechnen Sie Q für eine bestimmte Aktion A als R + max(new_state_Q). Passen Sie das Modell an die vorhergesagten Q-Werte an, wobei nur einer von ihnen durch ersetzt wird R + max(new_state_Q).

Frage: Wie effizient ist dieser Ansatz, wenn die Anzahl der Ausgänge groß ist?

Versuch: Nehmen wir an, wir können 10 Maßnahmen ergreifen. Bei jedem Schritt bitten wir das Modell, 10 Werte vorherzusagen. Im frühen Alter des Modells ist diese Vorhersage total durcheinander. Dann ändern wir 1 Wert der Ausgabe und passen das Modell an diese Werte an.

Ich habe zwei gegensätzliche Gedanken darüber, wie gut \ schlecht dieser Ansatz ist und kann mich nicht entscheiden, welcher richtig ist:

  • Unter einem Gesichtspunkt trainieren wir jedes Neuron 9 Mal mit zufälligen Daten und nur einmal mit Daten, die nahe am realen Wert liegen. Wenn NN 5 für Aktion A im Zustand S vorhergesagt hat, der reale Wert jedoch -100 ist, werden NN 9-mal mit dem Wert 5 und dann einmal mit dem Wert -100 angepasst. Klingt verrückt.
  • Unter anderen Gesichtspunkten wird das Lernen eines neuronalen Netzwerks als Rückausbreitung eines Fehlers implementiert. Wenn das Modell also 5 vorhergesagt hat und wir es auf 5 trainieren, lernt es nichts Neues, da der Fehler 0 ist. Gewichte werden nicht berührt . Und nur wenn wir -100 berechnen und an das Modell anpassen, wird die Gewichtsberechnung durchgeführt.

Welche Option ist richtig? Vielleicht gibt es noch etwas, das ich nicht berücksichtige?

UPDATE: Mit "wie effizient" meine ich den Vergleich mit einem Ansatz mit einer Ausgabe - vorhergesagten Belohnung. Natürlich wird die Aktion in diesem Fall Teil der Eingabe sein. Ansatz Nr. 1 macht also Vorhersagen für alle Aktionen basierend auf einem bestimmten Zustand, Ansatz Nr. 2 macht Vorhersagen für bestimmte Aktionen, die in einem bestimmten Zustand ausgeführt werden.


Es ist sehr schwierig, eine endgültige Antwort auf diese Frage in der aktuellen Form zu geben: "Wie effizient ist dieser Ansatz?" Nun, das hängt davon ab ... im Vergleich zu was? Welchen alternativen Ansatz würden Sie vorschlagen, der möglicherweise effizienter ist oder nicht?
Dennis Soemers

Hallo @DennisSoemers. Danke für deine Frage. Ich habe meinen Beitrag aktualisiert. Grundsätzlich besteht ein alternativer Ansatz darin, eine Ausgabe zu haben - Belohnung. Und zusätzliche N Eingänge für alle möglichen Aktionen. Hauptansatz ist INPUT (Status) und OUTPUT (N Belohnungen für N Aktionen). Alternative ist I (State + Action) und O (Reward).
Serhiy

Antworten:


1

Die beiden Optionen, die wir vergleichen möchten, sind:

  1. Eingänge = Zustandsdarstellung, Ausgänge = 1 Knoten pro Aktion
  2. Eingänge = Zustandsdarstellung + One-Hot-Codierung von Aktionen, Ausgänge = 1 Knoten

Nach meiner eigenen Intuition bezweifle ich, dass zwischen diesen beiden Optionen ein signifikanter Unterschied in Bezug auf Repräsentationskraft oder Lerngeschwindigkeit (in Bezug auf Iterationen) besteht.

Für die Darstellungsleistung gibt die erste Option ein etwas "kleineres" Netzwerk in der Nähe der Eingänge und ein "breiteres" Netzwerk in der Nähe der Ausgänge. Wenn es aus irgendeinem Grund vorteilhaft wäre, mehr Gewichte in der Nähe der Eingabeknoten zu haben, könnte dies so ziemlich erreicht werden, indem die erste verborgene Ebene (in der Nähe der Eingaben) ebenfalls etwas größer gemacht wird.

Was die Lerngeschwindigkeit betrifft, so besteht das Problem, das Sie zu haben scheinen, im Wesentlichen darin, im Allgemeinen nur ein genaues Lernsignal für einen der Ausgänge und nicht für die anderen zu haben. Mit der zweiten Option kann das Gleiche für Gewichte gesagt werden, die mit Eingangsknoten verbunden sind, daher bezweifle ich, dass es dort einen signifikanten Unterschied gibt.

Wie ich bereits erwähnt habe, basiert all das nur auf meiner Intuition. Es wäre interessant, glaubwürdigere Referenzen dazu zu sehen.

Q.Q.nn

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.