Эта статья была впервые опубликована на:Уокер ИИ
Оптимизация политик — это большой класс алгоритмов обучения с подкреплением, и его основная идея отличается от алгоритмов, основанных на ценности. Поэтому многие учебники делят RL без моделей на две категории: оптимизация политик и основанная на ценности. Эта серия блогов будет ссылаться на вводное руководство, опубликованное OpenAI.Spinning Up 1, Серия Spinning Up — очень хороший учебник для начала работы с оптимизацией политик, особенно для новичков. Алгоритм Policy Gradient (Policy Gradient, PG для краткости) является основной концепцией оптимизации политики В этой главе мы начнем с простейшего вывода PG и шаг за шагом раскроем тайну алгоритма оптимизации политики.
1. Интуитивное понимание
Если выразить одним предложениемградиент политикиИнтуитивное объяснение , то есть «если действие увеличивает итоговое вознаграждение, то вероятность этого действия увеличить, и наоборот, уменьшить вероятность этого действия». Это предложение выражает два значения:
- Мы рассматриваем влияние действий на доходность, а не состояние или другие факторы.
- Мы корректируем вероятность действия, а не присваиваем счет действию, что отличается от алгоритмов, основанных на ценности.
2. Вывод градиента политики
В этом разделе мы шаг за шагом выведем базовую формулу градиента политики.Этот раздел очень важен.После понимания процесса вывода мы в основном понимаем основную идею градиента политики. Поэтому вы должны терпеливо разбираться во всем содержании этого раздела, а лучше всего уметь выводить его самостоятельно.
- максимизировать функцию вознаграждения
Мы представляем нашу политику с параметризованной нейронной сетью, то наша цель может быть выражена как корректировка, так чтоожидаемое возвращениемаксимум, выраженный формулой:
В формуле (1)Представляет полный путь от начала до конца. Обычно для задач максимизации мы можем использовать алгоритм градиентного восхождения, чтобы найти максимальное значение.
Для того, чтобы шаг за шагом получить оптимальные параметры, нам нужно получить, а затем используйте алгоритм градиентного восхождения.Основная идея так проста.
- градиент политики
Главное - искать конечноефункция возвратаоГрадиент , этоградиент политики(градиент политики), алгоритм, который решает проблемы RL путем оптимизации градиента политики, называетсяАлгоритм градиента политики, наши общие PPO и TRPO относятся к алгоритму градиента политик. Далее наша цель состоит в том, чтобы расширить формулу (2) шаг за шагом.Основная часть формулы (2), который также является ядром этого блога.
В приведенном выше выводе используется метод логарифмического вывода:оПроизводная от. Таким образом, мы можем получить следующую формулу:
Поэтому есть только формулы (5)-(6), а дальше будем расширять формулу (7), в основном доРасширять. Первый взгляд
Добавьте журнал, чтобы превратить умножение в сложение:
Вычислить градиент логарифмической функции и округлить некоторые константы:
Следовательно, объединяя уравнение (7) и уравнение (9), мы получаем окончательное выражение
Формула (10) является основным выражением алгоритма PG. Из этой формулы видно, что требуемый градиент политики на самом деле является ожиданием. Реализация конкретного проекта может использовать идею Монте-Карло для получения ожидания, то есть выборки Возьмите среднее значение, чтобы аппроксимировать ожидание. Собираем серию, где каждая траектория является политикой, принятой агентомИнтерактивная выборка со средой, градиент политики может быть выражен как:
в,Указывает количество отобранных траекторий. Теперь, когда мы завершили процесс вывода подробного градиента политики, мы можем вздохнуть с облегчением, а следующая работа относительно проста, то есть на основе формулы (10) мы ее модифицируем.
Прежде чем делать простые модификации, давайте подытожим формулу (10), ведь эта формула является базовой формулой алгоритма PG:
- По сравнению с нашими обычными алгоритмами обучения с учителем, мы все определяем функцию потерь, а затем функция потерь берет вывод параметров и использует алгоритм градиентного спуска для непрерывной минимизации потерь. Для алгоритма PG наша «функция потерь» на самом деле является логарифмом ожидаемой доходности, а наша цель — максимизировать ожидаемую доходность, поэтому здесь используется алгоритм градиентного восхождения.
- В общих алгоритмах обучения с учителем распределения обучающих и тестовых выборок распределяются одинаково, а функция потерь получается из выборок с фиксированным распределением, которое не зависит от параметров, которые мы хотим оптимизировать. Однако для алгоритма PG имеемна основе существующих стратегийПроцесс выборки, стратегия другая, выборки, полученные путем выборки, разные, что приводит к большой разнице в окончательных расчетных потерях, что делает сеть легкой для переобучения, а о более продвинутом фреймворке Actor-Critic я расскажу позже. Используйте идею конфронтации, чтобы решить эту проблему.
- Для общего контролируемого обучения чем меньше потеря, тем лучше, и потеря также является очень эффективным индикатором для оценки того, завершено ли обучение. Тогда для алгоритма PG «функция потерь» здесь не имеет большого значения, главным образом потому, что ожидаемая доходность здесь действует только на набор данных, сгенерированный текущей стратегией. Следовательно, это не означает, что модель работает лучше, когда потери уменьшаются.
- Мы можем ввести формулурассматривается какВес , когда награда мала, значит,действоватьЭффект плохой, уменьшитев состоянииНаоборот, если вознаграждение больше, вероятность действия будет увеличена, чтобы достичь цели выбора наиболее подходящего действия.
3. Улучшите функцию вознаграждения
Продолжаем соблюдать формулу (10), для формулы в, представляющий собой возврат всей траектории, на самом деле необоснованно. Использование одного и того же вознаграждения для всех действий на траектории эквивалентно присвоению одинакового веса каждому действию на траектории. Очевидно, что действия в последовательности действий хороши или плохи, и все они берут одно и то же вознаграждение, которое не может достичь цели вознаграждения и наказания, Как бы это выразить?выполнить действие в определенном состоянииВозврат?
Более интуитивная идея состоит в том, что текущее действие повлияет на последующее состояние и получит мгновенное вознаграждение (вознаграждение), тогда нам нужно только использоватьСовокупный доход со скидкойДостаточно представить вознаграждение за текущее действие, которое выражается формулой как:
Это называется наградой за вращение, поэтому уравнение (10) можно выразить следующим образом:
Конечно, распределение веса с использованием вознаграждения на ходу все еще довольно элементарно.Мы можем использовать более продвинутый метод распределения веса, чтобы еще больше уменьшить дисперсию распределения вознаграждения.Из-за нехватки места мы поговорим о нем позже.
4. Резюме
В этой главе мы потратили много места, чтобы вывести основную формулу градиента политики (PG) и получили ключевое выражение (10). Понимание этой формулы очень поможет нам понять все семейство алгоритмов PG в будущем. Я надеюсь, что вы можете серьезно понять этот процесс вывода формулы.
PS: Для получения дополнительной технической галантереи, пожалуйста, обратите внимание на [Публичный аккаунт | xingzhe_ai] и обсудите с ходоками!
- OpenAI Spinning Up spinningup.openai.com/↩