Введение в обучение с подкреплением 4 - Q-обучение и Сарса

искусственный интеллект алгоритм обучение с подкреплением

Это второй день моего участия в августовском испытании обновлений, подробности о мероприятии:Испытание августовского обновления

Эта статья является четвертой в серии вводного обучения с подкреплением, в основном вводит два очень распространенных алгоритма временной разницы в обучении с подкреплением: Q-обучение и Сарса.

Дифференциал синхронизации TD

Прежде всего, что такое обучение с разницей во времени?

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

Обучение временной разнице использует опыт для решения прогнозов. Другими словами, необходимо оценить функцию ценности состояния в соответствии с некоторыми эмпирическими данными, полученными из данной стратегии.Vчисло ПиV_{\pi}обновить.

В этой статье представлены два классических метода обучения с разницей во времени: Q-обучение и Сарса.

Q-Learning

Q-Learning — это неполитический алгоритм, который может учиться как на текущих, так и на прошлых данных.

Как научиться?

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

Например

Предположим, что сейчас есть 3 состояния, каждое состояние имеет 3 действия, предположим, что действиеa1a_1Соответствующая награда +1,a2a_2Соответствующая награда -1,a3a_3Соответствующая награда равна 0. Эта таблица Q может быть представлена ​​матрицей.

Первый заключается в инициализации таблицы Q, и каждое значение Q, то есть значение действия, изначально равно 0.在这里插入图片描述

Первый шаг: решение.

Предположим, что начальное состояниеs1s_1. в соответствии сϵgreedy\epsilon-greedyСтратегия выбирает действие. Поскольку начальное значение Q равно 0, в это время оно выбирается случайным образом, предполагая, что действие выбрано.a1a_1,Входитьs2s_2, награда +1, на данный момент по формуле обновления:

Q(s,a)Q(s,a)+α[r+γmaxa'Q(s',a')Q(s,a)]Q(s,a)\leftarrow Q(s,a)+\alpha[r+\gamma \max_{a'}Q(s',a')-Q(s,a)]

Шаг 2: Обновите значение Q.

Мы предполагаем, что скорость обучения равна 1, коэффициент дисконтированияγ\gammaсоставляет 0,8. ТакQ(s1,a1)Q(s_1,a_1)Значение должно быть обновлено до0+(1+0.8×00)=10+(1+0.8\times0-0)=1, таблица Q также обновляется следующим образом:

在这里插入图片描述

На этом обновление завершено. Можно обнаружить, что Q-обучение представляет собой одношаговое обновление.

Следующие шаги такие же, как и выше, поэтому повторение и обновление — это Q-обучение.

Поток алгоритма

Псевдокод выглядит следующим образом:

在这里插入图片描述

Как решить?

В стратегии выбора действий эпсилон-жадный метод выбирает действие a с наибольшим значением из текущего состояния.

Как обновляется значение Q?

При обновлении таблицы Q вознаграждение r генерируется действием a и следующим состоянием s', но действие в следующем состоянии s' использует максимальное значение для обновления.

Стоит отметить, что из-за максимальной работы Q-обучение не подходит для задач непрерывного действия.

Sarsa

Sarsa — это алгоритм политики. Он может учиться только на текущих данных.

Как научиться?

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

Оба алгоритма используют эпсилон-жадный выбор действий. Однако Sarsa использует epsilon-greedy для выбора действия перед обучением и решает использовать это действие для обучения, поэтому следующее действие обновления является действием, которое необходимо изучить. Таким образом, текущее обучение не обязательно является максимальной наградой. Тем не менее, Q-обучение берет максимум для следующего действия, и каждый шаг обучения имеет самую большую награду перед ним.Однако из-за случайности эпсилон-жадности оно может выскочить из жадности и перейти к случайному выбору, поэтому действие очередного обновления имеет высокую вероятность.Не узнать.

Пример Q-обучения

Мы следуем настройке приведенного выше примера, предполагая, что текущая таблица Q выглядит следующим образом:

在这里插入图片描述

Предположим, что текущее состояниеs1s_1, действие выбраноa1a_1, введите состояние следующего моментаs2s_2, то в следующий моментs2s_2Действие выбирается согласно жадной политике в государствеa3a_3.

Затем при обновлении значения Q, т.к. Сарса должен учитывать следующий момент(s',a')(s',a')да, это(s2,a3)(s_2,a_3), то по формуле:

Q(s,a)Q(s,a)+α[r+γQ(s',a')Q(s,a)]Q(s,a)\leftarrow Q(s,a)+\alpha[r+\gamma Q(s',a')-Q(s,a)]

Q(s1,a1)Q(s_1,a_1)Значение должно быть обновлено до2+(1+0.8×22)=2.62+(1+0.8\times 2-2)=2.6,

И если это Q-склонность, даs2s_2Приведенное ниже значение Q принимает максимальное значение, то есть(s2,a1)(s_2,a_1), обновление на данный момент2+(1+0.8×42)=4.22+(1+0.8\times 4-2)=4.2.

Поток алгоритма

Псевдокод выглядит следующим образом:

在这里插入图片描述

Sarsa подходит для задач непрерывности, поскольку при обновлении учитывает значение непрерывных моментов.

резюме

Один из Q-learning и Sarsa является алгоритмом вне политики, а другой — алгоритмом политики. Разница между двумя алгоритмами заключается в разнице в обновлении значения Q. Другими словами, когда Q-обучение обновляется на следующем шаге, оно учитывает максимальное значение Q в следующий момент, в то время как Sarsa — мгновенное обновление, При обновлении учитывается только значение Q в следующий момент.

Ссылаться на

  1. Что такое Q Leaning — обучение с подкреплением | Mofan Python (mofanpy.com)
  2. Что такое Sarsa — обучение с подкреплением | Mofan Python (mofanpy.com
  3. DQN от входа до отказа 5 углубленная интерпретация алгоритма DQN