# Оптимизация стратегий в RL: три метода оценки градиента от Stanford Online

Источник: https://www.youtube.com/watch?v=PgPNfPhG4Wc
Канал: Stanford Online
Опубликовано: 21.11.2024

---

В рамках курса Стэнфордского университета AA228/CS238 «Принятие решений в условиях неопределенности» магистрантка Амелия провела лекцию, посвященную методам оценки градиента стратегии (Policy Gradient Estimation). Это критически важный этап в обучении с подкреплением (Reinforcement Learning), позволяющий оптимизировать поведение агентов в сложных средах — от управления микроклиматом в зданиях до управления беспилотниками.

## 🌡️ Основы параметризации стратегий и полезности
[[JUMP:01:06]]

Стратегия ($\pi$) определяет, какое действие следует предпринять в зависимости от текущего состояния среды [01:06]. В качестве примера Амелия приводит систему контроля температуры в здании: в зависимости от показаний термометра агент должен решить, включить ли обогрев или кондиционер [01:22].

Однако хранить стратегию в виде таблицы соответствий «состояние — действие» невозможно, если пространство состояний непрерывно или слишком велико [02:02]. Решением становится параметризация стратегии с помощью вектора параметров $\theta$. В примере с термостатом параметрами могут выступать пороговые значения температуры $\theta_1$ и $\theta_2$: ниже одного включается нагрев, выше другого — охлаждение [02:55].

Ключевые понятия оптимизации:

*   **Полезность ($U(\theta)$):** Общий ожидаемый доход при использовании стратегии с параметрами $\theta$ [03:22].
*   **Градиент полезности ($\nabla U(\theta)$):** Вектор частных производных, указывающий направление наиболее эффективного изменения параметров для максимизации полезности [03:49].
*   **Симуляции (Rollouts):** Процесс проигрывания сценариев для оценки того, насколько хороша текущая стратегия [07:41].

## 📉 Метод конечных разностей (Finite Differences)
[[JUMP:04:56]]

Первый и самый простой метод оценки градиента — конечные разности, знакомые из базового курса исчисления [04:56]. Суть заключается в том, чтобы немного изменить один из параметров и посмотреть, как изменится полезность.

Процесс выглядит следующим образом:

1.  Берется текущий вектор параметров $\theta$.
2.  К одному из параметров добавляется малое значение $\Delta$ [05:38].
3.  Вычисляется разница между новой и старой полезностью, деленная на $\Delta$.
4.  Операция повторяется для каждого из $n$ параметров, формируя вектор градиента [06:46].

Амелия отмечает, что этот метод требует проведения симуляций (роллаутов) для каждого изменения. По её мнению, точность метода сильно зависит от дисперсии функции полезности: если результаты симуляций сильно варьируются, для получения качественной оценки потребуется огромное количество итераций [07:54]. Также лектор предупреждает о проблемах масштабируемости: если параметры имеют разные порядки величин, применение одного и того же $\Delta$ ко всем может привести к некорректным результатам [08:34].

## 📊 Регрессионный градиент (Regression Gradient)
[[JUMP:09:00]]

Более надежным подходом является метод регрессии, который часто встречается в курсах по машинному обучению [09:00]. Вместо изменения одного параметра за раз, этот метод предполагает одновременное внесение случайных возмущений во все параметры.

Алгоритм работы метода:

*   **Сбор данных:** Создается матрица возмущений $\Delta \theta$. Амелия рекомендует использовать количество возмущений ($m$), вдвое превышающее количество параметров ($n$) [11:30].
*   **Сэмплирование:** Возмущения обычно выбираются случайным образом из нормального распределения и нормализуются. Визуально это можно представить как выбор точек на поверхности гиперсферы вокруг текущего значения $\theta$ [12:14].
*   **Оценка изменений:** Для каждого возмущения проводится симуляция и вычисляется изменение полезности $\Delta U$ [15:38].
*   **Аппроксимация:** Градиент находится путем решения задачи линейной регрессии между изменениями параметров и изменениями полезности.

Для вычисления используется псевдообратная матрица (pseudoinverse), так как матрица возмущений обычно не является квадратной и напрямую необратима [16:54]. По словам Амелии, этот метод более устойчив в высокомерных пространствах, так как он усредняет информацию из множества случайных направлений.

## 🎲 Отношение правдоподобия (Likelihood Ratio)
[[JUMP:19:33]]

Третий и самый математически сложный метод — это использование отношения правдоподобия, который лежит в основе современных алгоритмов Policy Gradient [19:33]. Этот метод позволяет аналитически выразить градиент полезности через математическое ожидание.

Основные компоненты формулы:

*   **Траектория ($\tau$):** Последовательность состояний и действий агента [20:34].
*   **Доход ($R(\tau)$):** Суммарная награда за всю траекторию, часто рассчитываемая с учетом дисконтирования [21:21].
*   **Правдоподобие траектории ($P_\theta(\tau)$):** Вероятность того, что данная траектория произойдет при текущей стратегии [21:47].

Амелия демонстрирует вывод формулы через «трюк с логарифмической производной» (log derivative trick) [27:57]. Главное преимущество этого метода в том, что он позволяет оценивать градиент, используя только опыт (траектории), полученный текущей стратегией, без необходимости знать динамику среды (вероятности переходов между состояниями).

В ходе вывода Амелия доказывает, что при взятии градиента логарифма правдоподобия траектории все члены, не зависящие от параметров $\theta$ (например, начальное распределение состояний и физика среды), обнуляются [38:15]. Это оставляет нам чистую формулу, зависящую только от градиента логарифма самой стратегии.

### Стохастические против детерминированных стратегий
[[JUMP:29:33]]

Амелия подчеркивает различие между двумя типами стратегий:

1.  **Детерминированные:** Всегда выдают одно и то же действие для конкретного состояния (например, «при 30 градусах всегда включать нагрев») [30:06].
2.  **Стохастические:** Выдают распределение вероятностей действий (например, «90% — нагрев, 5% — кондиционер, 5% — ничего») [30:54].

Интересный вывод лекции заключается в том, что стохастические стратегии вычислительно проще для оценки градиента [31:49]. Это связано с тем, что они позволяют плавно менять вероятности действий, что делает функцию полезности дифференцируемой и удобной для оптимизации. В реальной практике, как утверждает Амелия, из-за невозможности перебрать все возможные траектории, инженеры используют сэмплирование — выборку наиболее вероятных или критически важных сценариев для обучения [44:35].