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


10

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

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

Initialize π randomlyRepeat{Let V:=Vπ \for the current policy, solve bellman's eqn's and set that to the current VLet π(s):=argmaxa∈A∑s′Psa(s′)V(s′)}

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

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


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

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

Vπ1(s)=R(s)+γ∑s′Psπ1(s)(s′)Vπ1(s′)

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

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

R(s)+γ∑s′Psπ1(s)(s′)Vπ1(s′)≤R(s)+γ∑s′Psπ2(s)(s′)Vπ1(s′)

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

Vπ2(s)=R(s)+γ∑s′Psπ2(s)(s′)Vπ2(s′)

но это не так:

Vπ1(s)=R(s)+γ∑s′Psπ2(s)(s′)Vπ1(s′)

Это кажется проблемой, потому что был выбран для улучшения , а не этого нового . В основном проблема в том, что гарантирует улучшение , выполнив вместо из , когда функция значения . Но на шаге повторения мы меняем на , но я не вижу, как это гарантирует, что функция значения монотонно улучшается при каждом повторении, потому что была рассчитана для улучшения функции значения, когда функции значений остаются вπ2V(1)Vπ2pi2R(s)+γ∑s′Psπ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π2≥Vπ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+1vn≥rdn+γPdnvn⟹rdn+1≥[I−γPdn+1]vnsay this is eqn. 1

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

vn+1≥vn

Πn+1Πn

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

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

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

1&2

vn+1≥vn

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

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

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

Πn+1Πnrdn+1+γPdn+1vn≥rdn+γPdnvn

Π∗Π#

v∗≥v#

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

Π#Π∗Π#v∗v#

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

[I−γPd∗]v∗≥[I−γPd∗]v#

⟹rd∗≥[I−γPd∗]v#

⟹rd∗+γPd∗v#≥v#

⟹rd∗+γPd∗v#≥rd#+γPd#v#

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

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