Ziel ist es, mithilfe eines Frameworks wie Tensorforce eine Komponente zur Optimierung der proximalen Richtlinien zu entwerfen, die bestimmte Einschränkungen für den Aktionsbereich in Abhängigkeit von zustandsgesteuerten Regeln aufweist.
In der Frage aufgeführte Entwurfsoptionen
Diese Optionen sind hier als Kurzreferenz aufgeführt, wenn Sie die erste Analyse unten lesen.
- Ändern Sie den Aktionsbereich bei jedem Schritt abhängig vom internen Status. Ich nehme an, das ist Unsinn.
- Nichts tun: Lassen Sie das Modell verstehen, dass die Auswahl einer nicht verfügbaren Aktion keine Auswirkungen hat.
- Tun Sie fast nichts: Beeinflussen Sie die Belohnung leicht negativ, wenn das Modell eine nicht verfügbare Aktion auswählt.
- Helfen Sie dem Modell: indem Sie eine Ganzzahl in den Status- / Beobachtungsraum einfügen, die das Modell über den internen_Statuswert + Aufzählungspunkt 2 oder 3 informiert
Erste Analyse
Es ist in der Tat sinnvoll, den Aktionsraum für jede Bewegung zu ändern. Dies ist in der Tat eine angemessene Darstellung des Problems und der normalen Art und Weise, wie Menschen Spiele spielen und wie Computer Menschen in Chess and Go schlagen.
Die offensichtliche Sinnlosigkeit dieser Idee ist lediglich ein Artefakt des Fortschritts entlang der Roadmap des Tensorforce-Projekts und des Fortschritts entlang der Verstärkungstheorie, die beide im Großen und Ganzen jung sind. Beim Lesen der Tensorforce-Dokumentation und der häufig gestellten Fragen scheint es nicht so zu sein, dass das Framework eine Regelengine einbindet, um den Aktionsbereich zu bestimmen. Dies ist kein Mangel an Open Source. Es scheint keine Artikel zu geben, die Theorie liefern oder Algorithmen für regelkonditionierte Markov-Kettenentscheidungen vorschlagen.
Die Option "Nichts tun" passt zu den derzeit verfügbaren Strategien in der Literatur. Das Nichtstun ist wahrscheinlich der Ansatz, der zu einem zuverlässigeren und möglicherweise unmittelbareren wünschenswerten Verhalten führt.
Das Problem mit dem Konzept, dem Modell zu helfen, ist, dass es keine so starke Idee ist wie die Erweiterung des Modells. In Open Source würde dies durch Erweitern der Klassen erfolgen, die das Modell darstellen, was einige theoretische Arbeiten vor dem Codieren erfordern würde
a. Represent rule-conditioned learning in nomenclature
b. Represent convergence mathematically using the new nomenclature
c. Determining a method of convergence
d. Proving convergence
e. Rechecking
f. Defining a smooth and efficient algorithm
g. Providing PAC learning information for planning
f. Peer review
g. Extending the classes of the library
h. Proof of concept with the current problem above
i. Additional cases and metrics comparing the approach with the others
j. Extending the library flexibility to support more such dev
Die Erweiterung von Lernsystemen auf den Fall mit eingeschränkten Regeln ist eine großartige Idee für eine Doktorarbeit und könnte als Projektvorschlag mit vielen möglichen Anwendungen in Forschungslabors fliegen. Lassen Sie sich nicht von allen Schritten vom Forscher abbringen. Sie sind im Wesentlichen eine Liste von Schritten für jede Doktorarbeit oder jedes finanzierte KI-Laborprojekt.
Für eine kurzfristige Lösung könnte es funktionieren, dem Modell zu helfen, aber es ist keine vernünftige Strategie, um die Ideen der KI auf dem Weg des verstärkenden Lernens voranzutreiben. Als kurzfristige Lösung für ein bestimmtes Problem kann es gut funktionieren. Die Idee, fast nichts zu tun, ist möglicherweise fundierter, da sie in die Konvergenzbeweise passt, die zu der bestimmten Implementierung geführt haben, die Tensorforce wahrscheinlich verwendet.
Die Umbenennung von "fast nichts tun" in "Konvergenz unterstützen" kann dazu beitragen, die richtige Perspektive zu entwickeln, bevor Sie es versuchen. Möglicherweise müssen Sie die Unterstützung abschwächen, wenn Sie sich der Konvergenz nähern, um ein Überschwingen zu vermeiden, genau wie bei einer Lernrate.
Normalerweise ändert sich die Anzahl der Aktionen, die der Agent ausführen kann, im Laufe der Zeit nicht, aber einige Aktionen können in verschiedenen Zuständen unmöglich werden (z. B. ist nicht jede Bewegung in einer beliebigen Position des TicTacToe-Spiels möglich).
Schauen Sie sich als Beispiel den Code https://github.com/haje01/gym-tictactoe/blob/master/examples/base_agent.py an :
quelle