Библиотеки Python для онлайн-машинного обучения MDP - PullRequest
8 голосов
/ 05 февраля 2012

Я пытаюсь разработать итерационный марковский процесс принятия решений (MDP) агент в Python со следующими характеристиками:

  • наблюдаемое состояние
    • Я обрабатываю потенциальное «неизвестное» состояние, резервируя некоторое пространство состояний для ответа на ходы типа запроса, сделанные DP (состояние при t + 1 будет идентифицировать предыдущий запрос [или ноль, если предыдущее перемещение не было запросом] а также встроенный вектор результата) это пространство дополняется нулями до фиксированная длина, чтобы сохранить состояние кадра независимо от запроса ответил (длина данных которого может отличаться)
  • действия, которые не всегда могут быть доступны во всех штатах
  • функция вознаграждения может меняться со временем
  • политика конвергенции должна увеличиваться и вычисляться только за ход

Таким образом, основная идея состоит в том, что MDP должен сделать наилучшее предположение, оптимизированное движение в точке T, используя свою текущую вероятностную модель (и поскольку его вероятностное движение, которое он делает, является ожидаемым стохастическим, подразумевающим возможную случайность), соедините новое входное состояние в T + 1 с вознаграждением за предыдущий ход в Т и переоценить модель. Конвергенция не должна быть постоянной, поскольку вознаграждение может модулироваться или доступные действия могут измениться.

Что я хотел бы знать, так это то, что существуют ли текущие библиотеки Python (желательно кроссплатформенные, так как я обязательно изменяю среды между Windoze и Linux), которые уже могут делать подобные вещи (или могут поддерживать их с помощью соответствующей настройки, например : поддержка производного класса, позволяющая переопределить метод скажем вознаграждения своим собственным).

Я нахожу информацию об обучении MDP в режиме реального времени на ход довольно скудно. Кажется, что большинство случаев использования MDP, которые я могу найти, сосредоточены на решении всей политики в качестве шага предварительной обработки.

Ответы [ 2 ]

1 голос
/ 21 июля 2013

Вот набор инструментов python для MDP .

Предостережение: Это для обычных MDP учебников, а не для частично наблюдаемых MDP (POMDP) ​​или любого вида нестационарности в наградах.

Второе предупреждение: я обнаружил, что документации действительно не хватает.Вам нужно заглянуть в код python, если вы хотите узнать, что он реализует, или вы можете быстро просмотреть их документацию для аналогичного набора инструментов, который есть для MATLAB .

1 голос
/ 06 февраля 2012

Я аспирант, делающий много вещей MCMC на Python, и, насколько мне известно, ничто не реализует MDP напрямую. Самая близкая вещь, о которой я знаю, это PyMC . Копаться в документации это , которая дает некоторые советы по расширению их классов. У них определенно нет вознаграждений и т. Д., Которые можно приобрести "из коробки".

Если вы серьезно относитесь к разработке чего-то хорошего, вы можете рассмотреть вопрос о расширении и создании подклассов PyMC для создания процессов принятия решений, так как тогда вы сможете включить их в следующее обновление PyMC и помочь многим будущим людям.

...