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+maxa′Q(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.