Python-Bibliotheken für Online-Machine Learning MDP

8

Ich versuche, einen iterativen Markov-Entscheidungsprozess (MDP) -Agent in Python mit den folgenden Eigenschaften zu entwickeln:

  • beobachtbarer Zustand
    • Ich gehe mit einem möglichen "unbekannten" Zustand um, indem ich einen gewissen Zustandsraum reserviere zum Beantworten von Abfragen-Typ-Bewegungen, die von der DP gemacht wurden (der Zustand bei t + 1 wird Identifizieren Sie die vorherige Abfrage [oder 0, wenn die vorherige Verschiebung keine Abfrage war] ebenso wie der eingebettete Ergebnisvektor) wird dieser Raum mit Nullen bis gefüllt eine feste Länge, um den Statusrahmen unabhängig von der Abfrage ausgerichtet zu halten beantwortet (deren Datenlänge kann variieren)
  • Aktionen, die möglicherweise nicht immer in allen Bundesstaaten verfügbar sind
  • Belohnungsfunktion kann sich im Laufe der Zeit ändern
  • Politikkonvergenz sollte schrittweise und nur pro Bewegung berechnet werden

Die Grundidee ist also, dass die MDP ihre bestbewertete Bewegung bei T unter Verwendung ihres aktuellen Wahrscheinlichkeitsmodells (und da ihre probabilistische Bewegung erwartungsgemäß stochastisch ist und mögliche Zufälligkeit impliziert) unter Verwendung des neuen Eingabezustands bei T + 1 koppelt mit der Belohnung aus dem vorherigen Zug bei T und neu bewerten das Modell. Die Konvergenz darf nicht permanent sein, da die Belohnung modulieren kann oder sich die verfügbaren Aktionen ändern können.

Ich würde gerne wissen, ob es aktuelle Python-Bibliotheken gibt (vorzugsweise plattformübergreifend, da ich notwendigerweise die Umgebung zwischen Windoze und Linux ändere), die solche Dinge schon tun können (oder sie mit geeigneter Anpassung unterstützen, z : abgeleitete Klassenunterstützung, die es erlaubt, die say reward Methode mit der eigenen neu zu definieren).

Ich finde Informationen über online-pro-Bewegung MDP-Lernen ist eher selten. Die meiste Verwendung von MDP, die ich finden kann, scheint sich darauf zu konzentrieren, die gesamte Richtlinie als Vorverarbeitungsschritt zu lösen.

    
Brian Jack 05.02.2012, 02:15
quelle

2 Antworten

1

Ich bin ein Student, der in Python viel MCMC-Kram macht, und meiner Kenntnis nach implementiert nichts direkt MDPs. Am nächsten ist mir PyMC . In der Dokumentation nachschlagen diese , die einige Tipps zur Erweiterung ihrer Klassen gibt. Sie haben definitiv keine Belohnungen, etc., die sofort verfügbar sind.

Wenn es dir ernst damit ist, etwas Gutes zu entwickeln, kannst du das PyMC-Material erweitern und unterklassifizieren, um deine Entscheidungsprozesse zu erstellen, denn dann kannst du es in das nächste Update von PyMC aufnehmen und vielen zukünftigen Leuten helfen.

    
ely 06.02.2012 07:07
quelle
0

Hier ist eine Python-Toolbox für MDPs .

Vorbehalt: Es ist für MDPs aus Vanilla-Lehrbüchern und nicht für teilweise beobachtbare MDPs (POMDPs) oder irgendeine Art von Nicht-Stationarität in Belohnungen.

Zweiter Vorbehalt: Ich fand die Dokumentation sehr mangelhaft. Sie müssen in den Python-Code schauen, wenn Sie wissen wollen, was es implementiert, oder Sie können sich schnell die Dokumentation ansehen für eine ähnliche Toolbox haben sie für MATLAB .

    
kitchenette 21.07.2013 18:31
quelle

Tags und Links