Ich habe mich mit dem verstärkten Lernen befasst und speziell damit herumgespielt, meine eigenen Umgebungen für die Verwendung mit der OpenAI Gym AI zu erstellen. Ich verwende Agenten aus dem Projektziehbare_Basislinien, um damit zu testen.
Eine Sache, die mir in praktisch allen RL-Beispielen aufgefallen ist, ist, dass es in keinem der Netzwerke Dropout-Schichten zu geben scheint. Warum ist das?
Ich habe eine Umgebung geschaffen, die Währungspreise simuliert, und einen einfachen Agenten, der mithilfe von DQN versucht zu lernen, wann man kauft und verkauft. Das Training über fast eine Million Zeitschritte, die aus einem bestimmten Datensatz stammen, der aus 5-Minuten-Preisdaten für einen Monat besteht, scheint sehr viel zu passen. Wenn ich dann die Agenten und das Modell anhand der Daten eines anderen Monats bewerte, ist die Leistung miserabel. Klingt also nach klassischer Überanpassung.
Aber gibt es einen Grund, warum Sie in RL-Netzwerken keine Dropout-Schichten sehen? Gibt es andere Mechanismen, um mit Überanpassung umzugehen? Oder spielt es in vielen RL-Beispielen keine Rolle? zB gibt es möglicherweise nur einen wahren Weg zum ultimativen Highscore im Breakout-Spiel, also können Sie das genauso gut genau lernen und müssen nicht verallgemeinern?
Oder wird davon ausgegangen, dass die chaotische Natur der Umgebung selbst genügend unterschiedliche Kombinationen von Ergebnissen liefern sollte, sodass Sie keine Dropout-Schichten benötigen?
quelle
Antworten:
Dropout führt wesentlich mehr Varianz ein. In überwachten Lernumgebungen hilft dies in der Tat oft, die Überanpassung zu reduzieren (obwohl ich glaube, dass der Schulabbrecher in den letzten Jahren bereits weniger in Mode gekommen ist als in den wenigen Jahren zuvor; ich bin mir jedoch nicht 100% sicher, dass dies nicht meine primäre ist Fachgebiet).
Beim Reinforcement Learning ist zusätzliche Varianz nicht das, wonach wir suchen. Es gibt bereits eine große Varianz in den Lernsignalen, die wir erhalten, und diese Varianz ist bereits ein Hauptproblem für die Lernstabilität und / oder Lerngeschwindigkeit. Zum Beispiel:
Viele wichtige Teile von Deep RL-Algorithmen (ohne die sich unsere Trainingsprozesse empirisch als destabilisierend und zusammenbrechend herausstellen) sind sehr stark auf die Reduzierung dieser Varianz zugeschnitten . Beispielsweise wurden Zielnetzwerke in DQN speziell eingeführt, um das Problem des sich bewegenden Ziels zu reduzieren. Unter diesem Gesichtspunkt ist es nicht verwunderlich, dass eine erneute künstliche Varianz durch andere Mittel (z. B. Schulabbrecher) die Leistung beeinträchtigen / das Lernen destabilisieren würde.
In der Mehrzahl der aktuellen (Deep) Reinforcement Learning-Forschungen wird Überanpassung in der Tat nicht als Problem angesehen. Die überwiegende Mehrheit der RL-Forschung besteht aus dem Training in einer Umgebung (z. B. Cartpole oder Breakout oder einer bestimmten Ebene in Pacman oder dem Navigieren in einem bestimmten Labyrinth usw.) und entweder der ständigen Bewertung der Leistung während dieses Lernprozesses oder der Bewertung Leistung nach einem solchen Lernprozess in der gleichen Umgebung .
Wenn wir diese Bewertungsmethode mit dem vergleichen, was beim überwachten Lernen passiert, bewerten wir im Grunde die Leistung des Trainingssatzes * . Beim überwachten Lernen wäre dies absolut inakzeptabel, aber beim RL wird es als akzeptabel und eher als Regel als als Ausnahme behandelt. Einige sagen, dies sei einfach ein Problem in der aktuellen RL-Forschung, das sich ändern muss. Es könnte auch argumentiert werden, dass es nicht unbedingt ein Problem ist; Wenn wir den Agenten wirklich in genau der Umgebung schulen können, in der wir ihn später bereitstellen möchten ... Nun, was ist das Problem, wenn er sich an diese Umgebung anpasst?
Wenn wir also die oben beschriebene Bewertungsmethode verwenden, passen wir uns zwar an eine bestimmte Umgebung an, aber eine Überanpassung ist gemäß unseren Bewertungskriterien eher gut als schlecht . Es ist klar, dass diese Methodik nicht zu Agenten führt, die sich gut verallgemeinern lassen; Wenn Sie einen Agenten konsequent darin schulen, in einem bestimmten Labyrinth zu navigieren, kann er nach dem Training wahrscheinlich nicht in einem anderen Labyrinth navigieren.
* Hinweis: Die Wahrheit ist meiner Meinung nach etwas nuancierter als die, die wir in RL wirklich "am Trainingssatz bewerten". Siehe zum Beispiel diesen netten Thread von Tweets: https://twitter.com/nanjiang_cs/status/1049682399980908544
Beachten Sie, dass Ihre hier beschriebene Bewertungsmethode tatsächlich nicht mehr zur "allgemeineren" Bewertungsmethode passt. Sie haben ein Problem mit der Konzeptdrift und der Nichtstationarität in der Umgebung. Dies bedeutet, dass eine Überanpassung ein Problem für Sie sein kann.
Trotzdem bin ich mir nicht sicher, ob ein Ausfall helfen würde (es ist immer noch eine zusätzliche Varianz, die weh tun kann). In erster Linie möchten Sie sicherstellen, dass es eine Möglichkeit gibt, die Zeit / den Monat in Ihren Eingaben zu verfolgen, sodass Sie zumindest die Möglichkeit haben, eine Richtlinie zu erlernen, die sich im Laufe der Zeit anpasst. Wenn Sie eine klare, feste Grenze zwischen "Trainingsphase" und "Evaluierungsphase" haben und wissen, dass eine Konzeptdrift über diese Grenze hinweg auftritt (Sie wissen, dass sich Ihre Umgebung in der Trainingsphase anders verhält als in der Evaluierungsphase) ... Sie Ich habe wirklich nicht viel Hoffnung, eine Politik nur aus der Erfahrung in der Schulungsphase zu lernen, die in der Evaluierungsphase noch gut funktioniert. Ich vermute, Sie müssen diese klare, feste Grenze loswerden. Du' Ich möchte auch während der Evaluierungsphase weiter lernen. Auf diese Weise kann Ihr Lernalgorithmus tatsächlich Erfahrungen in der veränderten Umgebung sammeln und sich daran anpassen.
quelle