Это первый день моего участия в августовском испытании обновлений, подробности о мероприятии:Испытание августовского обновления
Эта статья является третьей в серии вводных курсов по обучению с подкреплением, в основном она знакомит с тем, как решить оптимальное уравнение Беллмана с помощью динамического программирования.
Мы знаем оптимальную стратегиюСоответствующее значение является функцией оптимального значения, и его решение делится на два метода: итерация стратегии и итерация значения. В этом разделе подробно описаны оба метода.
Все MDP, обсуждаемые в этом разделе, являются известными MDP. Известный означает, что известны динамические характеристики среды, т.е.Эта функция плотности вероятности определяется.
итерация политики
Итерацию политики можно разделить на два этапа: оценка политики и улучшение политики. Оценка стратегии дает стратегиюРешение функции значения состояния, а улучшение стратегии заключается в поиске лучшей стратегии, так что.
Оценка политики
Получение аналитического решения
Оценка стратегии дает стратегиюРешение уравнения Беллмана. Мы знаем, что уравнение Беллмана имеет следующий вид:
мы кладемВидно как неизвестное, это можно увидетьМежду ними существует линейная зависимость. из-за государствабольше одного, поэтомуМожно записать в векторной форме:
На самом деле задача состоит в том, чтобы решитьСистема линейных уравнений с неизвестными величинами. Мы используем матрицу для представленияСвязь между, очевидно, матрицей должна бытьразмерный. Далее мы еще больше упростим систему уравнений, которую можно разбить на следующие две части:
Соблюдая левую часть выражения, на самом делеможно интегрировать, становится, которое находится в форме ожидания, которое определяется как функция вознаграждения, представляющий данную политикувниз, статусдействоватьожидаемое вознаграждение. Тогда левый элемент становится. мы знаемявляется распределением вероятностей относительно а, и интеграл от а может исключить а, и, наконец, левый член может быть записан как.Являетсяматрица.
Затем обратите внимание на член в правой части формулы,является константой, интегрируя r, становится,сделать, указывая на состояниеМатрица вероятности перехода между. Тогда правый член окончательно может быть записан как.
Наконец, формула упрощается до:
Далее он сокращается как:
Это аналитическое решение. очевидноразмерная матрица. Из-за задействованных матричных операций временная сложность составляет.
Вывод численного решения
Аналитические решения включают матричные операции и требуют большого объема вычислений Мы можем решить численно путем итерации. Мы строим массив. впри включенииФункциональный вектор функций значения состояния.Согласно уравнению Беллмана мы можем записать его итеративное соотношение:
фактическиявляется приближенным решением функции цены, полученным путем итерации, и наша цель состоит в том, чтобы заставить его сходиться к. этоСначала он определяется случайными действиями, т. е. случайным начальным вектором функции.
Улучшение политики
когда мы сможем оценить, мы хотим узнать разницу с текущей стратегиейЧто лучше, надо сравнивать. Это приводит к теореме об улучшении политики.
теорема об улучшении политики
【Определение】дано, если для любого состояния s имеем,но.
Эта теорема превращает первоначальную потребность в двух функциях значения состояния в только одну.Просто хорошо.
Как это доказать?
Давайте сначала рассмотрим функцию «действие-ценность»:
В частности,ина самом деле не имеет значения, потому что в (s, a) среднее вознаграждениебыло получено, иВлияет на состояние следующего моментаДля выбора действия,итолько актуально.
мы кладемЗамена действия,ВыражатьДействие момента определяетсяопределено, действие в следующий момент все еще определяетсяИтакисвязанных, после вознаграждения иПроцесс получения выглядит следующим образом:
Как с помощью этой теоремы найти оптимальную стратегию? Более интуитивный метод — жадный метод.
Для каждого состояния s выберите политику с наибольшей функцией значения действия.,Сейчас
Согласно теореме об улучшении политики, если, затем обновите политику. до определенного моментаПри , алгоритм сошелся, и оптимальное уравнение Беллмана в этот момент выполняется, и стратегия в этот момент является нашей оптимальной стратегией.
Простая блок-схема выглядит следующим образом:
итерация значения
В итерации политики наши шаги в каждой итерации:оценивать, а затем используйте жадный метод для улучшения стратегии. Но при оценке политики, чтобы заставить функцию ценности сходиться кНам нужно несколько раз выполнить итерацию для всех состояний, пока функция значения не сойдется, что вызывает итерацию матрешки в итерации, а расчет очень хлопотный.
Может ли это уменьшить количество итераций? Один из способов сделать это — выполнить только одну итерацию во время оценки, то есть просмотреть все состояния один раз, а затем внести улучшения в политику.
На самом деле это уравнение оптимальности Беллмана. Это устраняет необходимость повторных итераций для решения.
Понять разницу между итерацией ценности и итерацией стратегии из процесса
-
Процесс итерации значения:
-
Процесс итерации политики:
Очевидно, что итерация политики должна сначала найти точную функцию значения состояния, а затем продолжать обновлять политику. Обновление — это обход всего пространства состояний. Итерация значения заключается в остановке оценки политики сразу после обхода, чтобы каждое состояние обновлялось только один раз и вычислялась функция приблизительного значения.
Хотя вычисление итерации значения упрощено, ему все же необходимо один раз пройти через пространство состояний.Этот метод также называетсяСинхронное динамическое программирование (Synchronous DP).
На самом деле существует более упрощенный подход, называемый итерацией политики на месте. принадлежатьАсинхронное динамическое программирование Асинхронный DPметод. То есть нам не нужно держать синхронизированными все обновления состояния.При определенном обновлении каждое состояние в наборе состояний S не обновляется, а только функция значения одного из состояний случайным образом выбирается для обновления, а остальные состояния остаются без изменений. . Таким образом, вычисление сокращается, и сходимость может быть достигнута быстрее.
резюме
В этом разделе описывается, как использовать динамическое программирование для решения оптимальных политик. Динамическое программирование является алгоритмом в модельном случае, поскольку мы предположили, что динамика среды известна. Динамическое программирование делится на итерацию стратегии и итерацию значения. Итерация политики делится на два этапа: один — оценка политики, а другой — улучшение политики. Оценка политики используется для расчета функции стоимости для данной политики и является точным расчетом. Улучшение политики использует теорему улучшения политики для сравнения функций ценности двух политик для обновления политики. Оценка стратегии требует итеративного расчета, а итерация стратегии сама по себе является итеративным процессом, включающим итерацию за итерацией, что делает расчет очень сложным, поэтому существует итерация значения. Видно, что итерация значения — это особая итерация стратегии, основная идея которой состоит в том, чтобы итерировать только один шаг при вычислении функции значения и аппроксимировать функцию значения. Итерация значения также известна как синхронное динамическое программирование. Несмотря на вычислительное упрощение, каждое состояние пространства состояний обновляется один раз в итерации значения, и пространство состояний все же необходимо пройти один раз. По этой причине некоторые люди предложили асинхронную итеративную итерацию стратегии «идея на месте». То есть нам не нужно поддерживать синхронизацию всех обновлений состояния.При определенном обновлении каждое состояние в наборе состояний S не обновляется, а только функция значения одного из состояний случайным образом выбирается для обновления, а остальные состояния остаются без изменений. .
Ссылаться на
[1] Саттон Барто «Обучение с подкреплением (второе издание)».
[2] Динамическое программирование — обучение с подкреплением, глава 4 — Zhihu (zhihu.com)