В чем разница между итерацией значения и итерацией политики?

В чем разница между итерацией политики и итерацией значения в обучении с подкреплением?

Насколько я понимаю, в итерации значений вы используете уравнение Беллмана для определения оптимальной политики, тогда как в итерации политики вы случайным образом выбираете политику π и находите вознаграждение за эту политику.

Я сомневаюсь, что если вы выбираете случайную политику π в PI, как она гарантированно будет оптимальной политикой, даже если мы выбираем несколько случайных политик.


person Arslán    schedule 22.05.2016    source источник
comment
Было бы уместнее задать этот вопрос на таких веб-сайтах, как ai.stackexchange.com, stats.stackexchange.com или datascience.stackexchange.com.   -  person nbro    schedule 17.12.2017


Ответы (5)


Давайте посмотрим на них рядом. Ключевые части для сравнения выделены. Рисунки взяты из книги Саттона и Барто: Обучение с подкреплением: Введение.

введите описание изображения здесь Ключевые моменты:

  1. Итерация политики включает: оценку политики + улучшение политики, и они повторяются итеративно до тех пор, пока политика не сходится.
  2. Итерация значения включает: поиск функции оптимального значения + одно извлечение политики. И то и другое не повторяется, потому что, если функция ценности оптимальна, политика вне ее также должна быть оптимальной (т. Е. Конвергентной).
  3. Поиск функции оптимального значения также можно рассматривать как комбинацию улучшения политики (из-за max) и усеченной оценки политики (переназначение v_ (s) после всего лишь одного цикла всех состояний независимо от сходимости).
  4. Алгоритмы оценки политики и поиска функции оптимального значения очень похожи, за исключением операции максимального значения (как выделено).
  5. Точно так же ключевые шаги к улучшению политики и извлечению политики идентичны, за исключением того, что первый включает проверку стабильности.

По моему опыту, итерация политики выполняется быстрее, чем итерация значения, поскольку политика сходится быстрее, чем функция значения. Я помню, это тоже описано в книге.

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

person zyxue    schedule 27.02.2017
comment
Я согласен с тем, что итерация политики сводится к меньшему количеству итераций, и я также читал в нескольких местах, что это быстрее. Я провел несколько простых экспериментов с миром ящиков и решением лабиринтов обоими методами в Burlap. Я обнаружил, что итерация по значению выполняет больше итераций, но требует меньше времени для достижения сходимости. YMMV. - person Ryan; 25.01.2018
comment
@Ryan Вы видели мир Grid? Итерация с хорошим значением сходится быстрее, чем итерация по политике. Я не совсем уверен в других системах, но я читал в книге Ричарда Саттонса, что итерация по ценности лучше. Почему? - Потому что, выполняя итерацию политики, на этапе оценки политики вы должны оценивать политику до схождения, даже если оценка после некоторого шага не нужна. - person Cbrom; 11.03.2018
comment
@Chrom, ты должен был прочитать противоположное. Вот цитата из книги: Итерация политики часто сводится к удивительно небольшому количеству итераций. Это проиллюстрировано примером на рисунке 4.1. со страницы 65 2017nov5 Версия книги. - person zyxue; 12.03.2018
comment
Да, я играл с несколькими разновидностями Grid world. Я просто пытался указать, что Faster с точки зрения итераций, вероятно, предпочтет PI. Но «Быстрее» с точки зрения секунд может на самом деле отдать предпочтение VI. - person Ryan; 12.03.2018
comment
Чтобы уточнить, итерация политики потребует меньше итераций, но является более сложной в вычислительном отношении, чем итерация значения; какой из них быстрее, зависит от окружающей среды. - person R.F. Nelson; 10.05.2018
comment
@ R.F.Nelson, какой из них быстрее, зависит от окружающей среды. Какая количественная версия этого утверждения? Как это зависит от окружающей среды? - person user76284; 05.10.2018
comment
Я знаю, что это старый пост. Но я настоятельно рекомендую изучить это (medium.com/@m.alzantot/) Ссылка предоставляет код, и это сделало его более понятным для меня. - person tandem; 23.03.2019
comment
@zyxue Вероятно, не стоит задавать совершенно новый вопрос ... почему алгоритм итерации политики использует политику для выбора одного действия для обновления функции значения на шаге 2, а не ожидания по всем возможным действиям (как показано в предыдущей оценке политики определение несколькими страницами ранее). Это просто на основе предположения о детерминированной политике в этом месте книги? - person Doug Brummell; 18.05.2020

В алгоритмах итерации политики вы начинаете со случайной политики, затем находите функцию значения этой политики (этап оценки политики), затем находите новую (улучшенную) политику, основанную на предыдущей функции значения, и так на. В этом процессе каждая политика гарантированно будет строго улучшена по сравнению с предыдущей (если она уже не оптимальна). Для данной политики ее функцию значения можно получить с помощью оператора Беллмана.

В итерации значения вы начинаете с функции случайного значения, а затем находите новую (улучшенную) функцию значения в итеративном процессе, пока не достигнете функции оптимального значения. Обратите внимание, что вы можете легко вывести оптимальную политику из функции оптимального значения. Этот процесс основан на операторе Беллмана оптимальности.

В некотором смысле оба алгоритма используют один и тот же принцип работы, и их можно рассматривать как два случая < em> обобщенная итерация политики. Однако оператор Беллмана оптимальности содержит оператор max, который является нелинейным и, следовательно, имеет другие функции. Кроме того, можно использовать гибридные методы между итерацией чистого значения и итерацией чистой политики.

person Pablo EM    schedule 23.05.2016
comment
Хорошее описание по этому поводу. Что ж, позвольте мне добавить эту вещь в итерацию политики, в которой используется уравнение ожидания Бельмана, а в итерации значений используется уравнение максимума Мелмана. Для итерации значения может быть меньше итераций, но для одной итерации может потребоваться очень много работы. Для итерации политики больше итераций - person Shamane Siriwardhana; 07.11.2017
comment
нет ли оператора max в итерации политики? иначе как обновить политику на основе новой функции значения? - person huangzonghao; 07.04.2018
comment
Нет, алгоритм SARSA - типичный пример итерации политики. Как вы можете видеть в этом псевдокоде (incompleteideas.net/book/ebook/node64.html), обновление функции значения не содержит оператора max. Однако, если вы имеете в виду оператор max для выбора лучших действий из функции значения (т.е. жадные действия), да, в таком процессе есть операция max. - person Pablo EM; 08.04.2018

Основная разница -

В Итерации политики - вы случайным образом выбираете политику и находите соответствующую ей функцию значения, затем находите новую (улучшенную) политику на основе предыдущей функции значения, и так далее это приведет к оптимальной политике.

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

Итерация политики работает по принципу «Оценка политики -> Улучшение политики».

Value Iteration работает по принципу «Функция оптимального значения -> оптимальная политика».

person Himanshu Gupta    schedule 24.04.2019

Основное различие в скорости связано с максимальной операцией на каждой итерации итерации значения (VI).

В VI каждое состояние будет использовать только одно действие (с максимальным значением полезности) для вычисления обновленного значения полезности, но сначала необходимо вычислить значение всех возможных действий, чтобы найти это действие с помощью уравнения Беллмана.

В итерации политики (PI) эта максимальная операция опускается на шаге 1 (оценка политики), просто следуя промежуточной политике для выбора действия.

Если существует N возможных действий, VI должен вычислить уравнение Беллмана N раз для каждого состояния, а затем взять максимум, тогда как PI просто вычисляет его один раз (для действия, указанного в текущей политике).

Однако в PI есть шаг улучшения политики, который по-прежнему использует оператор max и выполняется так же медленно, как шаг в VI, но поскольку PI сходится за меньшее количество итераций, этот шаг будет происходить не так часто, как в VI.

person bcbertyboy    schedule 29.12.2020

Насколько мне известно, вопреки идее @zyxue, VI обычно намного быстрее, чем PI.

Причина очень проста, как вы уже знаете, уравнение Беллмана используется для решения функции ценности для данной политики. Поскольку мы можем решить функцию значения для оптимальной политики напрямую, решение функции значения для текущей политики, очевидно, является пустой тратой времени.

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

person Response777    schedule 06.06.2018