Вопрос или проблема
Мне кажется, что функцию $V$ можно легко выразить через функцию $Q$, и, таким образом, функция $V$ кажется мне лишней. Однако я новичок в обучении с подкреплением, так что, вероятно, я что-то перепутал.
Определения
Обучение Q и V рассматриваются в контексте Марковских процессов принятия решений. МПП — это 5-туфовая структура $(S, A, P, R, \gamma)$, где
- $S$ — это множество состояний (обычно конечно)
- $A$ — это множество действий (обычно конечно)
- $P(s, s’, a) = P(s_{t+1} = s’ | s_t = s, a_t = a)$ — это вероятность перехода из состояния $s$ в состояние $s’$ при действии $a$.
- $R(s, s’, a) \in \mathbb{R}$ — это немедленная награда после перехода из состояния $s$ в состояние $s’$ при действии $a$. (Мне кажется, что обычно важно только $s’$).
- $\gamma \in [0, 1]$ называется коэффициентом дисконта и определяет, сосредоточен ли акцент на немедленных наградах ($\gamma = 0$), суммарной награде ($\gamma = 1$) или некотором компромиссе.
Политика $\pi$, согласно Обучению с подкреплением: введение Саттона и Барто, это функция $\pi: S \rightarrow A$ (это может быть вероятностной).
Согласно презентации Марио Мартина, $V$ функция это
$$V^\pi(s) = E_\pi \{R_t | s_t = s\} = E_\pi \{\sum_{k=0}^\infty \gamma^k r_{t+k+1} | s_t = s\}$$
а функция Q это
$$Q^\pi(s, a) = E_\pi \{R_t | s_t = s, a_t = a\} = E_\pi \{\sum_{k=0}^\infty \gamma^k r_{t+k+1} | s_t = s, a_t=a\}$$
Мои мысли
Функция $V$ указывает, какова ожидаемая общая ценность (не награда!) состояния $s$ в рамках политики $\pi$.
Функция $Q$ указывает, какова ценность состояния $s$ и действия $a$ в рамках политики $\pi$.
Это означает,
$$Q^\pi(s, \pi(s)) = V^\pi(s)$$
Верно? Так почему у нас вообще есть функция ценности? (Я думаю, я что-то перепутал)
Q-значения — это отличный способ сделать действия явными, чтобы вы могли справляться с проблемами, когда функция перехода недоступна (без модели). Однако, когда пространство действий велико, ситуация становится менее удобной, и Q-значения не так удобны. Подумайте о большом количестве действий или даже непрерывных пространствах действий.
С точки зрения выборки, размерность $Q(s, a)$ больше, чем $V(s)$, поэтому может стать сложнее получить достаточное количество $(s, a)$ выборок по сравнению с $(s)$. Если у вас есть доступ к функции перехода, иногда $V$ полезна.
Существуют также другие применения, где обе функции комбинируются. Например, функция преимущества, где $A(s, a) = Q(s, a) – V(s)$. Если вам интересно, вы можете найти недавний пример использования функций преимущества здесь:
Соревновательные архитектуры сетей для глубокого обучения с подкреплением
Зийу Ванга, Том Шоул, Маттео Хессел, Хадо ван Хасселт, Марк Ланктот и Нандо де Фрейтас.
$V^\pi(s)$ — это функция ценности “состояния” МПП (Марковского процесса принятия решений). Это ожидаемая выгода, начиная с состояния $s$, следуя политике $\pi$:
$$V^\pi(s) = E_{\pi} \{G_t \vert s_t = s\} $$
$G_t$ — это общая ДИСКОНТИРОВАННАЯ награда с момента времени $t$, в отличие от $R_t$, которая является немедленной наградой. Здесь вы берете математическое ожидание для ВСЕХ действий согласно политике $\pi$.
$Q^\pi(s, a)$ — это функция ценности “состояние-действие”, также известная как функция качества. Это ожидаемая выгода, начиная с состояния $s$, выполняя действие $a$, затем следуя политике $\pi$. Это фокусируется на конкретном действии в конкретном состоянии.
$$Q^\pi(s, a) = E_\pi \{G_t | s_t = s, a_t = a\}$$
Связь между $Q^\pi$ и $V^\pi$ (ценность нахождения в этом состоянии) такова:
$$V^\pi(s) = \sum_{a ∈ A} \pi (a|s) * Q^\pi(s,a)$$
Вы суммируете каждую ценность состояния-действия, умноженную на вероятность выполнения этого действия (данную политикой $\pi(a|s)$).
Если подумать о примере сеточного мира, вы умножаете вероятность (вверх/вниз/вправо/влево) на одноступенчатую ценность состояния (вверх/вниз/вправо/влево).
Вы правы, функция $V$ дает вам ценность состояния (по сути, это $V^\pi$, ценность, полученная при следовании заданной политике $\pi$, но если $\pi$ опущена, это относится к текущей политике). А $Q$ дает вам ценность действия в состоянии. Я нашел самое ясное объяснение Q-обучения и того, как оно работает, в книге Тома Митчелла “Машинное обучение” (1997), гл. 13, которую можно скачать. $V$ определяется как сумма бесконечного ряда, но это неважно здесь. Важно то, что функция $Q$ определяется как
$$
Q(s,a ) = r(s,a ) + \gamma V^{*}(\delta(s,a))
$$
где $\gamma$ — это дисконт, применяемый к полученной награде в следующем состоянии, а $V^*$ — это лучшая ценность состояния, если бы вы могли следовать оптимальной политике, которую вы не знаете. Тем не менее, у нее есть красивое описание в терминах $Q$
$$
V^{*}(s)= \max_{a’} Q(s,a’)
$$
Вычисление $Q$ осуществляется путем замены $V^*$ в первом уравнении, чтобы получить
$$
Q(s, a) = r(s, a) + \gamma \max_{a’} Q(\delta(s, a), a’)
$$
Это может показаться странной рекурсией на первый взгляд, потому что оно выражает значение Q действия в текущем состоянии в терминах лучшего значения Q успешного состояния, но это имеет смысл, когда вы смотрите, как процесс резервирования использует это: Процесс исследования останавливается, когда он достигает целевого состояния и собирает награду, которая становится значением Q этого последнего перехода. Теперь в последующем обучающем эпизоде, когда процесс исследования достигает того предшествующего состояния, процесс резервирования использует вышеуказанное равенство, чтобы обновить текущее значение Q предшествующего состояния. В следующий раз, когда будет посещено его предшествующее состояние, значение Q этого состояния обновляется, и так далее далее вниз по линии (книга Митчелла описывает более эффективный способ сделать это, сохраняя все вычисления и воспроизводя их позже). При условии, что каждое состояние посещается бесконечно часто, этот процесс в конечном итоге вычисляет оптимальное Q
Иногда вы увидите применяемую скорость обучения $\alpha$, чтобы контролировать, насколько сильно обновляется Q:
$$
Q(s, a) = (1-\alpha)Q(s, a) + \alpha(r(s, a) + \gamma \max_{a’} Q(s’,a’))
$$
$$
= Q(s, a) + \alpha(r(s, a) + \gamma \max_{a’} Q(s’,a’) – Q(s,a))
$$
Обратите внимание, что теперь обновление значения Q действительно зависит от текущего значения Q. Книга Митчелла также объясняет, почему это так и почему вам нужна $\alpha$: это для стохастических МПП. Без $\alpha$ каждый раз, когда пара состояние-действие пыталась, была бы разная награда, поэтому функция Q^ менялась бы повсюду и не сошлась бы. $\alpha$ нужна, чтобы новое знание принималось только частично. Сначала $\alpha$ устанавливается высоко, чтобы текущее (в основном случайные значения) Q имели меньшую значимость. $ \alpha $ уменьшается по мере продвижения тренировки, чтобы новые обновления имели все меньшую и меньшую значимость, и теперь обучение Q сходится
Вот более детальное объяснение взаимосвязи между ценностью состояния и ценностью действия в ответе Аарона. Давайте сначала посмотрим на определения функции ценности и функции ценности действия при политике $\pi$:
\begin{align}
&v_{\pi}(s)=E{\left[G_t|S_t=s\right]} \\
&q_{\pi}(s,a)=E{\left[G_t|S_t=s, A_t=a\right]}
\end{align}
где $G_t=\sum_{k=0}^{\infty}\gamma^kR_{t+k+1}$ — это выгода в момент времени $t$. Связь между этими двумя функциями ценности можно вывести как
\begin{align}
v_{\pi}(s)&=E{\left[G_t|S_t=s\right]} \nonumber \\
&=\sum_{g_t} p(g_t|S_t=s)g_t \nonumber \\
&= \sum_{g_t}\sum_{a}p(g_t, a|S_t=s)g_t \nonumber \\
&= \sum_{a}p(a|S_t=s)\sum_{g_t}p(g_t|S_t=s, A_t=a)g_t \nonumber \\
&= \sum_{a}p(a|S_t=s)E{\left[G_t|S_t=s, A_t=a\right]} \nonumber \\
&= \sum_{a}p(a|S_t=s)q_{\pi}(s,a)
\end{align}
Вышеуказанное уравнение важно. Оно описывает взаимосвязь между двумя фундаментальными функциями ценности в обучении с подкреплением. Оно действительно для любой политики. Более того, если у нас есть детерминированная политика, тогда $v_{\pi}(s)=q_{\pi}(s,\pi(s))$. Надеюсь, это поможет вам.
(чтобы увидеть больше о уравнении оптимальности Беллмана)
Функция ценности — это абстрактная формулировка полезности. А q-функция используется в алгоритме Q-обучения.
Функция ценности
- Функция ценности оценивает ожидаемую кумулятивную награду нахождения в определенном состоянии.
- Это функция состояния, что означает, что она принимает только состояние в качестве входных данных.
- Функция ценности может использоваться для оценки различных политик и поиска оптимальной политики.
Q-функция
- Q-функция оценивает ожидаемую кумулятивную награду за выполнение определенного действия в данном состоянии.
- Это функция состояние-действие, что означает, что она принимает как состояние, так и действие в качестве входных данных.
- Q-функция используется для обучения оптимальной политики, которая максимизирует ожидаемую кумулятивную награду.
Ключевое различие между Q-функцией и функцией ценности
Q-функция и функция ценности обе используются для оценки ожидаемой кумулятивной награды, но они делают это разными способами. Q-функция учитывает как состояние, так и действие в качестве входных данных, в то время как функция ценности принимает только состояние в качестве входных данных. Это означает, что Q-функция может использоваться для обучения оптимальной политики, в то время как функция ценности может использоваться только для оценки различных политик. Q-функция сложнее функции ценности, но она также может быть более точной. Функция ценности проще, но она менее точна.
Кроме того, концепция Q-функции и функции ценности иллюстрируется на примере сеточного мира -> https://www.youtube.com/watch?v=GzHvZ_sSvQE
Ответ или решение
В контексте обучения с подкреплением (reinforcement learning, RL), функции Q и V играют ключевую роль в оценке и оптимизации политик, которые помогут агенту принимать обоснованные решения. Давайте подробно рассмотрим каждую из этих функций и их взаимосвязь.
Определение функций V и Q
Функция V (Value Function) представляет собой ожидаемую ценность (возврат) для данного состояния, следуя определённой политике (\pi). Она обозначается как (V^\pi(s)) и рассчитывается как:
[
V^\pi(s) = E_\pi \left[ G_t | S_t = s \right]
]
где (G_t) – это общая дисконтированная сумма вознаграждений, полученных начиная с времени (t). Функция V показывает, насколько "хорошо" находиться в состоянии (s) при следовании политике (\pi).
Функция Q (Q-Function), или функция качества, оценивает ожидаемое вознаграждение для выполнения конкретного действия (a) в состоянии (s), а затем следования политике (\pi):
[
Q^\pi(s, a) = E_\pi \left[ G_t | S_t = s, A_t = a \right]
]
Таким образом, Q-функция даёт более детальную информацию, позволяя понять, какое действие следует предпринять в определённом состоянии для достижения максимального вознаграждения.
Взаимосвязь между Q и V функциями
Вы правильно отметили, что функция V может быть выражена через функцию Q:
[
V^\pi(s) = \sum_{a \in A} \pi(a|s) Q^\pi(s, a)
]
Это указывает на то, что ожидаемая ценность состояния (s) является взвешенной суммой ожидаемых ценностей всех возможных действий, где веса определяются вероятностями выбора каждого действия согласно политике (\pi).
Зачем нужные обе функции?
Огромное значение обеих функций заключается в их различных применениях и удобстве:
-
Функция V используется для оценки состояния и может быть полезной, когда необходимо сравнить различные политики. При наличии ограничений на вычислительные ресурсы или сложности модели, именно функция V может предложить более простую и удобную оценку.
-
Функция Q предоставляет более детализированную информацию о значимости действий в каждом состоянии. Это особенно полезно в контексте обучения с подкреплением без модели, где необходимо непосредственно обновлять оценки значимости действий.
Применение в обучении с подкреплением
- В алгоритмах Q-обучения (Q-Learning), Q-функция является центральным элементом, который обновляется в процессе обучения, чтобы отразить ценность действий в состояниях. Это упрощает задачу выбора оптимального действия на основе изученного опыта.
- В то же время, функция V, будучи менее ресурсоёмкой и проще в вычислении, может быть использована для предварительной оценки и как вспомогательный инструмент для получения более глубокой информации о системе.
Заключение
Итак, хотя функции V и Q взаимосвязаны и могут описывать одну и ту же задачу с разных углов, они имеют свои уникальные применения в системе обучения с подкреплением. Функция V позволяет получать обобщённые оценки состояния, в то время как функция Q предоставляет более детальную информацию для конкретных действий. Это разнообразие делает обе функции важными инструментами в арсенале методов обучения с подкреплением.