Путешествие в обучение с подкреплением
Обучение с временной разницей
Оптимизация функций ценности путем начальной загрузки опыта.
Добро пожаловать в следующую захватывающую главу моих исследований по обучению с подкреплением, в которой мы рассмотрим обучение с разницей во времени. Как всегда, я буду ссылаться на ресурсы, которые меня учили и направляли, внизу сообщения.
В двух последних моих сообщениях мы говорили о методах динамического программирования (DP) и Монте-Карло (MC). Обучение с временной разницей (TD) - это своего рода комбинация этих двух идей несколькими способами. Как и MC, TD учится непосредственно на опыте эпизодов, не нуждаясь в модели окружающей среды. Как и DP, обучение TD может происходить из неполных эпизодов с использованием метода, называемого bootstrapping, чтобы оценить оставшуюся отдачу для эпизода. По сути, он делает предположение о функции значения, предпринимает некоторые шаги, а затем делает еще одно предположение, обновляя наше исходное предположение до этого нового.
где Gₜ - доходность, а α - параметр постоянного размера шага. Мы смотрим на член ошибки между нашим оценочным значением и возвращаемым значением и обновляем нашу функцию значения в направлении этой ошибки. Самая простая версия обучения TD - TD (0) или одношаговая TD, которая обновляет функцию значения в сторону предполагаемой отдачи после одного шага. Эта оценка, как и в уравнении Беллмана, состоит из двух частей: немедленного вознаграждения плюс дисконтированная стоимость следующего шага. Теперь мы можем заменить эту предполагаемую доходность на нашу реальную доходность Gₜ, чтобы придумать оценочный, предвзятый алгоритм.
Давайте посмотрим, как методы TD могут оказаться более эффективными перед методами MC на примере. Идея этого примера - сделать прогноз, сколько времени потребуется, чтобы добраться до дома с работы. Вот последовательность состояний, времен и прогнозов.
Как мы можем обновить нашу функцию ценности на основе этой траектории опыта? Следующие ниже визуализации проясняют разницу между методами MC и TD.
Слева мы видим изменения, рекомендованные методами МК. Поскольку мы обновляем каждый прогноз на основе фактического результата, мы должны подождать, пока дойдем до конца и увидеть, что общее время заняло 43 минуты, а затем вернуться, чтобы обновить каждый шаг к этому времени. С обучением TD, как показано справа на приведенных выше диаграммах, на каждом шаге, после выполнения шага, мы можем немедленно обновить предыдущий шаг.
Основным преимуществом обучения TD является то, что он учится, даже не зная окончательного результата. В конце концов, для агента вполне возможно получить неполные последовательности или даже работать в непрерывной среде, которая на самом деле не имеет окончательного результата.
Заменяя TD на MC в нашем контуре управления, мы получаем один из самых известных алгоритмов обучения с подкреплением. Идея называется Сарса. Мы начинаем с наших Q-значений и немного перемещаем наше Q-значение в сторону нашей целевой TD, которая представляет собой вознаграждение плюс наше дисконтированное Q-значение следующего состояния минус Q-значение того, с чего мы начали.
Сарса использует каждый элемент пятерки событий, описывающих переход от одной пары состояние-действие к другой. Начинаете понимать, откуда он получил свое название?
Давайте посмотрим на псевдокод алгоритма Сарса для управления TD по политике:
Чтобы воплотить это в жизнь, мы рассмотрим пример, который может показаться знакомым, Windy Gridworld. Windy Gridworld - это то же самое, что и gridworld, который мы узнали и полюбили в предыдущих постах, но с одной изюминкой: поперечный ветер бежит по середине сетки!
Сила ветра варьируется столбец за столбцом, представленная числами под каждым столбцом. Сила показывает количество ячеек, сдвинутых вверх после выполнения действия. Например, если вы находитесь в ячейке справа от цели, перемещение влево приведет вас в пространство прямо над целью.
Важно отметить тот факт, что методы Монте-Карло могут здесь не работать, поскольку может быть найдена политика, которая заставляет агента оставаться в том же пространстве, что фактически делает следующий эпизод бесконечным. Использование Sarsa позволяет нам узнать в рамках эпизода, что такая политика плохая, и мы попробуем что-то еще.
В следующий раз я углублюсь в Q-Learning для управления TD вне политики, где мы будем аппроксимировать оптимальную функцию значения состояния независимо от применяемой политики, аналогично тому, как это делается вне политики. методы политики MC. Большое спасибо за чтение, я с нетерпением жду возможности узнать больше в этой увлекательной области машинного обучения.
Ресурсы
Обучение с подкреплением: введение Саттон и Барто
Курс RL Дэвида Сильвера на YouTube
Обучение с подкреплением на Github от dennybritz