Wie definiere ich Zustände im Bestärkungslernen?

14

Ich studiere das verstärkende Lernen und die Varianten davon. Ich fange an zu verstehen, wie die Algorithmen funktionieren und wie sie auf ein MDP angewendet werden. Was ich nicht verstehe, ist der Prozess der Definition der Zustände des MDP. In den meisten Beispielen und Tutorials repräsentieren sie etwas Einfaches wie ein Quadrat in einem Raster oder Ähnliches.

Wie definieren Sie bei komplexeren Problemen wie dem Erlernen des Gehens durch einen Roboter usw. diese Zustände? Können Sie Lern- oder Klassifizierungsalgorithmen verwenden, um diese Zustände "zu lernen"?

Andy
quelle

Antworten:

14

Das Problem der Zustandsrepräsentation beim Reinforcement Learning (RL) ähnelt dem Problem der Merkmalsrepräsentation, Merkmalsauswahl und Merkmalsentwicklung beim überwachten oder unbeaufsichtigten Lernen.

Literatur, die die Grundlagen von RL lehrt, verwendet in der Regel sehr einfache Umgebungen, sodass alle Zustände aufgelistet werden können. Dies vereinfacht die Schätzung von Werten in Basisdurchschnitten in einer Tabelle, die einfacher zu verstehen und zu implementieren sind. Tabellarische Lernalgorithmen haben auch vernünftige theoretische Konvergenzgarantien, wenn Sie können Ihr Problem vereinfachen , so dass es, sagen wir, weniger als ein paar Millionen Staaten, dann ist dies einen Versuch wert.

Die interessantesten Steuerungsprobleme werden nicht in diese Anzahl von Zuständen passen, selbst wenn Sie sie diskretisieren. Dies ist auf den " Fluch der Dimensionalität " zurückzuführen. Bei diesen Problemen werden Sie Ihren Zustand in der Regel als Vektor mit verschiedenen Merkmalen darstellen - z. B. für einen Roboter, verschiedene Positionen, Winkel, Geschwindigkeiten mechanischer Teile. Wie beim betreuten Lernen möchten Sie diese möglicherweise für einen bestimmten Lernprozess verwenden. In der Regel möchten Sie beispielsweise, dass sie alle numerisch sind. Wenn Sie ein neuronales Netzwerk verwenden möchten, sollten Sie sie auch auf einen Standardbereich (z. B. -1 bis 1) normieren.

Zusätzlich zu den obigen Bedenken, die für anderes maschinelles Lernen gelten, müssen Sie sich für RL auch mit der Markov-Eigenschaft befassen - dass der Zustand genügend Informationen bereitstellt, damit Sie die erwarteten nächsten Belohnungen und nächsten Zustände bei einer bestimmten Aktion genau vorhersagen können. ohne zusätzliche Informationen. Dies muss nicht unbedingt perfekt sein. Kleine Unterschiede, die z. B. auf Luftdichteschwankungen oder Temperaturschwankungen bei einem Roboter mit Rädern zurückzuführen sind, haben normalerweise keinen großen Einfluss auf die Navigation und können ignoriert werden. Jeder Faktor, der im Wesentlichen zufällig ist, kann auch ignoriert werden, wenn die RL-Theorie eingehalten wird. Dies kann dazu führen, dass der Agent insgesamt weniger optimal ist, die Theorie funktioniert jedoch weiterhin.

Wenn es konsistente unbekannte Faktoren gibt, die das Ergebnis beeinflussen und logisch abgeleitet werden können - möglicherweise aus der Geschichte des Staates oder aus Aktionen -, die Sie jedoch aus der Repräsentation des Staates ausgeschlossen haben, liegt möglicherweise ein schwerwiegenderes Problem vor, und der Agent lernt möglicherweise nicht .

Es ist erwähnenswert, dass hier der Unterschied zwischen Beobachtung besteht und Zustand besteht . Eine Beobachtung sind einige Daten, die Sie sammeln können. Zum Beispiel haben Sie möglicherweise Sensoren an Ihrem Roboter, die die Positionen seiner Gelenke zurückmelden. Da der Staat die Markov-Eigenschaft besitzen sollte, reicht eine einzelne Rohbeobachtung möglicherweise nicht aus, um einen geeigneten Staat zu erstellen. In diesem Fall können Sie entweder Ihr Domänenwissen anwenden, um einen besseren Zustand aus den verfügbaren Daten zu erstellen, oder Sie können versuchen, Techniken zu verwenden, die für das teilweise beobachtbaren MDPs (POMDPs) - diese versuchen effektiv, fehlende Teile von erstellen statistisch. Sie könnten hierfür ein RNN- oder Hidden-Markov-Modell (auch als "Glaubenszustand" bezeichnet) verwenden, und in gewisser Weise wird hier ein "Lern- oder Klassifizierungsalgorithmen zum "Lernen" dieser Zustände, wie Sie gefragt haben.

Schließlich müssen Sie den Typ des zu verwendenden Approximationsmodells berücksichtigen. Hier gilt ein ähnlicher Ansatz wie für betreutes Lernen:

  • Eine einfache lineare Regression mit Funktionen, die auf Basis von Domänenwissen entwickelt wurden, kann sehr gut funktionieren. Möglicherweise müssen Sie hart daran arbeiten, verschiedene Zustandsdarstellungen auszuprobieren, damit die lineare Approximation funktioniert. Der Vorteil ist, dass dieser einfachere Ansatz gegenüber Stabilitätsproblemen robuster ist als eine nichtlineare Approximation

  • Ein komplexerer nichtlinearer Funktionsapproximator, beispielsweise ein mehrschichtiges neuronales Netzwerk. Sie können einen "rohen" Zustandsvektor eingeben und hoffen, dass die ausgeblendeten Ebenen eine Struktur oder Darstellung finden, die zu guten Schätzungen führt. In mancher Hinsicht handelt es sich auch um " Lern- oder Klassifizierungsalgorithmen", um "diese Zustände " zu lernen , jedoch auf eine andere Weise als bei einem RNN oder HMM. Dies ist möglicherweise eine sinnvolle Vorgehensweise, wenn Ihr Status auf natürliche Weise als Bildschirmbild ausgedrückt wurde. Es ist sehr schwierig, die Funktionstechnik für Bilddaten von Hand zu ermitteln.

Bei der Atari DQN-Arbeit des DeepMind- Teams wurde eine Kombination aus Feature-Engineering und der Verwendung eines tiefen neuronalen Netzwerks verwendet, um die Ergebnisse zu erzielen. Das Feature-Engineering umfasste das Downsampling des Bildes, das Reduzieren auf Graustufen und - was für die Markov-Eigenschaft wichtig ist - das Darstellen eines einzelnen Zustands mithilfe von vier aufeinander folgenden Frames, sodass Informationen zur Geschwindigkeit von Objekten in der Zustandsdarstellung vorhanden waren. Das DNN verarbeitete dann die Bilder in übergeordnete Features, die verwendet werden könnten, um Vorhersagen über Zustandswerte zu treffen.

Neil Slater
quelle
3

Ein üblicher früher Ansatz zur Modellierung komplexer Probleme war die Diskretisierung . Auf einer grundlegenden Ebene wird ein komplexer und kontinuierlicher Raum in ein Raster aufgeteilt. Dann können Sie eine der klassischen RL-Techniken verwenden, die für diskrete, lineare Räume ausgelegt sind. Wie Sie sich vorstellen können, kann dies jedoch zu großen Problemen führen, wenn Sie nicht vorsichtig sind!

Das klassische Buch Reinforcement Learning von Sutton & Barto enthält einige Vorschläge für andere Vorgehensweisen. Eine davon ist Kachel Codierung , bedeckt in Abschnitt 9.5.4 der neuen, zweiten Auflage . Bei der Kachelcodierung generieren wir eine große Anzahl von Gittern mit jeweils unterschiedlichen Gitterabständen. Wir überlagern dann die Gitter übereinander. Dies erzeugt diskrete Bereiche mit ungleichmäßigen Formen und kann für eine Vielzahl von Problemen gut funktionieren.

Abschnitt 9.5 behandelt auch eine Vielzahl anderer Möglichkeiten, einen kontinuierlichen Raum in einen diskreten MDP zu codieren, einschließlich radialer Basisfunktionen und grober Codierungen. Hör zu!

John Doucette
quelle