Вопрос или проблема
Когда объясняют функцию преимущества, обычно утверждают, что использование базовой величины снижает дисперсию. Я не нашел никаких конкретных ссылок, чтобы это обосновать.
Является ли это применением контролируемых вариаций или чем-то подобным?
Может ли кто-нибудь предоставить какую-нибудь ссылку или формальное обоснование для снижения дисперсии?
Я предполагаю, что вы имеете в виду оценки градиента политики. Добавление любого вида функции к вашей оценке политики, которая зависит от состояния окружения, в первую очередь, не создает смещения в вашем оценщике градиента (доказательство здесь).
Основная идея вычитания базовой величины из функции ценности действия (и, таким образом, формирования функции преимущества) заключается в том, что несмещенный оценщик градиента вашей политики остается несмещенным, если из этого оценщика вычесть константу. Затем эту константу можно выбрать таким образом, чтобы уменьшить дисперсию нового оценщика за счет оптимизации. Если у вас есть доступ, вы можете найти очень хорошее объяснение в книге “Statistical Reinforcement Learning: Modern Machine Learning Approaches” в разделе 7.2.2. Также [2] и в разделе 3 в [3].
Как вы упомянули, это можно рассматривать как добавление контролируемой коварциаты [4], которая используется для снижения дисперсии в оценках методом Монте-Карло. Хорошим выбором для этой функции является использовать обычную функцию ценности ($V(s)$), которая снижает дисперсию вашей оценки.
Надеюсь, это поможет!
Если вы, как и я, хотели бы получить более подробную связь между приведенными выше ссылками и точное доказательство, а также ответ на вопрос, почему снижение дисперсии работает так, как оно работает, вот моя попытка пояснить.
Позвольте сначала начать с некоторой интуиции, (я буду следовать обозначениям из OpenAI, https://spinningup.openai.com/en/latest/spinningup/rl_intro3.html). Наша цель заключалась в оценке этой градиентной функции,
$$\nabla_{\theta} J(\pi_\theta) = \mathbf{E}_{\tau \sim \pi_{\theta}} \left[
\sum_{t=0}^T \nabla_\theta \log \pi(a_t|s_t) R(\tau) \right]$$
Так как политика является случайной функцией, каждый раз, когда мы выполняем политику по последовательности траекторий $\tau$, вы потенциально получаете различное значение. Мы хотели бы знать это значение в среднем. Техника Монте-Карло добавления коварциаты для снижения дисперсии фактически сводится к нахождению хорошей оценки этого матожидания с двумя удовлетворяющими условиями,
- Либо вы знаете значение в среднем аналитически, либо легче вычислить его ожидание
- Оно имеет низкую дисперсию, это мы определим позднее.
Интуитивно, хорошей оценкой ценности вознаграждения в любой конкретной траектории было бы ожидание вознаграждения, следуя этой политике по всем траекториям, которые вы ожидаете увидеть, следуя этой политике! Это ничего иное, как функция ценности $V^\pi(s_t)$.
Теоретический ответ, предположим, что вы оцениваете
$$\theta = E_f(h(X)] = \int_\chi h(x) f(x) dx$$
Предположим $\exists$ $h_1$ т.ч. $\mu = E_f[h_1(X)]$ (известно) и $h_1(X)$ сильно коррелировано с $h(X)$.
Мы можем построить оцениватель $\theta_c$,
$$\theta_c = h(X) + c(h_1(X) – \mu)$$
$\theta_c$ является несмещенной оценкой $\theta$, поскольку $E(h_1(X))=\mu$
Выберите $c=-1$ и $\mu=0$ особый случай, для которого $\theta_c$ остается несмещенной оценкой $\theta$.
$$\theta_c = h(X) – h_1(X)$$
Теперь, $$\text{Var}(\theta_c) = \text{Var}(h(X)) + \text{Var}(h_1(X)) – 2 \text{Cov}(h(X),h_1(X))$$
Теперь, глядя на это, вы можете видеть, что в определенных условиях дисперсия $\theta_c$ может быть ниже, чем $\theta$. А именно,
$$\text{Var}(h_1(X)) < 2 \text{Cov}(h(X),h_1(X))$$
Это в основном означает, что удвоенная ковариация между оценкой и функцией должна быть выше, чем дисперсия функции.
По сути, это означает, что ваша оценка должна иметь низкую дисперсию сама по себе и должна быть сильно коррелирована с функцией, которую вы хотите оценить.
Для нас,
$$h(X) \equiv \log \pi(a_t|s_t) R(\tau) $$
$$h_1(X) \equiv \log \pi(a_t|s_t) E_{\tau\sim \pi}[R(\tau) | s_0 =s_t] \equiv \log \pi(a_t|s_t) V^\pi(s_t)$$
Здесь еще более ясно, что мы используем значение $R(\tau)$ в среднем, чтобы снизить дисперсию в любом одном выборе $R(\tau)$. Также обратите внимание, что если ваша политика изначально была хорошей, эта разница была бы очень небольшой.
Ответ или решение
Вопрос о снижении дисперсии функции выгоды в контексте обучения с подкреплением вызывает значительный интерес в области интеллектуальных систем. В данном ответе мы углубимся в теоретическую основу данной техники, рассмотрим её практическое применение, а также предложим конкретные примеры.
### Теория
Начнем с теоретического обоснования использования функции выгоды (Advantage Function) для снижения дисперсии при оценке градиентов в алгоритмах обучения с подкреплением, таких как Policy Gradient. Основная идея заключается в том, что при вычислении градиентов политики можно снизить дисперсию оценки, вычитая некоторую «базу» из функции ценности действия, таким образом, формируя функцию выгоды. Эта техника сохраняет несмещенность оценки градиента, что критично для корректного обучения.
Согласно теории контрольных переменных, которая активно применяется в Монте-Карло методах, добавление функции контроля (статистически связанной с оцениваемым параметром), может эффективно уменьшить дисперсию. Здесь важно учитывать два условия выбора контрольной переменной:
1. Знание её математического ожидания.
2. Высокая корреляция с оцениваемой функцией.
Функция выгоды удовлетворяет этим условиям, так как её математическое ожидание известно и она высоко коррелирует с функцией ценности действия.
### Пример
Рассмотрим пример на базе алгоритма Policy Gradient, где наша цель состоит в оценке градиента функции стоимости. Как правило, мы используем следующее выражение:
\[
\nabla_{\theta} J(\pi_\theta) = \mathbf{E}_{\tau \sim \pi_{\theta}} \left[
\sum_{t=0}^T \nabla_\theta \log \pi(a_t|s_t) R(\tau) \right]
\]
Здесь R(τ) представляет собой совокупный возврат за траекторию τ. Так как функция политики является случайной, каждый запуск может давать разные результаты, и мы стремимся оценить ее значение в среднестатистическом смысле.
Благодаря функции выгоды, например, \( A(s_t, a_t) = Q(s_t, a_t) – V(s_t) \), где Q(s_t, a_t) – это функция действия-ценности, а V(s_t) – функция ценности состояния, мы можем вычесть базовую функцию, которая снижает дисперсию градиента, не изменяя его среднее значение.
### Применение
На практике, добавление функции выгоды, корректируемой базой V(s_t), позволяет значительно усилить стабильность и эффективность алгоритма, сокращая величину колебаний градиента и улучшая качество политики. Этот подход особенно полезен в сложных средах с высокой степенью изменчивости и большими пространствами состояний и действий, таких как игры или робототехника.
Дисперсия является одной из главных проблем в обучении с подкреплением, поскольку она увеличивает требуемое количество итераций для сходимости алгоритма и ухудшает общую эффективность системы. Применение функции выгоды как контрольной переменной сокращает необходимое количество проб и ошибок, позволяя моделям быстрее достигать оптимальных стратегий.
Важно отметить, что выбор функциональных баз и их использование требуют тщательной настройки и понимания внутренних свойств среды и алгоритма обучения. Использование неправильных баз или их некорректное применение может привести к обратному эффекту и даже ухудшить обучаемость модели.
В заключение, стоит подчеркнуть, что снижение дисперсии при помощи функции выгоды — это мощная техника, укрепляющая алгоритмы обучения с подкреплением и позволяющая достигать лучших результатов в менее продолжительные сроки. Для более глубокого понимания этой техники рекомендуется изучить соответствующие научные публикации и специализированные литературы, которые обсуждают статистические методы и алгоритмы машинного обучения.