Warum sehen Sie in Beispielen für Verstärkungslernen keine Dropout-Ebenen?

13

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?

Matt Hamilton
quelle
1
Haben Sie versucht, einem RL-Netzwerk einen Ausfall hinzuzufügen, um zu sehen, was passiert? Ich habe (für einen LunarLander_v2-Solver, der ansonsten gut funktioniert), und die Ergebnisse waren schrecklich. Es reicht von der Lösung in 400 Episoden bis hin zur völligen Nichtlösung (und ich habe viele Variationen anderer Parameter ausprobiert). Eine andere Regularisierung ist in Ordnung und sogar von Vorteil. Ich weiß noch nicht, warum die Probleme mit dem Schulabbrecher daran gedacht haben, hier eine Frage zu stellen. . .
Neil Slater
Neil, ja, es scheint, dass Ihre Erfahrung dort das wiedergibt, was Dennis unten sagt. Wie ich erwartet hatte, möchten Sie im Szenario vom Typ "Dieses Rätsel lösen" wirklich überpassen, da Sie dieses spezielle Rätsel lösen möchten. Und Sie möchten wissen, ob Sie einem blauen Alien gegenüber einem roten Alien begegnen, da diese sich in Ihrem Spiel möglicherweise anders verhalten.
Matt Hamilton
@MattHamilton Ich habe gerade einen Thread mit Tweets gesehen, den jemand über die Geschichte "RL-Forscher bewerten die Trainingsdaten" erstellt hat. Ich habe einen Link dazu in meiner Antwort bearbeitet. Der Punkt ist immer noch der gleiche, wenn es um die Beantwortung Ihrer Frage geht, aber ich stimme der Kette von Tweets zu, die ich dort verlinkt habe, dass die Wahrheit etwas nuancierter ist.
Dennis Soemers

Antworten:

11

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:

  • Zufälligkeit bei der Aktionsauswahl führt zu Abweichungen bei den beobachteten Renditen
  • Die Umgebung selbst kann zufällig sein, was zu einer zusätzlichen Varianz unserer Beobachtungen führt (einige Umgebungen sind nicht deterministisch).
  • Im Gegensatz zu den Einstellungen für überwachtes Lernen verwenden wir beim Reinforcement Learning häufig unsere eigenen Vorhersagen als Teil unserer Verlustfunktion / unseres Trainingssignals. Beispielsweise sieht beim Lernen mit zeitlichen Unterschieden (wie Q-Learning / DQN) das Ziel, auf das wir aktualisieren, wie aus: . In diesem Begriff ist nur das eine Grundwahrheitsbeobachtung (wie wir sie beim überwachten Lernen verwenden würden), und der andere Begriff ist unsere eigene Vorhersage. Während eines Lernprozesses ändern sich diese letzteren Teile (unsere eigenen Vorhersagen) im Laufe der Zeit. Dies ist ein "sich bewegendes Ziel " -Problem, das als zusätzliche Varianz in unseren Lernsignalen angesehen werden kann.r+maxaQ(s,a)r

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.


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?

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


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.

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.

Dennis Soemers
quelle
1
Dennis, vielen Dank für deine sehr ausführliche Antwort! Vieles bestätigt, dass ich meinen Verdacht habe: Das heißt, dass mehr RL versucht, ein ganz bestimmtes Problem in einer bestimmten Umgebung zu lösen, in der es oft eine eindeutige „beste“ Lösung für dieses Problem gibt.
Matt Hamilton
2
@MattHamilton Beachten Sie, dass für allgemeinere Umgebungen Untersuchungen zu RL durchgeführt werden. Wenn Sie sich für dieses Zeug interessieren, sollten Sie nach Kombinationen aus "Transfer Learning" und "Reinforcement Learning" oder nach Dingen wie Multi-Task RL (Multi-Objective RL) suchen, die möglicherweise ebenfalls interessant sind, sich aber wahrscheinlich geringfügig unterscheiden ). Diese Art von Bemühungen ist jedoch in der Regel immer noch wesentlich weniger leistungsfähig als der herkömmliche Ansatz des Trainings und der Bewertung in jeweils einer Umgebung.
Dennis Soemers