Политика и функции ценности V и Q

Урок вводит два центральных понятия RL: политику и функции ценности V и Q.

Политика (policy) — это стратегия агента: правило, которое по состоянию выбирает действие. Функция ценности оценивает, насколько хорошо находиться в состоянии (или выбрать действие) при данной политике.

Политика: от состояния к действию

Политику обозначают греческой буквой pi. Она бывает детерминированной (в состоянии s всегда действие a) или стохастической (в s действие a с некоторой вероятностью). Цель всего RL — найти оптимальную политику, дающую максимальный возврат.

V(s): насколько хорошо это состояние

Функция ценности состояния V(s) — это ожидаемый возврат, если стартовать из s и дальше следовать политике. Высокое V(s) означает «из этой клетки легко добраться до большой награды». В лабиринте клетки рядом с выходом имеют высокое V, дальние — низкое.

Q(s,a): насколько хорошо действие в состоянии

Функция ценности действия Q(s,a) — ожидаемый возврат, если в состоянии s выбрать действие a, а дальше следовать политике. Q детальнее V: она оценивает не просто состояние, а каждую пару «состояние-действие». Именно Q используют Q-learning и SARSA, потому что, зная Q, легко выбрать лучшее действие: argmax_a Q(s,a).

V(s)Q(s,a)
Что оцениваетсостояниепару состояние-действие
Размер таблицычисло состоянийсостояния × действия
Удобство выбора действиянужна модель средысразу argmax по a

Как работает под капотом

V и Q связаны: ценность состояния — это ценность лучшего (или среднего по политике) действия в нём. Для жадной политики V(s) = max по a от Q(s,a). Поэтому, имея таблицу Q, мы автоматически имеем и V. Покажем это на маленьком примере.

# Таблица Q для одного состояния s с четырьмя действиями
Q_s = {"вверх": 1.2, "вниз": 3.5, "влево": 0.7, "вправо": 2.9}

# Жадная политика выбирает действие с максимальным Q
best_action = max(Q_s, key=Q_s.get)
V_s = Q_s[best_action]   # V(s) = max_a Q(s,a)

print("Q(s, a) по действиям:", Q_s)
print("Лучшее действие (политика):", best_action)
print("Ценность состояния V(s):", V_s)

Вывод:

Q(s, a) по действиям: {'вверх': 1.2, 'вниз': 3.5, 'влево': 0.7, 'вправо': 2.9}
Лучшее действие (политика): вниз
Ценность состояния V(s): 3.5

Частые ошибки

  • Путать награду и ценность. Награда — мгновенный сигнал; ценность — ожидаемая сумма будущих наград. Клетка может давать награду 0, но иметь высокую ценность, потому что ведёт к выходу.
  • Думать, что V достаточно для выбора действия. По V без модели среды нельзя напрямую выбрать действие — нужно знать, куда ведут действия. С Q таких проблем нет.
  • Забывать про зависимость от политики. V и Q определены относительно конкретной политики. Меняется политика — меняются и значения.

Итоги

  • Политика pi — стратегия выбора действия по состоянию; цель RL — найти оптимальную.
  • V(s) оценивает состояние, Q(s,a) — пару состояние-действие.
  • Q удобнее для выбора действия: лучшее действие — это argmax Q по a.
Проверьте себя
1. Что такое политика (policy) в RL?
AТаблица наград
BПравило, которое по состоянию выбирает действие
CСписок всех состояний
DСкорость обучения
2. Чем Q(s,a) отличается от V(s)?
AQ оценивает пару состояние-действие, а V — только состояние
BQ всегда меньше V
CV используется только в нейросетях
DМежду ними нет разницы
3. Почему Q-функцию удобнее использовать для выбора действия, чем V?
AQ занимает меньше памяти
BПо Q можно сразу взять argmax по действиям, не зная модели среды
CQ не зависит от политики
DV нельзя вычислить