Diese Frage betrifft das Reinforcement Learning und unterschiedliche / inkonsistente Aktionsbereiche für jeden / einige Staaten .
Was meine ich mit inkonsistentem Aktionsraum ?
Angenommen, Sie haben ein MDP, bei dem die Anzahl der Aktionen zwischen den Status variiert (z. B. wie in Abbildung 1 oder Abbildung 2). Wir können "inkonsistenten Aktionsraum" formal ausdrücken, da
Das heißt, für jeden Status gibt es einen anderen Status, für den nicht dieselbe Aktion festgelegt ist. In den Figuren (1, 2) gibt es eine relativ kleine Anzahl von Aktionen pro Staat. Stellen Sie sich stattdessen Zustände mit Anzahl von Aktionen vor, wobei und eine wirklich große ganze Zahl ist.
Umgebung
Um die Frage besser zu verstehen, finden Sie hier ein Beispiel für die Umgebung. Nehmen Sie Abbildung 1 und lassen Sie es in einen wirklich großen gerichteten azyklischen Graphen mit einem Quellknoten, einem riesigen Aktionsraum und einem Zielknoten explodieren. Das Ziel ist es, einen Pfad zu durchlaufen, beginnend an einem beliebigen Startknoten, sodass wir die Belohnung maximieren, die wir nur am Zielknoten erhalten. In jedem Zustand können wir eine Funktion aufrufen , die einen Zustand als Eingabe verwendet und eine gültige Anzahl von Aktionen zurückgibt.
Ansätze
(1) Ein naiver Ansatz für dieses Problem ( hier und hier erörtert ) besteht darin, die für jeden Zustand gleichermaßen festgelegte Aktion zu definieren, eine negative Belohnung zurückzugeben, wenn die ausgeführte Aktion in und den Agenten in denselben Zustand zu versetzen. Auf diese Weise kann der Agent "lernen", welche Aktionen in den einzelnen Status gültig sind. Dieser Ansatz hat zwei offensichtliche Nachteile:
- Das Lernen von braucht Zeit, insbesondere wenn die Q-Werte erst aktualisiert werden, wenn entweder die Beendigung oder eine Aussage erfüllt ist (wie bei der Erfahrungswiedergabe ).
- Wir wissen , warum lernen wir es?
(2) Ein anderer Ansatz (erste Antwort hier , auch sehr ähnliche Vorschläge aus Veröffentlichungen wie Deep Reinforcement Learning in großen diskreten Aktionsräumen und diskrete sequentielle Vorhersage kontinuierlicher Aktionen für Deep RL ) besteht darin, stattdessen einen Skalar im kontinuierlichen Raum und von einigen vorherzusagen Methode ordnen Sie es einer gültigen Aktion zu. In den Beiträgen wird diskutiert, wie mit großen diskreten Aktionsräumen umgegangen werden kann, und die vorgeschlagenen Modellnähte sind auch eine Lösung für dieses Problem.
(3) Ein anderer Ansatz bestand darin, unter der Annahme, dass die Anzahl der verschiedenen Aktionssätze ziemlich klein ist, Funktionen , , ..., , die die Aktion zurückgeben in Bezug auf diesen bestimmten Zustand mit gültigen Aktionen. Ei, die ausgeführte Aktion eines Zustands mit 3 Anzahlen von Aktionen wird durch .
Keiner der Ansätze (1, 2 oder 3) findet sich in Veröffentlichungen, nur reine Spekulationen. Ich habe viel gesucht, kann aber keine Artikel direkt zu diesem Thema finden. Meine Fragen sind daher
- Kennt jemand ein Papier zu diesem Thema?
- Ist die Terminologie falsch? "Inkonsistent", "unregelmäßig", "anders" ...?
- Hat jemand einen anderen Ansatz, der es wert ist, untersucht zu werden?
quelle
Antworten:
Ich kenne nichts von oben ... Ich weiß, dass sich die überwiegende Mehrheit der Literatur zum Reinforcement Learning auf Einstellungen mit einem festen Aktionsraum konzentriert (wie Robotik, bei der Ihre Aktionen bestimmen, wie Sie versuchen, a zu bewegen / drehen) bestimmter Teil des Roboters oder einfache Spiele, bei denen Sie immer die gleichen Aktionen ausführen müssen, um sich zu bewegen und möglicherweise zu schießen oder zu verwenden usw.). Eine weitere gängige Klasse von Einstellungen besteht darin, dass der Aktionsbereich einfach so behandelt werden kann, als wäre er immer derselbe (indem alle Aktionen aufgelistet werden, die in einem bestimmten Zustand legal sein könnten) und illegale Aktionen in einer Art Nachbearbeitungsschritte herausgefiltert werden ( zB RL Arbeit in Brettspielen).
Also ... es könnte etwas da draußen geben, aber es ist sicherlich nicht üblich. Die meisten RL-Leute möchten so wenig Domänenwissen wie möglich einbeziehen, und ich nehme an, dass eine Funktion, die in einem bestimmten Zustand eine Reihe von rechtlichen Maßnahmen generiert, als Domänenwissen betrachtet werden kann.
Ich würde nicht inkonsistent verwenden, da dieses Wort so interpretiert werden kann, dass etwas "falsch" oder "schlecht definiert" wäre. Ich würde sagen, dass Sie einen variablen Aktionssatz haben (der Aktionssatz variiert je nach Status). Wenn ich danach suche, gibt es auch nicht viele Ergebnisse ... aber ich denke, dieser Begriff wäre vielversprechender.
Das von Ihnen beschriebene Problem ist hauptsächlich ein Problem beim Reinforcement Learning mit Funktionsnäherung, insbesondere Funktionsnäherung unter Verwendung neuronaler Netze. Wenn Sie mit der Verwendung tabellarischer RL-Algorithmen durchkommen, verschwindet das Problem sofort. Beispielsweise muss eine Tabelle mit -Werten, wie sie üblicherweise in tabellarischen, wertbasierten Algorithmen verwendet wird, keine Einträge für alle möglichen Paare enthalten. Es ist in Ordnung, wenn es nur Einträge für Paare enthält, so dass in legal ist .Q ( s , a ) ( s , a ) ( s , a ) ein s
Variable Aktionsräume werden in Deep RL-Ansätzen in erster Linie zu einem Problem, da wir normalerweise mit einer festen neuronalen Netzwerkarchitektur arbeiten . Ein Algorithmus im DQN-Stil umfasst neuronale Netze, die Merkmalsvektoren verwenden, die Zustände als Eingaben beschreiben, und -Schätzungen als Ausgaben bereitstellen . Dies bedeutet sofort, dass wir für jede Aktion einen Ausgabeknoten benötigen. Dies bedeutet, dass Sie alle Aktionen auflisten müssen. Hier tritt Ihr Problem auf. In ähnlicher Weise erfordern Richtliniengradientenmethoden traditionell auch einen Ausgabeknoten pro Aktion, was wiederum bedeutet Sie müssen in der Lage sein, alle Aktionen im Voraus aufzulisten (bei der Festlegung der Netzwerkarchitektur).s Q ( s , a )
Wenn Sie weiterhin neuronale Netze (oder andere Arten von Funktionsapproximatoren mit ähnlichen Arten von Ein- und Ausgängen) verwenden möchten, ist der Schlüssel zur Lösung Ihres Problems (wenn keiner der Vorschläge, die Sie bereits in der Frage aufgeführt haben, Ihren Wünschen entspricht) um zu erkennen, dass Sie einen anderen Weg finden müssen, um Ihre Ein- und Ausgänge zu formulieren, sodass Sie nicht mehr alle Aktionen im Voraus aufzählen müssen .
Ich kann mir das nur vorstellen, wenn Sie in der Lage sind, aussagekräftige Eingabefunktionen für vollständige Status-Aktions-Paare zu berechnen( s , a ) . Wenn Sie das können, können Sie beispielsweise neuronale Netze aufbauen, die:
Wenn Sie das können, dann in einem bestimmten Zustands Sie können einfach alle rechtlichen Schritte durchlaufen A ( s ) , berechnen Q.^( s , a ) Schätzungen für alle ( Hinweis : Wir benötigen jetzt| A ( s ) | durchläuft das Netzwerk und nicht nur einen einzigen Durchgang, wie er normalerweise bei Algorithmen im DQN-Stil erforderlich ist. Andernfalls wird ähnlich wie bei Standardalgorithmen im DQN-Stil vorgegangen.
Natürlich wird das Erfordernis guter Eingabefunktionen für Aktionen nicht immer erfüllt sein ... aber ich bezweifle, dass es viele gute Möglichkeiten gibt, dies zu umgehen. Es ist der Situation mit Staaten wirklich sehr ähnlich. In der tabellarischen RL werden alle Zustände (und alle Aktionen) aufgelistet. Bei der Funktionsnäherung werden normalerweise immer noch alle Aktionen aufgelistet, aber die Aufzählung aller Zustände wird vermieden, indem sie durch aussagekräftige Merkmalsvektoren ersetzt werden (was eine Verallgemeinerung über Zustände hinweg ermöglicht). Wenn Sie das Aufzählen von Aktionen vermeiden möchten, müssen Sie auf sehr ähnliche Weise über Aktionen hinweg verallgemeinern, was wiederum bedeutet, dass Sie Funktionen zum Beschreiben von Aktionen benötigen.
quelle
Das klingt ziemlich kompliziert und die Anzahl der verschiedenen Action-Sets ist normalerweise sehr hoch, selbst bei einfachsten Spielen. Stellen Sie sich Kontrolleure vor, ignorieren Sie Werbeaktionen und springen Sie der Einfachheit halber, und es gibt einige7⋅4⋅2=56 mögliche Aktionen (was in Ordnung ist), aber die Anzahl der verschiedenen Sätze dieser Aktionen ist viel höher. Es ist tatsächlich schwierig zu berechnen, wie viele solcher Sätze in einem echten Spiel möglich sind - es ist sicherlich viel weniger als256 , aber sicherlich auch viel zu groß, um praktisch zu sein.
Angenommen, die Anzahl der Aktionen ist nicht zu groß, können Sie Aktionen einfach ignorieren, die in einem bestimmten Status nicht zutreffen. Das ist etwas anderes als Lernen - Sie müssen nicht lernen, negative Auszeichnungen für illegale Handlungen zurückzugeben, es ist Ihnen einfach egal und Sie wählen die rechtlichen Schritte aus, die die beste Auszeichnung zurückgeben.
Beachten Sie, dass Ihr Ausdruck
kann vereinfacht werden
oder auch
quelle