Включение вероятностей перехода в САРСА

Я внедряю модель SARSA(лямбда) в C++, чтобы преодолеть некоторые ограничения (требующиеся для модели DP большого количества времени и пространства) моделей DP, которые, как мы надеемся, сократят время вычислений (для подобных исследований требуется несколько часов).) и меньше места позволит добавить больше цвета лица модели.

У нас есть явные переходные вероятности, и они имеют значение. Итак, как мы должны включить их в модель SARSA?

Просто выберите следующее состояние в соответствии с самими вероятностями? По-видимому, модели SARSA точно не ожидают, что вы будете использовать вероятности - или, возможно, я читал не те книги.

PS- Есть ли способ узнать, правильно ли реализован алгоритм? Первый раз работаю с SARSA.

2 ответа

Решение

Принципиальное различие между динамическим программированием (DP) и усиленным обучением (RL) состоит в том, что первое предполагает, что динамика среды известна (т. Е. Модель), в то время как второе может учиться непосредственно из данных, полученных в процессе, в форме набор образцов, набор траекторий процесса или отдельная траектория. Из-за этой особенности методы RL полезны, когда модель сложно или дорого построить. Однако следует заметить, что оба подхода используют одни и те же принципы работы (так называемая обобщенная итерация политики в книге Саттона).

Учитывая, что они похожи, оба подхода также имеют некоторые ограничения, а именно проклятие размерности. Из книги Бузониу (глава 3 бесплатна и, вероятно, полезна для ваших целей):

Основная проблема в полях DP и RL состоит в том, что в их первоначальной форме (т.е. в табличной форме) алгоритмы DP и RL не могут быть реализованы для общих задач. Они могут быть реализованы только тогда, когда пространства состояний и действий состоят из конечного числа дискретных элементов, поскольку (среди прочих причин) они требуют точного представления функций или политик значений, что, как правило, невозможно для пространств состояний с бесконечным числом элементов (или слишком дорого, когда число штатов очень велико).

Даже когда состояния и действия принимают конечное число значений, стоимость представления функций-значений и политик экспоненциально возрастает с увеличением числа переменных состояния (и переменных действия для Q-функций). Эта проблема называется проклятием размерности, и делает классические алгоритмы DP и RL непрактичными, когда имеется много переменных состояния и действия. Чтобы справиться с этими проблемами, должны использоваться версии классических алгоритмов, которые приблизительно представляют функции значения и / или политики. Поскольку большинство задач, представляющих практический интерес, имеют большие или непрерывные пространства состояний и действий, приближение является существенным в DP и RL.

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

Лучше ли использовать DP или RL? На самом деле я не знаю ответа, и оптимальный метод, вероятно, зависит от вашей конкретной проблемы. Интуитивно понятно, что выборка набора состояний запланированным способом (DP) кажется более безопасной, но, возможно, большая часть вашего пространства состояний не имеет отношения к поиску оптимального списка. В таком случае выборка набора траекторий (RL) может быть более эффективной в вычислительном отношении. В любом случае, если оба метода применяются правильно, следует достичь аналогичного решения.

ПРИМЕЧАНИЕ: при использовании приближения функции свойства сходимости являются более хрупкими, и нередко расходятся во время итерационного процесса, особенно когда аппроксиматор нелинейный (например, искусственная нейронная сеть) в сочетании с RL.

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

Это не всегда так, но без дополнительной информации я бы сказал, что modified policy iteration это более подходящий метод для вашей проблемы.

Другие вопросы по тегам