Обучение с подкреплением и выравнивание

Марковский процесс принятия решений

Пять объектов, из которых состоит задача — и что на самом деле делает дисконт

Шаг 102 из 117 · ~26 мин

Чем эта задача отличается от предыдущих

Во всём курсе до сих пор были данные: пары «вход — правильный ответ» или просто выборка из распределения. Здесь их нет. Есть среда, которая отвечает на действия, и последствия, растянутые во времени.

Формально задача — это пятёрка (S,A,P,R,γ)(S, A, P, R, \gamma): состояния, действия, вероятности перехода, награды и дисконт. Марковость означает, что PP зависит только от текущего состояния и действия, а не от истории.

Gt=k=0γkrt+k+1\htmlData{k=ret}{G_t} = \sum_{k=0}^{\infty} \htmlData{k=gamma}{\gamma}^{k} r_{t+k+1}

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

Что делает дисконт

обычно объясняют как «будущее менее важно», и это верно, но нечисло. Точное содержание — три вещи сразу.

Сходимость. При ограниченных наградах rR|r| \le R ряд сходится и GR/(1γ)|G| \le R/(1-\gamma). Без дисконта в бесконечной задаче сумма может расходиться, и «максимизировать» становится бессмысленно.

Горизонт. Величина 11γ\frac{1}{1-\gamma} — характерное число шагов, которое «видит» агент:

γ\gammaгоризонт 11γ\frac{1}{1-\gamma}
0.50.522
0.90.91010
0.990.99100100
0.9990.99910001000

Сжатие. Это самое важное для следующих уроков: γ<1\gamma < 1 делает оператор Беллмана сжимающим, и отсюда существование и единственность решения (урок 030).

Стоит понимать, что дисконт — часть постановки задачи, а не гиперпараметр решателя. Меняя γ\gamma, вы меняете, какую задачу решаете; оптимальная политика при γ=0.5\gamma = 0.5 и при γ=0.99\gamma = 0.99 — разные политики, и обе правильные для своей задачи.

Потяните дисконт и посмотрите на стрелки в дальних от цели клетках.

-0.080.730.861-0.080.730.86-0.08-0.08-0.080.73-0.08-0.08-0.08

цель стена

дисконт γ 0.9
проходов 2
цена шага -0.04
горизонт 1/(1−γ)
10
значение старта
-0.076
изменение за проход
7.7e-1
проходов до сходимости
7
Число в клетке — её значение при текущем числе проходов, стрелка — жадное действие. Двигайте число проходов от нуля и следите, как значение расползается от цели: ровно на одну клетку за проход. Это и есть скорость, с какой информация распространяется в динамическом программировании.

При γ=0.9\gamma = 0.9 и цене шага 0.04-0.04 значения сходятся к такой картине:

0.6210.6210.7340.7340.8600.8601.0001.000
0.5190.519стена0.7340.7340.8600.860
0.4270.4270.5190.5190.6210.6210.7340.734
0.3440.344стена0.5190.5190.6210.621

Проверьте одну клетку руками: значение соседа цели равно 0.04+0.91=0.86-0.04 + 0.9\cdot 1 = 0.86. Следующая за ней — 0.04+0.90.86=0.734-0.04 + 0.9\cdot0.86 = 0.734. Вся таблица получается этим правилом, и в этом весь урок 030.

Про скорость сходимости — поправка

Стандартное утверждение: ошибка убывает как γk\gamma^k. Проверим на этой сетке:

проход kkVkV\|V_k - V^*\|_\inftyотношение
110.7740.774
220.6970.6970.900.90
330.6270.6270.900.90
101000

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

Отсюда вывод, полезный на практике: γk\gamma^k — это верхняя граница для худшего случая. На детерминированных задачах с коротким диаметром сходимость наступает за число проходов порядка диаметра, независимо от γ\gamma. В этой сетке — за семь проходов и при γ=0.5\gamma = 0.5, и при γ=0.99\gamma = 0.99.

Что делает цену шага важной

Слагаемое 0.04-0.04 за каждый шаг выглядит технической деталью, но именно оно задаёт задачу. Уберите его — и агенту станет всё равно, сколько идти: любой путь к цели даст одно и то же значение при γ=1\gamma = 1 и почти одно и то же при γ\gamma близком к единице. Сделайте его большим по модулю — и цель перестанет окупать дорогу.

Это первое проявление общей проблемы: награда задаёт задачу целиком, и ошибка в её формулировке не лечится ни алгоритмом, ни объёмом данных. Урок 130 покажет, во что это выливается, когда награду не пишут руками, а обучают.

Итог

  • MDP — это (S,A,P,R,γ)(S, A, P, R, \gamma); марковость означает, что история сжата в состояние.
  • Максимизируется возврат, а не награда: последствия растянуты во времени.
  • Дисконт делает три вещи сразу — обеспечивает сходимость, задаёт горизонт 11γ\frac{1}{1-\gamma} и делает оператор Беллмана сжимающим.
  • γ\gamma — часть постановки, а не настройка решателя.
  • Оценка γk\gamma^k — верхняя граница; на детерминированных задачах сходимость бывает точной за число проходов порядка диаметра.

Источники

Проверки

0 из 2
  1. Постановка задачи

    Отметьте все верные утверждения о марковском процессе принятия решений.

  2. Возврат, горизонт и граница

    Реализуйте return_facts(rewards, gamma) — верните [discounted_return, horizon, bound, terms_to_one_percent]:

    • discounted_return = kγkrk\sum_k \gamma^k r_k по данному конечному списку наград (первая награда берётся с весом γ0=1\gamma^0 = 1);
    • horizon = 11γ\dfrac{1}{1-\gamma};
    • bound = maxkrk1γ\dfrac{\max_k |r_k|}{1-\gamma} — граница на возврат бесконечной последовательности с такими же по модулю наградами;
    • terms_to_one_percent — наименьшее целое nn, при котором γn0.01\gamma^n \le 0.01, то есть за сколько шагов вес будущего падает до одного процента.

    Проверить себя можно так: при пяти единичных наградах и γ=0.5\gamma = 0.5 возврат равен 1+0.5+0.25+0.125+0.0625=1.93751 + 0.5 + 0.25 + 0.125 + 0.0625 = 1.9375.

    функция return_facts

    Загрузка редактора…

    Ctrl/⌘ + Enter