Как определить состояния в обучении подкрепления?


14

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

Для более сложных задач, таких как робот, обучающийся ходьбе и т. Д., Как вы определяете эти состояния? Можете ли вы использовать алгоритмы обучения или классификации, чтобы «изучить» эти состояния?

Ответы:


14

Проблема представления состояний в Reinforcement Learning (RL) аналогична проблемам представления функций, выбора функций и разработки функций в обучении под надзором или без надзора.

Литература, которая преподает основы RL, имеет тенденцию использовать очень простые среды, чтобы можно было перечислить все состояния. Это упрощает оценку стоимости в виде базовых скользящих средних в таблице, которые легче понять и реализовать. Алгоритмы табличного обучения также имеют разумные теоретические гарантии сходимости, что означает, что если вы можете упростить свою задачу, чтобы она имела, скажем, менее нескольких миллионов состояний, то это стоит попробовать.

Самые интересные проблемы управления не будут вписываться в это число состояний, даже если вы их не будете учитывать. Это связано с « проклятием размерности ». Для этих проблем вы обычно представляете свое состояние как вектор различных характеристик - например, для робота, различных положений, углов, скоростей механических частей. Как и в случае контролируемого обучения, вы можете использовать их для использования в определенном учебном процессе. Например, обычно вы хотите, чтобы все они были числовыми, и если вы хотите использовать нейронную сеть, вы также должны нормализовать их до стандартного диапазона (например, от -1 до 1).

В дополнение к вышеупомянутым проблемам, которые относятся к другому машинному обучению, для RL, вам также нужно позаботиться о свойстве Маркова - то, что состояние предоставляет достаточно информации, чтобы вы могли точно предсказать ожидаемые следующие награды и следующие состояния с помощью действия, без необходимости какой-либо дополнительной информации. Это не обязательно должно быть идеально, небольшие различия, например, из-за колебаний плотности воздуха или температуры для колесного робота, обычно не оказывают большого влияния на его навигацию и могут быть проигнорированы. Любой фактор, который является по существу случайным, также можно игнорировать, придерживаясь теории RL - это может сделать агента менее оптимальным в целом, но теория все еще будет работать.

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

Здесь стоит отметить разницу между наблюдением и состоянием . Наблюдение - это некоторые данные, которые вы можете собрать. Например, у вас могут быть датчики на вашем роботе, которые отражают положение его суставов. Поскольку государство должно обладать свойством Маркова, одного необработанного наблюдения может быть недостаточно для создания подходящего состояния. Если это так, вы можете применить свои знания предметной области, чтобы построить лучшее состояние из доступных данных, или вы можете попробовать использовать методы, разработанные для частично наблюдаемых MDP (POMDP) - они эффективно пытаются построить недостающие части данных о состоянии статистически. Для этого вы можете использовать RNN или скрытую марковскую модель (также называемую «состоянием веры»), и в некотором смысле это использует «алгоритмы обучения или классификации, чтобы «выучить» эти состояния, как вы просили.

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

  • Простая линейная регрессия с функциями, разработанными на основе знаний предметной области, может быть очень эффективной. Возможно, вам придется приложить немало усилий, чтобы попробовать разные представления состояний, чтобы сработала линейная аппроксимация. Преимущество состоит в том, что этот более простой подход более устойчив к проблемам стабильности, чем нелинейное приближение

  • Более сложный нелинейный аппроксиматор функции, такой как многослойная нейронная сеть. Вы можете ввести более «сырой» вектор состояния и надеяться, что скрытые слои найдут некоторую структуру или представление, которое приведет к хорошим оценкам. В некотором смысле это тоже « алгоритмы обучения или классификации» для «изучения» этих состояний », но другим способом, чем RNN или HMM. Это может быть разумным подходом, если ваше состояние было выражено естественным образом в виде изображения на экране - очень сложно разобраться в разработке функций для данных изображения вручную.

Работа Atari DQN, выполненная командой DeepMind, использовала комбинацию разработки функций и опоры на глубокую нейронную сеть для достижения своих результатов. Инженерия функций включала понижающую дискретизацию изображения, уменьшая его до серой шкалы и - что важно для свойства Маркова - используя четыре последовательных кадра для представления одного состояния, чтобы информация о скорости объектов присутствовала в представлении состояния. Затем DNN обработал изображения в высокоуровневые объекты, которые можно использовать для прогнозирования значений состояния.


3

Распространенным ранним подходом к моделированию сложных задач была дискретизация . На базовом уровне это разбивает сложное и непрерывное пространство в сетку. Затем вы можете использовать любую из классических техник RL, разработанных для дискретных, линейных пространств. Однако, как вы можете себе представить, если вы не будете осторожны, это может вызвать много проблем!

В классической книге Саттона и Барто « Укрепление знаний» есть некоторые предложения о том, как это сделать. Одним из них является кодирование плитки , описанное в разделе 9.5.4 нового, второго издания . В кодировании плитки мы генерируем большое количество сеток, каждая с разным интервалом сетки. Затем мы накладываем сетки друг на друга. Это создает отдельные области неоднородных форм и может хорошо работать для решения различных задач.

Раздел 9.5 также охватывает множество других способов кодирования непрерывного пространства в дискретное MDP, включая радиально-базисные функции и грубые кодировки. Проверьте это!

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.