Марковский процесс принятия решений описывает не «умного агента», а повторяющийся выбор под неопределённостью. Уравнение Беллмана делает главный трюк динамического программирования: длинное будущее раскладывает на ближайший шаг и задачу того же типа.

Курьер у развилки

Курьер едет к станции. На перекрёстке он может выбрать короткую улицу, которая иногда перекрыта, или длинный надёжный маршрут. Решение влияет не только на ближайшую минуту: от новой позиции зависят следующие варианты. Простая классификация «какую кнопку нажать» не видит этого продолжения.

Марковский процесс принятия решений, MDP, задаётся пятёркой

(S,A,P,R,γ).(\mathcal S,\mathcal A,P,R,\gamma).

S\mathcal S — состояния, A\mathcal A — действия, P(ss,a)P(s'\mid s,a) — вероятности переходов, R(s,a,s)R(s,a,s') — награда, 0γ<10\le\gamma<1 — коэффициент дисконтирования. Марковское условие утверждает:

Pr(St+1S0,A0,,St,At)=P(St+1St,At).\Pr(S_{t+1}\mid S_0,A_0,\ldots,S_t,A_t) =P(S_{t+1}\mid S_t,A_t).

Текущее состояние должно содержать всё прошлое, существенное для прогноза следующего шага. Если в «состоянии» записана только улица, но не время суток, хотя пробки зависят от часа, условие нарушено. Тогда надо расширить состояние, а не надеяться на красивую формулу.

Рисунок шире экрана — проведите по немуОткрыть целиком ↗
Дерево переходов курьера с действиями, вероятностями, наградами и объединёнными состояниями
Рис. 69.1. Один выбор разворачивает дерево будущего

Квадраты обозначают состояния, цветные стрелки — действия, подписи на ветвях — P(ss,a)P(s'\mid s,a) и немедленные награды. Одинаковые состояния на втором уровне объединены: MDP хранит состояние, а не всю историю пути.

Стратегия и случайность

Стратегия, или policy, задаёт распределение действий:

π(as)=Pr(At=aSt=s).\pi(a\mid s)=\Pr(A_t=a\mid S_t=s).

Детерминированная стратегия выбирает одно действие, стохастическая смешивает их. После фиксации π\pi управляемый процесс превращается в обычную цепь Маркова с переходами

Pπ(ss)=aπ(as)P(ss,a).P^\pi(s'\mid s)=\sum_a\pi(a\mid s)P(s'\mid s,a).

Цель — максимизировать ожидаемый дисконтированный возврат

Gt=Rt+1+γRt+2+γ2Rt+3+.G_t=R_{t+1}+\gamma R_{t+2}+\gamma^2R_{t+3}+\cdots.

При γ=0\gamma=0 агент видит только ближайшую награду. При γ\gamma близком к единице далёкие последствия значимы. Эффективный горизонт имеет порядок 1/(1γ)1/(1-\gamma): при γ=0,9\gamma=0{,}9 около 10 шагов, при 0,990{,}99 — около 100.

Уравнение Беллмана как рекурсия

Разделим возврат:

Gt=Rt+1+γGt+1.G_t=R_{t+1}+\gamma G_{t+1}.

Отсюда для фиксированной стратегии

Vπ(s)=aπ(as)sP(ss,a)[R(s,a,s)+γVπ(s)].V^\pi(s)= \sum_a\pi(a\mid s) \sum_{s'}P(s'\mid s,a) \left[R(s,a,s')+\gamma V^\pi(s')\right].

Оптимальная ценность выбирает лучшее действие:

V(s)=maxasP(ss,a)[R(s,a,s)+γV(s)].V^*(s)=\max_a \sum_{s'}P(s'\mid s,a) \left[R(s,a,s')+\gamma V^*(s')\right].

Правая часть содержит ту же функцию VV^* в следующем состоянии. Это и есть принцип оптимальности: хвост оптимального плана сам должен быть оптимален для достигнутого состояния.

Итерация ценности

Начнём с произвольного V0V_0, часто нулевого, и повторим

Vk+1(s)=maxasP(ss,a)[R(s,a,s)+γVk(s)].V_{k+1}(s)=\max_a\sum_{s'}P(s'\mid s,a) [R(s,a,s')+\gamma V_k(s')].

После сходимости извлечём жадную стратегию:

π(s)argmaxasP(ss,a)[R(s,a,s)+γV(s)].\pi^*(s)\in\arg\max_a\sum_{s'}P(s'\mid s,a) [R(s,a,s')+\gamma V^*(s')].

Одна итерация табличного алгоритма требует порядка S2A|\mathcal S|^2|\mathcal A| операций для плотных переходов и меньше для разреженных. Ошибка после kk шагов убывает геометрически, но при γ1\gamma\approx1 медленно.

Рисунок шире экрана — проведите по немуОткрыть целиком ↗
Последовательность тепловых карт ценности на сетке и стрелки оптимальной стратегии
Рис. 69.2. Как ценность распространяется от цели

Панели соответствуют итерациям k=0,1,2,8k=0,1,2,8. Зелёная клетка даёт награду, красные клетки опасны, стены непроходимы. Волна ненулевой ценности расходится на один шаг за итерацию; итоговые стрелки показывают policy, а не одну траекторию.

Лаборатория городских маршрутов

Переходы, дисконт и итерация ценности

Загружается живая иллюстрация…

Сначала сделайте движение почти детерминированным. Изменяйте γ\gamma и наблюдайте, когда агент выбирает короткую дорогу рядом с опасной клеткой, а когда — длинный безопасный обход. Затем увеличьте вероятность бокового сноса: оптимальный маршрут может отойти от препятствия на дополнительную клетку.

Сравните цвет ценности и стрелки стратегии. Соседние состояния могут иметь близкие VV^*, но разные лучшие действия. И наоборот, одна стрелка не сообщает, насколько выбор уверен: нужен разрыв между лучшим и вторым QQ.

Награда не обязана совпадать с целью

Разработчик выбирает RR, но надеется получить полезное поведение. Если курьеру начислять +1+1 за скорость на каждом участке, агент может ездить кругами по быстрой магистрали. Если роботу-пылесосу платить за собранную пыль, он может рассыпать её снова. Такое exploitation заданной метрики называют reward hacking.

Полезно различать:

  • терминальную цель и промежуточные shaping-награды;
  • цену риска и средний результат;
  • реальные ограничения и штрафы, которыми их приблизили;
  • то, что измеряется симулятором, и то, что важно вне него.

Potential-based shaping вида

R(s,a,s)=R(s,a,s)+γΦ(s)Φ(s)R'(s,a,s')=R(s,a,s')+\gamma\Phi(s')-\Phi(s)

при стандартных условиях сохраняет оптимальные стратегии, но ускоряет обучение. Произвольный бонус такой гарантии не имеет.

Модель известна не всегда

Итерация ценности предполагает известные PP и RR. В реальном управлении переходы приходится оценивать из данных или узнавать опытом. Model-based подход строит модель, model-free сразу оценивает ценность или стратегию. Q-learning заменит точное ожидание по PP наблюдаемым переходом.

Если данные собраны старой стратегией, некоторые действия почти не встречаются. Нельзя надёжно оценить их последствия без дополнительных предположений. Это роднит управление с каузальным выводом: корреляция «так делали хорошие операторы» ещё не говорит, что действие само улучшает результат.

Реальный кейс: управление энергией здания

CityLearn предоставляет симуляторы зданий с нагрузкой, солнечной генерацией, аккумуляторами и погодой. Состояние может включать час, температуру, прогноз нагрузки и заряд батареи. Действие — зарядить, разрядить или не трогать накопитель. Награда штрафует пиковое потребление, стоимость и выбросы.

Перед обучением нужен простой baseline: не использовать батарею; заряжать ночью по фиксированному расписанию; жадно покрывать текущую нагрузку. Сложный агент должен выигрывать у них на одинаковых погодных периодах.

Оценивать только среднюю награду мало. Нужны пиковая мощность, стоимость, число нарушений ограничений батареи и устойчивость к другому году погоды. Временной split обязателен: будущее лето не должно попадать в обучающий период.

Рисунок шире экрана — проведите по немуОткрыть целиком ↗
Суточные графики нагрузки, тарифа, заряда батареи и действий двух стратегий
Рис. 69.3. Состояние батареи связывает часы

На общей временной оси показаны потребление дома, тариф и state of charge. Серая стратегия реагирует только на текущую цену, синяя сохраняет заряд перед вечерним пиком. Заштрихованная область отмечает ограничение мощности; фигура объясняет, почему локально дешёвое действие может ухудшить возврат.

Мини-исследование: неопределённость переходов

Итерация ценности использует точные вероятности, но оценка PP по малому журналу шумна. Возьмите сетку лаборатории и для каждого действия сгенерируйте лишь 20 переходов. Получите empirical P^\widehat P, вычислите policy, затем повторите сбор 200 раз. Для каждой клетки отметьте, как часто выбиралось каждое действие.

Карта стабильности policy информативнее одной стрелки. В состоянии, где два QQ различаются на 0,0010{,}001, небольшая ошибка переходов переворачивает выбор почти без потери возврата. В другом состоянии неправильное действие может быть редким, но дорогим. Поэтому рядом с частотой переключения покажите regret относительно policy на истинном PP.

Добавьте pessimistic оценку: из ожидаемого результата действия вычитайте бонус неопределённости, зависящий от числа наблюдений. Агент станет обходить малоизученные рёбра. Это разумно в safety-задаче и слишком осторожно в исследовательской игре. Сравните оба режима при двух ценах аварии.

Наконец, проверьте simulator mismatch: уменьшите фактическую эффективность батареи на 10%, не переобучая policy. Такой stress test связывает MDP с domain shift. Если стратегия выигрывает только при точной модели, вывод должен звучать как результат симуляции, а не готовое управление зданием.

Разделите uncertainty на aleatoric и epistemic. Случайный боковой снос останется даже при бесконечном журнале; неизвестная его вероятность сужается с данными. В первой ситуации policy управляет риском, во второй может собирать информацию. Нарисуйте для одного состояния posterior вероятности перехода и induced distribution разности Q(a1)Q(a2)Q(a_1)-Q(a_2).

Если интервал разности пересекает ноль, заявлять единственное лучшее действие рано. Можно выбрать консервативное, запросить ещё данные или показать обе policy. Такой вывод полезнее стрелки без масштаба уверенности.

На карте подпишите и абсолютный разрыв ценностей: частое переключение между почти равными действиями не является практической катастрофой.

Что именно оптимизировало уравнение

MDP начинается не с нейросети, а с выбора состояния, действия, переходов, награды и горизонта. Беллмановская рекурсия превращает длинный план в локальное уравнение, а сжатие гарантирует сходимость при γ<1\gamma<1. Но математически оптимальная policy оптимальна лишь для записанной модели. Проверка состояния и награды остаётся частью задачи.

Задачи