Почему алгоритм итерации политики сходится к оптимальной функции политики и стоимости?


10

Я читал лекционные заметки Эндрю Нга по обучению с подкреплением и пытался понять, почему итерации политики сходятся к функции оптимального значения V и оптимальной политике .π

Напомним, итерация политики:

Initialize π randomlyRepeat{Let V:=Vπ \for the current policy, solve bellman's eqn's and set that to the current VLet π(s):=argmaxaAsPsa(s)V(s)}

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

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


Это мои мысли до сих пор:

Скажем, мы начинаем с некоторой политики , затем после первого шага для этой фиксированной политики:π1

Vπ1(s)=R(s)+γsPsπ1(s)(s)Vπ1(s)

V(1):=Vπ1(s)

Где V ^ {(1)} - функция значения для первой итерации. Затем после второго шага мы выбираем новую политику чтобы увеличить значение . Теперь, с новой политикой , если мы сделаем второй шаг алгоритма, справедливо следующее неравенство:π2Vπ1(s)π2

R(s)+γsPsπ1(s)(s)Vπ1(s)R(s)+γsPsπ2(s)(s)Vπ1(s)

Поскольку мы выбираем на втором шаге, чтобы увеличить функцию значения на предыдущем шаге (т. Е. Улучшить . Пока ясно, что выбор может только увеличить V ^ {(1)}, потому что именно так мы выбираем . Однако моя путаница заключается в повторном шаге, потому что как только мы повторяем и возвращаемся к шагу 1, мы фактически полностью меняем вещи, потому что мы пересчитываем для новой политики . Который дает:π2V(1)π2π2V2π2

Vπ2(s)=R(s)+γsPsπ2(s)(s)Vπ2(s)

но это не так:

Vπ1(s)=R(s)+γsPsπ2(s)(s)Vπ1(s)

Это кажется проблемой, потому что был выбран для улучшения , а не этого нового . В основном проблема в том, что гарантирует улучшение , выполнив вместо из , когда функция значения . Но на шаге повторения мы меняем на , но я не вижу, как это гарантирует, что функция значения монотонно улучшается при каждом повторении, потому что была рассчитана для улучшения функции значения, когда функции значений остаются вπ2V(1)Vπ2pi2R(s)+γsPsπ1(s)(s)Vπ1(s)π2pi1Vπ1Vπ1Vπ2π2Vπ1 V π 1, но шаг 1 меняет на (что плохо, потому что я только улучшил предыдущую функцию значений, которую мы имели).Vπ1Vπ2π2


1
Просто примечание: жадность не означает, что алгоритм не найдет оптимального решения в целом.
Regenschein

1
Итерация значения - это алгоритм динамического программирования, а не жадный алгоритм. Они имеют некоторые общие черты, но есть различия. Взгляните на stackoverflow.com/questions/13713572/… .
francoisr

@francoisr никто никогда не говорил мне этого. Может быть, поэтому это было так (излишне) загадочно для меня. Я хорошо знаю DP. Спасибо хоть! :)
Буратино

Ответы:


4

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

Когда мы решаем максимизировать результаты для генерации , мы не знаем, какими будут новые для любого состояния, но мы знаем, что .V π 2 ( s ) s : V π 2 ( s ) V π 1 ( s )π2Vπ2(s)s:Vπ2(s)Vπ1(s)

Таким образом, возвращаясь через цикл и вычисляя для новой политики, гарантированно будет иметь те же или более высокие значения, чем прежде, и когда дело доходит до обновления политики снова, , π 3π 2π 1Vπ2π3π2π1


4

Сначала давайте посмотрим, почему алгоритм итерации политики работает. У него два шага.

Этап оценки политики:

- общая векторная форма системы линейных уравнений.vn=rdn+γPdnvn

Здесь члены являются непосредственными наградами и соответствующими строками матрицы перехода.rdn,Pdn

Эти условия зависят от политики Πn

Решая приведенную выше систему уравнений, можно найти значения vn

Этап улучшения политики:

Предположим, что мы смогли найти новую политику такую, чтоΠn+1

rdn+1+γPdn+1vnrdn+γPdnvnrdn+1[IγPdn+1]vnsay this is eqn. 1

Πn+1vn+1=rdn+1+γPdn+1vn+1

vn+1vn

Πn+1Πn

Доказательство:

Из уравнения 2 имеем:

[IγPdn+1]vn+1=rdn+1

1&2

vn+1vn

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

Это важно для понимания того, почему интеграция политик не будет зависать на локальном максимуме.

Политика - это не что иное, как пространство действий государства.

Πn+1Πnrdn+1+γPdn+1vnrdn+γPdnvn

ΠΠ#

vv#

Предположим, что алгоритм застрял на локальном оптимуме.

Π#ΠΠ#vv#

или, другими словами,

[IγPd]v[IγPd]v#

rd[IγPd]v#

rd+γPdv#v#

rd+γPdv#rd#+γPd#v#

Следовательно, итерация Политики не останавливается на локальном оптимуме

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.