Обучение с подкреплением — подробная интерпретация DQN

искусственный интеллект

1. Обучение с подкреплением

1. Что такое проблема обучения с подкреплением?

机器学习分支Обучение с подкреплением — одна из трех ветвей машинного обучения, а глубокое обучение + обучение с подкреплением также считается дорогой к общему ИИ.在这里插入图片描述Проблема обучения с подкреплением может быть описана как получение агентом наблюдаемого состояния и вознаграждения из среды, а также генерация действий для воздействия на среду. Как описано выше. На математическом языке описан марковский процесс принятия решений (MDP).

2. Теоретическая система обучения с подкреплением

(1) MDP

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

i) Markov Property

在这里插入图片描述Короче говоря, текущее состояние содержит информацию обо всех прошлых состояниях, и как только информация о текущем состоянии станет известна, информация о прошлом состоянии может быть отброшена. В дополнение к этой информации марковское свойство также содержит вероятность перехода состоянияP\Rho.在这里插入图片描述

ii) Markov Process

Прежде чем говорить о MDP, это Марковский процесс.在这里插入图片描述Ниже приведен пример марковского процесса.在这里插入图片描述Рисунок слева — реальное воплощение марковского процесса. Кружки представляют различные состояния и вероятность перехода состояния на кривой.

Мы можем случайным образом выбрать из этого описания, чтобыClass1Class 1Для начального состояния правая часть рисунка выше — это эпизоды некоторых выборок (то есть путь от начального состояния до конечного состояния, включая все пройденные промежуточные состояния).

После описания выборочных эпизодов из марковского процесса описывается соответствующая вероятность перехода между состояниями во время выборки. На рисунке ниже показана вероятность перехода состояния.在这里插入图片描述

iii) Markov Decision Process

законченныйMarkov PropertyиMarkov Process, теперь следует сказатьMarkov Decision Process.在这里插入图片描述В дополнение к тому, что было сказано ранее в MDPS,PS,PКроме того, естьA(action),R(reward),γA(action),R(reward),\gammaи другую информацию, все из которых составляют элементы MDP.

Задача обучения с подкреплением решается путем нахождения оптимальной стратегии (соответствующей элементам МДП, то есть выбора оптимальной стратегииstatestate,в различныхstatestateвыбрать лучшееactionaction) сделать полученноеrewardrewardмаксимум.

Мы постепенно опишем все элементы, прежде чем рассматривать полную архитектуру MDP.

(2) R(reward)R(reward)

rewardrewardопределяется следующим образом:在这里插入图片描述почему изRt+1R_{t+1}В начале, поскольку смысл функции возврата вttмомент, шагactionactionВозвращаемое значение для следующего состояния. Мы можем использовать пример, упомянутый выше, чтобыrewardrewardдобавить часть , чтобы понятьGtG_{t}смысл формулы. Как видно из рисунка, значение вознаграждения есть только при переходе из одного состояния в другое, и этот метод настройки как раз и является методом настройки MDP.在这里插入图片描述Почему нужно иметьγ\gamma ? 在这里插入图片描述 γ\gammaЧем ближе к 0, тем больше внимания уделяется текущей доходности, когдаγ=0\gamma=0час,Gt=Rt+1G_{t}=R_{t+1}, означает выполнить только один разactionactionПослеrewardrewardкак финалrewardreward, в это время система обращает внимание только на непосредственные интересы.γ\gammaЧем он ближе к 1, тем длиннее зрение системы, когдаγ=1\gamma=1Время,GtG_{t}Представляет собой сумму всех значений вознаграждения от текущего шага до цели с учетом всех ситуаций вознаграждения.

Теперь у нас естьrewardrewardФормула расчета, просто пройдясь по всем узлам структуры MDP, можно получитьGtG_tМаксимальное значение и соответствующую оптимальную стратегию можно получить, но проблема в том, что для задач малого масштаба в этом расчете нет проблемы, а для задач большого масштаба только при определенномstatestateВ начале известно, что цель полностью пройдена, прежде чем ее можно будет получить.statestateдоступный финалrewardreward, вычислительная эффективность очень низкая.

Поэтому, чтобы ввести еще одно понятие,valuefunctionvalue function.

(3) Value FunctionValue\ Function

在这里插入图片描述По определению,value functionvalue \ functionтолько что вStS_tОжидаемое значение доходности в штате. В практическом смысле этоStS_tсостояние начинается, может получить общееrewardreward, и почувствуйте ценность этого состояния. Поясним на приведенном выше примере.在这里插入图片描述 在这里插入图片描述заC1C1государствоvalue functionvalue\ function, то есть сC1C1это среднее значение возвращаемого значения каждого эпизода от начального состояния до конечного состояния.

отvalue functionvalue\ functionзаменятьGtG_tВ качестве стандарта оценки, чтобы найти оптимальную стратегию, необходимо решить следующую задачу.value functionvalue\ function, пока можно решитьvalue functionvalue\ functionМаксимальное значение , соответствующее эпизоду, является оптимальной стратегией.

(4) BellmanEquationBellman Equation

чтобы решитьvalue functionvalue\ function,мы будемvalue functionvalue\ functionРасширять.在这里插入图片描述Последнее уравнение связано с тем, что ожидание воплощено в фактической структуре MDP, котораяStS_tприбытьSt+1S_{t+1}Различные вероятности умножаются наv(St+1)v(S_{t+1}). 在这里插入图片描述 BellmanEquationBellman EquationУказывает, что решение итеративноvalue functionvalue\ function. чтобы решитьBellmanEquationBellman Equation, представим его в виде матрицы. Из описания изображения над этим абзацем можно вывести представление следующей матрицы.在这里插入图片描述так какBellmanEquationBellman Equationявляется линейным уравнением, поэтому для простых задач MDP его можно решить напрямую, а для сложных задач MDP — итеративно.在这里插入图片描述

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

(5) ActionAction

statestateВactionactionМежду входом и выходом существует связь, дающаяstatestate, С помощью функции выведите вероятность действия или действия, эта функция означаетPolicyPolicy. Все возможно в одной средеactionactionшироко известный какaction spacesaction\ spaces, разделен наdiscrete action spacesdiscrete\ action\ spaces(например, действие игры Atari) иcontinuous action spacecontinuous\ action\ space(например, управление движениями робота в реальном мире).

(6) PolicyPolicy

PolicyPolicyопределяется следующим образом:在这里插入图片描述Одинpolicypolicyдаagentagentпривык решать что братьactionaction, может быть детерминированной политикой(deterministicpolicy)(deterministic policy),использоватьat=μ(st)a_t=\mu(s_t)Представлять. для случайных стратегий(stochastic policy)(stochastic\ policy),использоватьatчисло Пи(st)a_t\backsim\pi(\cdot|s_t)Представлять. В глубоком обучении с подкреплением мы используем параметризованныеpolicypolicy, потому что в Deep RLpolicypolicyВыходные данные основаны на ряде параметров (таких как веса и смещение нейронной сети), и нейронная сеть настраивается путем оптимизации параметров.policypolicyОптимизация для лучшего действия. В Deep RL мы используемat=μθ(st),atчисло Пиθ(st)a_t=\mu_\theta(s_t),\quad a_t\backsim\pi_\theta(\cdot|s_t)для представления детерминированных и стохастических стратегий соответственно.

имеютpolicypolicyПозже будут соответствующиеactionactionвывод, описанный ранееvalue functionvalue\ function, используемый для представления значения состояния.policypolicyВ дальнейшем соответствующий результат действия можно получить по правилам, и мы можем непосредственно оценить ценность действия в определенном состоянии, т.е.ActionValue FunctionAction-Value\ Function.

(7) ActionValue FunctionAction-Value\ Function

在这里插入图片描述пройти черезBellman EquationBellman\ Equation, qчисло Пи(s,a)q_\pi(s,a)Он также может быть представлен итерационной формулой.在这里插入图片描述Давайте рассмотримvalue functionvalue\ functionпримитивные и повторяющиеся выражения.在这里插入图片描述 在这里插入图片描述теперь естьvalue functionvalue\ functionиactionvalue functionaction-value\ function, недостаточно для получения оптимальной стратегии, поэтому необходимо найти оптимальнуюpolicypolicyалгоритм.

(8) Optimal Value FunctionOptimal\ Value\ Function

在这里插入图片描述как лучше пройтиvalue functionvalue\ functionиactionvalue functionaction-value\ functionнайди лучшееpolicypolicyШерстяная ткань?在这里插入图片描述Значение функции ценности и функции действия-ценности при определенной стратегии наибольшее, то эта стратегия является оптимальной стратегией.在这里插入图片描述Следовательно, пока решена функция оптимального значения или функция значения действия, может быть получена оптимальная политика. Чтобы решить функцию оптимальной ценности и оптимальную функцию ценности действия, нам нужно сначала выразить математические выражения этих двух функций, как правило, следующими способами:在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述С выражением функции оптимального значения мы можем применить функцию оптимального значения и функцию оптимального действия для решения оптимальной политики.

(9) Optimal PolicyOptimal\ Policy

在这里插入图片描述Существует много видов итерационных алгоритмов для решения функции оптимального значения.Давайте поговорим об итерации значения и итерации политики, которые являются двумя основными идеями, и Q-обучение также основано на итерации значения.

i) Dynamic Programming

Когда дело доходит до итеративного решения, оно будет применяться к динамическому программированию (динамическое программирование), что такое динамическое программирование?在这里插入图片描述Короче говоря, динамическое программирование — это задача, которая может быть описана как динамическая последовательность или организована во временном порядке, а сложная проблема может быть разложена на небольшие задачи для решения. Упомянутая выше форма уравнения Беллмана преобразует исходные шаги, необходимые для решения всех вознаграждений, в значение следующего вознаграждения и следующего состояния, то есть упрощенную форму следующей формулы, и, наконец, на каждой итерации вы можете найти значение каждого состояния. Это функция прогнозирования динамического программирования, используемая при планировании MDP. При решении оптимальной политики ниже вы также увидите функцию динамического программирования в управлении.在这里插入图片描述 在这里插入图片描述 在这里插入图片描述На приведенном выше рисунке суммированы две функции DP (динамическое программирование, в дальнейшем замененное DP) в планировании: прогнозирование и управление, Получен прогноз DP, используемый вышеприведенной функцией значения, и функция управления DP используется, когда оптимальная политика получается ниже.

ii) Policy Iteration

在这里插入图片描述Цель итерации политики состоит в итеративном вычислении функции ценности, поиске оптимальной функции ценности и получении оптимальной политики. Мы используем другую форму для представления функции ценности.在这里插入图片描述Представление функции стоимости основано на уравнении Беллмана. Итерация политики обычно делится на два этапа: оценка политики и улучшение политики. Целью оценки политики является обновление функции стоимости и постоянная оптимизация функции стоимости в соответствии с текущей политикой. Целью улучшения политики является обновление политики оптимизации и использование жадного алгоритма для нахождения наибольшего значения в функции текущего значения.在这里插入图片描述Конкретный алгоритм работы выглядит следующим образом:在这里插入图片描述

iii) Value Iteration

在这里插入图片描述Итерация значения получается с использованием оптимального уравнения Беллмана.在这里插入图片描述затем превратить его в итеративную форму在这里插入图片描述Конкретный алгоритм следующий:在这里插入图片描述В чем разница между итерацией значения и итерацией политики? Как видно из алгоритма, правилом итерации политики является在这里插入图片描述На этапе оценки политики результатом обновления V(s) является текущийчисло Пи(s)\pi(s)Под рассчитанным значением на этапе улучшения политики используйте рассчитанные V(s) для обновления оптимизации в области действия текущего состояния.число Пи(s)\pi(s), а затем оптимизироватьчисло Пи(s)\pi(s)Затем обновите V (s) на этапе оценки, чтобы это было действительно правильно.число Пи(s)\pi(s)Чтобы оптимизировать, это итерация политики.

Правило итерации Value Iteration заключается в постоянном обновлении V(s) и, наконец, выборе оптимального.число Пи(s)\pi(s), поэтому итерация значения более прямолинейна, чем итерация политики.

3 Система алгоритмов обучения с подкреплением

在这里插入图片描述

До сих пор была представлена ​​базовая архитектура обучения с подкреплением, а далее представлены Q-обучение и DQN.

2. Q-обучение

1 Что такое Q-обучение

Q-Learning выполняется с идеей итерации значения, но итерация значения будет каждый раз обновлять значение Q. Фактически, мы не можем пройти все состояния и действия, поэтому Q-Learning предлагает новые методы обновления значения Q. :Q(St,At)Q(St,At)+α(Rt+1+λmaxaQ(St+1,a)Q(St,At))Q(S_t,A_t)\gets Q(S_t,A_t)+\alpha(R_{t+1}+\lambda\max\limits_aQ(S_{t+1},a)-Q(S_t,A_t))будетRt+1+λmaxaQ(St+1,a)R_{t+1}+\lambda\max\limits_aQ(S_{t+1},a)Определяемое как целевое значение Q, Q-Learning не присваивает целевое значение q напрямую текущему значению q, а приближается к целевому значению q прогрессивным образом, подобно идее градиентного спуска. Весь алгоритм работы выглядит следующим образом:在这里插入图片描述Алгоритму нужна политика для генерации действий. Эта политика не является политикой, обновляемой итерацией значения Q, поэтому алгоритм q-обучения также не соответствует политике. Так каковы правила выбора этой политики?

  1. Случайный выбор (исследование). Случайный выбор полезен для расширения пространства поиска и может исследовать больше состояний и действий, что полезно для более глобального обновления значения q. Например, в области есть много ресторанов, чтобы найти лучшая еда Тот, результат случайного выбора, когда вы думаете, что один ресторан особенно вкусный в первый день, но затем вы ходите в другой каждый день, так что у вас будет более полное представление о ситуации во всех рестораны, то есть можно получить относительное глобально оптимальное значение Q.
  2. Жадный выбор (эксплуатация) Выберите оптимальное действие в соответствии с текущим значением Q, эта политикачисло Пи\piназывается жадной политикой, т.число Пи(St+1)=argmaxaQ(St+1,a)\pi(S_{t+1})=arg\max\limits_aQ(S_{t+1},a).

Исследование полезно для расширения пространства поиска и поиска лучшего значения Q, но его трудно сойтись; исследование может быстро сойтись, но это может быть не оптимальное значение Q, поэтому используется компромисс между ними.ϵgreedy policy\epsilon-greedy\ policy, регулируяϵ\epsilonзначение для настройки масштаба разведки и эксплуатации.

2 Декомпозиция процесса расчета Q-Learning

Предположим, что агент находится в таком доме, обратите внимание, что соединены комнаты 4 и 5. Комната 5 — целевая комната агента.在这里插入图片描述Мы можем использовать следующую диаграмму для представления связности этой комнаты.Обратите внимание, что текущую диаграмму нельзя назвать марковским процессом, потому что вероятность перехода состояния отсутствует. Затем мы присваиваем каждому действию значение вознаграждения Reward.Поскольку комната 5 является целевой комнатой, награда за действие, которое достигает комнаты 5, составляет 100, а другие награды равны 0.在这里插入图片描述В процессе обучения агент случайным образом выбирает позицию, а затем продолжает обучение, чтобы добраться до комнаты 5. Предположим, что агент стартует из комнаты 2 и доходит до комнаты 5. Из комнаты 2 агент может пройти в комнату 3, получить награду 0, затем перейти в комнату 4, получить награду 0, перейти в комнату 5, получить награду 100. Но из комнаты 2 он не может перейти прямо в комнату 1. следующая таблица суммирует приведенное выше изображение Достижимая комната и соответствующая награда. Состояние представляет комнату, в которой она находится, а действие представляет действие в определенной комнате. Например, первая строка и пятый столбец матрицы представляют комнату 0, доберитесь до комнаты 4 и получите вознаграждение в размере 0. -1 означает, что прямого доступа к этой комнате нет.在这里插入图片描述В предыдущем разделе мы сказали, что формула Q-Learning такова:Q(S_t,A_t)\gets Q(S_t,A_t)+\alpha (R_{s+1}+\lambda \max \limits_a Q(S_{t+1},a)-Q(S_t,A_t)) $$$\alpha$ определяет прогрессивную скорость от текущего значения Q до целевого значения q. Если $\alpha=1$, целевое значение q будет присвоено текущему значению q, что также является упрощенной версией алгоритм q-обучения Мы будем использовать эту упрощенную формулу для представления процесса расчета ниже.Q(S_t,A_t) \gets R_{t+1}+\lambda \max \limits_a Q(S_{t+1},a)$$ Для текущей задачи хождения по комнате алгоритм всего Q-Learning выглядит следующим образом:

1.设置lambda参数,reward矩阵R
2.初始化Q矩阵为0
3.对于每一个episode(从开始到目标成为一个episode):
● 随机选择一个初始房间
● 从当前状态的所有可能的action中选择一个
● 计算简化公式
● 直到到达goal,结束

1. Ставимλ=0.8\lambda=0.8, а затем вручную рассчитать каждый процесс Q-Learning. Установите начальную комнату на комнату 1. 2. Инициализировать все матрицы Q до 0

在这里插入图片描述 在这里插入图片描述Глядя на матрицу R, мы видим, что из комнаты 1 есть доступ к комнате 3 (награда = 0) и комнате 5 (награда = 100), мы выбираем пойти в комнату 5. Добравшись до комнаты 5, вы можете увидеть, что есть 3 действия на выбор: пройти в комнату 1, комнату 4 и комнату 5. Теперь, чтобы вычислить значение Q.Q(St,At)Rt+1+λmaxaQ(St+1,a)Q(S_t,A_t) \gets R_{t+1}+\lambda \max \limits_a Q(S_{t+1},a) Q(1,5)=R(1,5)+0.8 * max[Q(5,1),Q(5,4),Q(5,5)]=100+0.8 * 0=100

Теперь номер 5 является текущим состоянием, и поскольку цель достигнута, эпизод завершается, обновляя матрицу Q:在这里插入图片描述В следующем эпизоде ​​мы случайным образом выбираем комнату 3 в качестве нашего начального состояния. использовать случайную стратегию исследования в политике, а также эксплуатации иϵgreedy policy\epsilon -greedy\ policyможешь выбрать). Достигнув комнаты 1, у нас есть два варианта перехода к 3 и 5, теперь вычисляем значение Q:Q(St,At)Rt+1+λmaxaQ(St+1,a)Q(S_t,A_t) \gets R_{t+1}+\lambda \max \limits_a Q(S_{t+1},a)Q(3,1)=R(3,1)+0,8 * макс[Q(1,3),Q(1,5)] = 0 + 0,8 * 100 = 80 Обновите матрицу Q在这里插入图片描述Продолжайте этот процесс, после многих эпизодов матрица Q достигнет значения сходимости在这里插入图片描述Мы нормализуем данные матрицы Q, разделив ее на максимальное значение 500.在这里插入图片描述Теперь мы можем отразить данные матрицы Q на следующем рисунке在这里插入图片描述Независимо от состояния, выбор наибольшего значения Q позволит добраться до комнаты 5 оптимальным образом.

3. ДКН

Управление агентами непосредственно из многомерных входных данных, таких как зрение и речь, было сложной задачей в обучении с подкреплением. До появления DQN большинство успешных случаев применения RL выполнялись путем ручного проектирования функций в сочетании с функцией линейного значения или представлением политики, и производительность алгоритма во многом зависела от качества разработанных функций.

Успех глубокого обучения позволяет извлекать признаки непосредственно из необработанных данных, поэтому DQN пытается выполнять DL+RL.

Применение глубокого обучения в обучении с подкреплением сопряжено с некоторыми из следующих проблем:①Глубокое обучение (обучение с учителем) требует большого количества помеченных обучающих данных.Применительно к обучению с подкреплением в качестве метки можно использовать только вознаграждение, но вознаграждения обычно разреженные, зашумленные и отсроченные.Сигнал (обычно вознаграждение дается после многих эпизоды). ② Связь между данными меток и данными обучения в глубоком обучении осуществляется в режиме реального времени, но вознаграждение за обучение с подкреплением откладывается. ③ В большинстве задач обучения с подкреплением предполагается, что используемые данные независимы и одинаково распределены (iid), но обучение с подкреплением будет сталкиваться с ситуациями, когда последовательности сильно коррелированы, и обучение с подкреплением будет изучать новые действия, основанные на глубоком обучении. это вызов.

DQN использует следующие операции для преодоления вышеуказанных трудностей:① Нейронная сеть (обучение с учителем), используемая DQN, обучается с помощью варианта алгоритма Q-Learning и использует стохастический градиентный спуск (SGD) для обновления весов. ② Используйте механизм воспроизведения для устранения корреляции между данными и случайной выборки в прошлых переходах. ③ Протестируйте алгоритм в Arcade Learning Environment.

Поток алгоритма DQN выглядит следующим образом:在这里插入图片描述Формула 3 выглядит следующим образом:在这里插入图片描述зачем использоватьQ(s,a,θ)Q(s,a,\theta)вместоQ(s,a)Q(s,a)Шерстяная ткань?

В Q-Learning мы используем таблицу для представления Q(s, a), но это вряд ли возможно во многих реальных задачах, потому что существует слишком много состояний. Способ использования таблиц просто не выживает.

Возьмите Atari в качестве примера.在这里插入图片描述

Требование, чтобы компьютер играл в игры Atari, состоит в том, чтобы вводить необработанные данные изображения, которые представляют собой изображение размером 210x160 пикселей, а затем выводить несколько нажатий клавиш. Короче говоря, это то же самое, что и человеческие требования, чистый визуальный ввод, а затем пусть компьютер сам играет в игру. Итак, в этом случае, сколько состояний? Возможно, что состояние меняется каждую секунду. Потому что теоретически, если у каждого пикселя есть 256 вариантов, то есть: 256^210x160^ Это просто астрономически. Поэтому у нас невозможно хранить состояние через таблицы. Нам необходимо сжать размерность состояния, и решение состоит в том, чтобы аппроксимировать приближение функции ценности.1

Приближение функции значения 1Что такое аппроксимация функции цены? Очень просто сказать, что это использование функции для представления Q(s, a). которыйQ(s,a)=f(s,a)Q(s,a)=f(s,a)f может быть функцией любого типа, например, линейной функцией:Q(s,a)=ю1s+ю2a+bQ(s,a)=\omega_1 s + \omega_2 a + bвю1,ю2,b\omega_1,\omega_2,b– параметры функции f.

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

Это основная идея аппроксимации функции цены.

если мы используемю\omegaДля равномерного представления параметров функции f существуютQ(s,a)=f(s,a,w)Q(s,a) = f(s,a,w)Почему это называется аппроксимацией, потому что мы не знаем фактического распределения значения Q, по сути, функция используется для аппроксимации распределения значения Q, поэтому ее также можно назватьQ(s,a)f(s,a,w)Q(s,a)\approx f(s,a,w)

В DQN автор используетQ(s,a,;θ)Q*(s,a)Q(s,a,;\theta) \approx Q^*(s,a)для оценки функции действия-ценности.

Для более подробного ознакомления с DQN обратитесь к оригинальной статье:Playing Atari with Deep Reinforcement Learning