Пошаговый подход к пониманию основанных на политике методов в обучении с подкреплением

Обновление: если вы новичок в этой теме, возможно, вам будет проще начать со статьи Политика обучения с подкреплением для разработчиков.

Вступление

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

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

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

Итак, основная идея состоит в том, чтобы иметь возможность определять в состоянии (s), какое действие следует предпринять, чтобы максимизировать вознаграждение.

Для достижения этой цели необходимо точно настроить вектор параметров, отмеченных 𝜽, чтобы выбрать наилучшее действие, которое следует предпринять для политики 𝜋.
Политика отмечена 𝜋 (a | s, 𝜽) = Pr {At = а | St = s, 𝜽t = 𝜽}, что означает, что политика 𝜋 - это вероятность выполнения действия a в состоянии s и параметры 𝜽.

Преимущества

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

Недостаток

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

Стохастическая политика

Сначала важно отметить, что стохастический не означает случайность во всех состояниях, но он может быть стохастическим в некоторых состояниях, где это имеет смысл.
Обычно максимизация вознаграждения ведет к детерминированной политике. Но в некоторых случаях детерминированная политика не подходит для решения проблемы, например, в любой игре с двумя игроками, детерминированная игра означает, что другой игрок сможет принять контрмеры, чтобы постоянно выигрывать. Например, в игре Rock-Cissors-Paper, если мы играем детерминированно, имея в виду одну и ту же форму каждый раз, то другой игрок может легко противостоять нашей политике и выигрывать в каждой игре.

Таким образом, в этой игре оптимальной политикой будет стохастическая политика, которая лучше детерминированной.

Синяя печать

Прежде чем углубляться в детали математики и алгоритмов, полезно иметь обзор того, как действовать, своего рода предварительный план:

  1. Найдите целевую функцию, которую можно использовать для оценки эффективности политики. Другими словами, рассказывая о том, насколько хорош результат, который дает политика.
  2. Определите политики.
    Мы имеем в виду перечисление некоторых полезных политик, которые можно использовать в процессе обучения.
  3. Наивный алгоритм.
    Предложите алгоритм, который напрямую использует политики для изучения параметров.
  4. Улучшенные алгоритмы
    Найдите алгоритмы, которые улучшают целевую функцию, чтобы максимизировать эффективность политики.

Часть 1 Blue Print: поиск целевой функции

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

Целевая функция

Когда мы говорим о максимизации функции, один из методов, который выделяется, - это градиент.

Но как мы собираемся максимизировать вознаграждение на основе 𝜽?
Один из способов сделать это - найти целевую функцию J (𝜽) такую, что

Где V𝜋𝜽 - функция значения для политики 𝜋𝜽, а s0 - это начальное состояние.

Короче говоря, максимизация J (𝜽) означает максимизацию V𝜋𝜽 (s).
Отсюда следует, что

Согласно теореме о политическом градиенте

Где 𝝻 (s) - это распределение под 𝜋 (что означает вероятность пребывания в состоянии s при соблюдении политики 𝜋), q (s, a) - функция значения действия. под 𝜋, а ∇𝜋 (a | s, 𝜽) - это градиент 𝜋 с учетом s и 𝜽.
Наконец, 𝝰 означает пропорциональный.

Таким образом, теорема гласит, что ∇J (𝜽) пропорционально сумме функции q, умноженной на градиент политик для всех действий в состояниях, в которых мы могли бы находиться. . Однако мы не знаем 𝜋 (a | s, 𝜽), как мы можем найти его градиент?

Оказывается, это возможно, как показывает следующая демонстрация:

Напоминание: ∫ dx / x = Log (x), что означает dx / x = (Log (x)) ’= ∇Log (x)

∇Log 𝜋𝜃 (s, a) называется функцией оценки.
Обратите внимание, что градиент политики может быть выражен как ожидание. Если вы спрашиваете себя, почему? Проверьте эту статью в Википедии Ожидаемая стоимость.

Обновление параметров

Поскольку это градиентный метод, обновление параметров (которые мы пытаемся оптимизировать) будет выполнено обычным способом.

Часть 2 Blue Print: определение политик

В этом разделе объясняется несколько стандартных политик градиента, таких как Softmax и Guassian. Мы используем эти политики в алгоритмах RL для изучения параметров 𝜽.
На практике всякий раз, когда в алгоритме RL мы видим ссылку на ∇Log 𝜋𝜃 (s, a), мы вставляем формулу выбранная политика.

Политика Softmax

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

Softmax в основном используется в случае дискретных действий:

Следует, что

Где

Полную демонстрацию вывода можно посмотреть здесь.

Гауссовская политика

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

Вывод становится

Часть 3 синей печати: наивный алгоритм

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

REINFORCE (Градиент политики Монте-Карло)

Этот алгоритм использует Монте-Карло для создания эпизодов в соответствии с политикой 𝜋𝜃, а затем для каждого эпизода он перебирает состояния эпизода и вычисляет общий доход G (t). Он использует G (t) и Log 𝜋𝜃 (s, a) (которые могут быть политикой Softmax или другой) для изучения параметра 𝜃.

Часть 4 Blue Print: улучшенный алгоритм

Мы сказали, что RL на основе политик имеют высокую дисперсию. Однако есть несколько алгоритмов, которые могут помочь уменьшить эту дисперсию, некоторые из них - REINFORCE с базовой линией и Actor Critic.

REINFORCE с базовым алгоритмом

Идея базовой линии состоит в том, чтобы вычесть из G (t) величину b (s), называемую базовой линией, с целью уменьшения значительных изменений в результатах.
При условии, что b (s) не зависит от действия a , можно показать, что уравнение ∇J ( 𝜽) все еще верно.

Итак, теперь вопрос будет в том, как выбрать b (s)?

Один из вариантов базовой линии - вычислить оценку значения состояния û (St, w), где w - вектор параметров, полученный некоторыми методами, такими как Монте-Карло.
Итак, b (s) = û (Ст, ш)

REINFORCE с базовым алгоритмом становится

Актёр Критик Алгоритм

(Подробное объяснение можно найти в статье Введение в Actor Critic)
Алгоритм Actor Critic использует TD для вычисления функции ценности, используемой в качестве критика.
Критик - это функция состояния-значения. Полезно оценивать, как идут дела после каждого действия, критик вычисляет новое состояние, чтобы определить, было ли улучшение или нет. Эта оценка является ошибкой TD:

Затем δ (t) используется для настройки параметров 𝜽 и w.
Короче говоря, 𝜽 и w настраиваются таким образом, чтобы исправить эту ошибку.

Статьи по Теме