Обучение по итерации: методы градиента политики в RL

Как вы могли понять это название ??

Вы - высший подвид гомо? 🐒 Нет. (Извините, мистер Эго)

У вас какой-то невидимый голос шепчет вам на ухо ответы? 🙉 Слава богу, нет.

Вы такие же, как и все, только что научились читать. да.

Если мы вспомним 10, 20, 30, 40, 50 лет назад, когда вы учились читать. Вы, наверное, выглядели примерно так:

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

Проходят годы, и сегодня вы, наверное, выглядите примерно так:

Вы можете понимать слова - понимать сюжетные линии, темы, обстановку, персонажей.

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

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

Вы учились по итерации.

Вы сделали ошибки, повторили их и стали лучше.

Подобно тому, как вы учились читать, милые собаки-роботы могут научиться играть в футбол с помощью итераций.

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

Существует три различных типа алгоритмов обучения с подкреплением:

  1. Ценностно-ориентированный; изучает функцию ценности
  2. Градиент политики; изучает параметризованную политику π_θ
  3. Актер-Критик; учится как

Мы собираемся сосредоточиться на алгоритмах градиента политики.

Но сначала, зачем нам использовать алгоритм градиента политики вместо алгоритма, основанного на ценностях или алгоритма критики акторов?

У алгоритмов градиента политики есть три основных преимущества:

  1. Лучшая конвергенция.
  2. Эффективен в объемных и сплошных пространствах.
  3. Они могут изучать стохастические политики

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

Методы градиента политики также могут работать в многомерных и непрерывных пространствах, таких как собаки-роботы, которых вы видите выше.

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

Теперь, когда мы понимаем, почему мы можем использовать метод градиента политики,

Давайте разберемся, как работает метод градиента политики

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

Для методов градиента политики мы повторяем параметризованную политику π_θ, чтобы она выбирала действия, которые приносят агенту наибольшее ожидаемое вознаграждение.

Выполняем 5 шагов:

  1. Инициализировать значение θ для политики π_θ
  2. Вычислить целевую функцию J (θ)
  3. Возьмем градиент J (θ)
  4. Обновить θ с помощью градиента
  5. Позвольте вашему агенту выполнить поставленную задачу, а затем повторите

Если бы мы вернулись к тому, как вы учились в детстве, действия были бы очень похожи.

  1. У вас есть начальные навыки чтения.
  2. Ваш учитель говорит вам, насколько вы хорошо или плохо читаете.
  3. Они находят ваши ошибки
  4. Они повторяют ваши ошибки и исправляют их
  5. Вы продолжаете читать и повторяете тот же процесс.

Давайте пройдемся по каждому шагу этого алгоритма ...

1. Параметр π_θ

Во-первых, π представляет нашу политику. Политика сообщает нашему агенту, какие действия выбрать, по сути, описывает его поведение.

Для градиентов политики θ изменит то, как действует политика и, следовательно, какие действия выбирает наш учащийся.

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

2. Целевая функция политики J (θ)

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

В зависимости от среды вы можете использовать различные функции цели политики. Давайте посмотрим на пару:

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

Функция начального значения измеряет общее ожидаемое вознаграждение, если мы всегда начинаем в одном состоянии s_1.

Для разных сред существуют разные целевые функции политики.

3. Возьмите градиент J (θ).

Мы не собираемся смотреть, как именно мы берем градиент J (θ). Мы следуем так называемой теореме о политическом градиенте, потому что вычисление производной от J (θ) становится сложным. Если вы действительно хотите попрактиковаться в доказательстве, посмотрите его здесь. 🤓

Все, что вам действительно нужно знать, это то, что мы берем значение J (θ), и, используя это значение, мы собираемся обновить θ.

4. Обновить θ

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

Представьте себе это ...

Вы попали в снежную бурю на горе. Ваша цель - достичь самой высокой точки горы, чтобы спеть Let it Go. 🎵

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

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

Так что продолжаем делать шаг:

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

Вот как работают алгоритмы градиента политики!

Самый простой пример алгоритма градиента политики называется REINFORCE. Недавно я реализовал его в среде OpenAI под названием CartPole.

Цель состоит в том, чтобы уравновесить маятник на тележке, которая получает силу +1 или -1. За каждый временной шаг, на котором маятник остается в равновесии на тележке, он получает награду +1.

Ознакомиться с реализацией можно здесь:

(скоро будет обновлено)

Спасибо за внимание! Если вам интересно узнать больше о моих проектах / над чем я работаю, вы можете…

  • Посетите www.briannagopaul.com
  • Следуйте за мной в Twitter
  • Свяжитесь со мной в LinkedIn
  • или просто напишите мне на адрес briannagopaul14 @ gmail.com. 😄