Политика и функции ценности 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.