Добро пожаловать в еще одно путешествие по раскрытию секретов обучения с подкреплением. На этот раз мы собираемся сделать шаг назад и вернуться к оптимизации политик, чтобы представить два новых метода: оптимизация политик доверительного региона (TRPO) и проксимальная оптимизация политик (PPO). Помните, что в методах градиентов политики мы пытаемся оптимизировать целевую функцию политики (ожидаемое накопительное вознаграждение), используя градиентный спуск. Градиенты политики отлично подходят для непрерывных и больших пространств, но имеют некоторые проблемы.
-
Высокая дисперсия (к которой мы обращаемся с моделями актер-критик)
-
Проблема с задержкой вознаграждения
-
Неэффективность выборки
-
Скорость обучения сильно влияет на обучение
Последнее особенно беспокоило исследователей довольно долго, потому что очень сложно найти подходящую скорость обучения для всего процесса оптимизации. Небольшая скорость обучения может привести к исчезновению градиентов, в то время как большая скорость может привести к взрывному градиенту. В общем, нам нужен метод, чтобы изменить политику не слишком сильно, но и не слишком мало, а еще лучше, чтобы всегда улучшать нашу политику. Одна фундаментальная статья в этом направлении:
Оптимизация политик доверительного региона (TRPO)
Чтобы гарантировать, что политика не сдвинется слишком далеко, мы добавим ограничение к нашей задаче оптимизации, чтобы убедиться, что обновленная политика находится в доверенной области. Доверительные области определяются как области, в которых локальные приближения функции точны. Хорошо, но что это значит? В регионах доверия мы определяем максимальный размер шага, а затем находим локальный максимум политики в пределах региона. Продолжая тот же процесс итеративно, мы находим глобальный максимум. Мы также можем расширить или сузить область в зависимости от того, насколько хороша новая аппроксимация. Таким образом, мы уверены, что новая политика может быть надежной и не приведет к серьезной деградации политики. Мы можем математически выразить указанное выше ограничение, используя расхождение KL (которое можно представить как расстояние между двумя распределениями вероятностей):
Расхождение KL между новой и старой политикой должно быть ниже дельты (δ), где дельта — это размер региона. Я мог бы заняться математикой, но я думаю, что это только усложнит ситуацию, а не прояснит ее. Итак, по сути, у нас есть только задача условной оптимизации.
Теперь вопрос в том, как мы решаем задачу оптимизации с ограничениями? Используя
Метод сопряженного градиента. Мы, конечно, можем решить задачу аналитически (естественный градиентный спуск), но это вычислительно неэффективно. Если вы хорошо разбираетесь в вычислительной математике, вы, возможно, помните, что метод сопряженных градиентов обеспечивает численное решение системы уравнений. Это намного лучше с вычислительной точки зрения. Таким образом, все, что нам нужно сделать, это линейно аппроксимировать целевую функцию и квадратично ограничение и позволить сопряженному градиенту сделать свою работу.
Чтобы обернуть все это, алгоритм имеет следующие шаги:
-
Запускаем набор траекторий и собираем полисы
-
Оценить преимущества с помощью алгоритма оценки преимуществ
-
Решите задачу оптимизации с ограничениями, используя сопряженный градиент
-
Повторить
Вообще говоря, области доверия считаются довольно стандартным методом решения задач оптимизации. Сложность заключается в том, чтобы применить их в контексте обучения с подкреплением таким образом, чтобы получить преимущество перед простыми градиентами политики.
Хотя TRPO — очень мощный алгоритм, он страдает от серьезной проблемы: этого проклятого ограничения, которое добавляет дополнительные накладные расходы к нашей проблеме оптимизации. Я имею в виду, что это заставляет нас использовать метод сопряженных градиентов и сбивает нас с толку линейными и квадратичными приближениями. Было бы неплохо, если бы можно было каким-то образом включить ограничение непосредственно в нашу цель оптимизации? Как вы могли догадаться, это именно то, что делает проксимальная оптимизация политики.
Проксимальная оптимизация политики (PPO)
Эта простая идея дала нам гораздо более простой и интуитивно понятный алгоритм, чем TRPO. И оказывается, что большую часть времени он превосходит многие из существующих техник. Таким образом, вместо того, чтобы добавлять ограничение отдельно, мы включаем его в целевую функцию в качестве штрафа (мы вычитаем расхождение KL, умноженное на константу C, из функции).
Как только мы это сделаем, нет необходимости решать задачу с ограничениями, и вместо этого мы можем использовать простой стохастический градиентный спуск в приведенной выше функции. И алгоритм преобразуется следующим образом:
-
Запускаем набор траекторий и собираем полисы
-
Оцените преимущества с помощью алгоритма оценки преимуществ
-
Выполните стохастический градиентный спуск по целевой функции для определенного количества эпох
-
Повторить
Небольшая оговорка, что трудно выбрать коэффициент С таким образом, чтобы он хорошо работал на протяжении всего процесса оптимизации. Чтобы решить эту проблему, мы обновляем коэффициент в зависимости от того, насколько велика или мала дивергенция KL. Если KL слишком высокий, мы его увеличиваем, если он слишком низкий, мы его уменьшаем.
Так это оно? Это знаменитая проксимальная оптимизация политики? Вообще-то, нет. Извини за это. Получается, что описанная выше функция не совпадает с оригинальной бумагой. Авторы нашли способ улучшить эту оштрафованную версию до новой, более надежной целевой функции.
Эй, подожди. Что здесь случилось? На самом деле, не так много. Позволь мне объяснить. Одна вещь, которую я пока намеренно упустил, это та часть вероятностей, которая, по-видимому, присутствует и в TRPO. Что ж, это называется выборкой по важности. По сути, у нас есть новая политика, которую мы хотим оценить, и старая, которую мы используем для сбора образцов. С выборка по важности, мы можем оценить новую политику с образцами из старой и повысить эффективность выборки. Отношение показывает, насколько различны две политики, и мы обозначаем его как r (тета).
Используя это отношение, мы можем построить новую целевую функцию для обрезать предполагаемое преимущество, если новая политика далеко от старой. И это именно то, что делает приведенное выше уравнение. Если действие гораздо более вероятно при новой политике, чем при старой, мы не хотим переусердствовать с обновлением действия, поэтому мы отсекаем целевую функцию. Если в новой политике это гораздо менее вероятно, чем в старой, целевое действие сглаживается, чтобы не допустить повторного перебора с обновлением.
Это может быть только я, но я думаю, что не встречал более простого и чистого алгоритма обучения с подкреплением.
Если вы хотите попасть в кроличью нору, проверьте базовый уровень
код от OpenAI, который даст вам кристально чистое изображение всего алгоритма и решит все ваши вопросы. Конечно, будет намного лучше, если вы попытаетесь реализовать это с нуля самостоятельно. Это не самая простая задача, но почему бы и нет.
Также для полного, все в одном обучающем курсе глубокого подкрепления, Udemy’s Продвинутый ИИ: курс глубокого обучения на Python и его преемник Передовой ИИ: глубокое обучение с подкреплением в Python являются лучшими на рынке.
Я думаю, что это все на данный момент. Продолжай учиться…
* Раскрытие информации: Обратите внимание, что некоторые из приведенных выше ссылок могут быть партнерскими ссылками, и без дополнительной оплаты для вас мы будем получать комиссию, если вы решите совершить покупку после перехода по ссылке.