Обучение по итерации: методы градиента политики в RL
Как вы могли понять это название ??
Вы - высший подвид гомо? 🐒 Нет. (Извините, мистер Эго)
У вас какой-то невидимый голос шепчет вам на ухо ответы? 🙉 Слава богу, нет.
Вы такие же, как и все, только что научились читать. да.
Если мы вспомним 10, 20, 30, 40, 50 лет назад, когда вы учились читать. Вы, наверное, выглядели примерно так:
Вы бы смотрели на книгу ... глядя на слова, картинки, пытаясь произнести слова, ощущая страницы, ощущения чернил на вашей коже, пробуя их на вкус ...
Проходят годы, и сегодня вы, наверное, выглядите примерно так:
Вы можете понимать слова - понимать сюжетные линии, темы, обстановку, персонажей.
Черт возьми, вы стали настолько искусными в чтении, что можете даже понимать слова, только видя их первую и последнюю букву. Видишь ли, я знаю, что ты хотел поболтать с ними
То, что отличает вы от прошлого и вас сейчас, заключается в том, что у вас, вероятно, была какая-то форма учителя. Кому-то, кто увидит ваши ошибки, исправит их и поможет вам со временем стать лучше.
Вы учились по итерации.
Вы сделали ошибки, повторили их и стали лучше.
Подобно тому, как вы учились читать, милые собаки-роботы могут научиться играть в футбол с помощью итераций.
Но эта форма итерации очень отличается: эти роботы используют подполе искусственного интеллекта, называемое обучением с подкреплением, чтобы научиться играть в футбол.
Существует три различных типа алгоритмов обучения с подкреплением:
- Ценностно-ориентированный; изучает функцию ценности
- Градиент политики; изучает параметризованную политику π_θ
- Актер-Критик; учится как
Мы собираемся сосредоточиться на алгоритмах градиента политики.
Но сначала, зачем нам использовать алгоритм градиента политики вместо алгоритма, основанного на ценностях или алгоритма критики акторов?
У алгоритмов градиента политики есть три основных преимущества:
- Лучшая конвергенция.
- Эффективен в объемных и сплошных пространствах.
- Они могут изучать стохастические политики
У методов градиента политики есть лучшие свойства сходимости, чем у методов, основанных на значениях, потому что они всегда будут сходиться к некоторому локальному максимуму. Напротив, методы, основанные на ценностях, могут расходиться. Я немного поясню, что это на самом деле означает.
Методы градиента политики также могут работать в многомерных и непрерывных пространствах, таких как собаки-роботы, которых вы видите выше.
В частично наблюдаемых средах детерминированные политики могут плохо подходить к выбору действий, которые максимизируют ожидаемое вознаграждение. Стохастические политики используют случайность для выбора действий и затем могут получить более высокую ожидаемую награду.
Теперь, когда мы понимаем, почему мы можем использовать метод градиента политики,
Давайте разберемся, как работает метод градиента политики
Цель обучения с подкреплением - выработать политику, которая дает нам наиболее ожидаемую награду.
Для методов градиента политики мы повторяем параметризованную политику π_θ, чтобы она выбирала действия, которые приносят агенту наибольшее ожидаемое вознаграждение.
Выполняем 5 шагов:
- Инициализировать значение θ для политики π_θ
- Вычислить целевую функцию J (θ)
- Возьмем градиент J (θ)
- Обновить θ с помощью градиента
- Позвольте вашему агенту выполнить поставленную задачу, а затем повторите
Если бы мы вернулись к тому, как вы учились в детстве, действия были бы очень похожи.
- У вас есть начальные навыки чтения.
- Ваш учитель говорит вам, насколько вы хорошо или плохо читаете.
- Они находят ваши ошибки
- Они повторяют ваши ошибки и исправляют их
- Вы продолжаете читать и повторяете тот же процесс.
Давайте пройдемся по каждому шагу этого алгоритма ...
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. 😄