Обучение с подкреплением реферат

Обновлено: 02.07.2024

В обучении с подкреплением существует агент (agent) взаимодействует с окружающей средой (environment), предпринимая действия (actions). Окружающая среда дает награду (reward) за эти действия, а агент продолжает их предпринимать.

Алгоритмы с частичным обучением пытаются найти стратегию, приписывающую состояниям (states) окружающей среды действия, одно из которых может выбрать агент в этих состояниях.

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

При обучении с подкреплением, в отличии от обучения с учителем, не предоставляются верные пары "входные данные-ответ", а принятие субоптимальнх решений (дающих локальный экстремум) не ограничивается явно. Обучение с подкреплением пытается найти компромисс между исследованием неизученных областей и применением имеющихся знаний (exploration vs exploitation). Баланс изучения-применения при обучении с подкреплением исследуется в задаче о многоруком бандите.

Формально простейшая модель обучения с подкреплением состоит из:

  • множества состояний окружения (states) [math]S[/math] ;
  • множества действий (actions) [math]A[/math] ;
  • множества вещественнозначных скалярных "выигрышей" (rewards).

В произвольный момент времени [math]t[/math] агент характеризуется состоянием [math]s_t \in S[/math] и множеством возможных действий [math]A(s_t)[/math] . Выбирая действие [math]a \in A(s_t)[/math] , он переходит в состояние [math]s_[/math] и получает выигрыш [math]r_t[/math] . Основываясь на таком взаимодействии с окружающей средой, агент, обучающийся с подкреплением, должен выработать стратегию [math]\pi: S \to A[/math] , которая максимизирует величину [math]R=r_0 + r_1+\cdots+r_n[/math] в случае МППР, имеющего терминальное состояние, или величину:

[math]R=\sum_t \gamma^t r_t[/math] ,

для МППР без терминальных состояний (где [math]0 \leq \gamma \leq 1[/math] — дисконтирующий множитель для "предстоящего выигрыша").

Таким образом, обучение с подкреплением особенно хорошо подходит для решения задач, связанных с выбором между долгосрочной и краткосрочной выгодой.


[math]S[/math] — множество состояний среды

Игра агента со средой:

  • инициализация стратегии [math]\pi_1(a | s)[/math] и состояния среды [math]s_1[/math] ;
  • для всех [math]t = 1 \ldots T[/math] :
    • агент выбирает действие [math]a_t ∼ \pi_t(a | s_t)[/math] ;
    • среда генерирует награду [math]r_ ∼ p(r | a_t, s_t)[/math] и новое состояние [math]s_ ∼ p(s | a_t, s_t)[/math] ;
    • агент корректирует стратегию [math]\pi_(a | s)[/math] .

    Это марковский процесс принятия решений (МППР), если [math]P(s_ = s′, r_ = r | s_t, a_t, r_t, s_, a_, r_, .. ,s_1, a_1) = P(s_ = s′,r_ = r | s_t, a_t)[/math] ,

    МППР называется финитным, если [math]|A| \lt \infty[/math] , [math]|S| \lt \infty[/math]

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

    Наивный подход к решению этой задачи подразумевает следующие шаги:

    • опробовать все возможные стратегии;
    • выбрать стратегию с наибольшим ожидаемым выигрышем.

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

    Подход с использованием функции полезности использует множество оценок ожидаемого выигрыша только для одной стратегии [math]\pi[/math] (либо текущей, либо оптимальной). При этом пытаются оценить либо ожидаемый выигрыш, начиная с состояния [math]s[/math] , при дальнейшем следовании стратегии [math]\pi[/math] ,

    [math]V(s) = E[R|s, \pi][/math] ,

    либо ожидаемый выигрыш, при принятии решения [math]a[/math] в состоянии [math]s[/math] и дальнейшем соблюдении [math]\pi[/math] ,

    [math]Q(s, a) = E[R|s, \pi, a][/math] ,

    Если для выбора оптимальной стратегии используется функция полезности [math]Q[/math] , то оптимальные действия всегда можно выбрать как действия, максимизирующие полезность.

    Если же мы пользуемся функцией [math]V[/math] , необходимо либо иметь модель окружения в виде вероятностей [math]P(s'|s, a)[/math] , что позволяет построить функцию полезности вида

    либо применить т.н. метод исполнитель-критик, в котором модель делится на две части: критик, оценивающий полезность состояния [math]V[/math] , и исполнитель, выбирающий подходящее действие в каждом состоянии.

    Имея фиксированную стратегию [math]\pi[/math] , оценить [math]E[R|\cdot][/math] при [math]\gamma = 1[/math] можно просто усреднив непосредственные выигрыши. Наиболее очевидный способ оценки при [math]\gamma \in (0, 1)[/math] — усреднить суммарный выигрыш после каждого состояния. Однако для этого требуется, чтобы МППР достиг терминального состояния (завершился).

    Поэтому построение искомой оценки при [math]\gamma \in (0, 1)[/math] неочевидно. Однако, можно заметить, что [math]R[/math] образуют рекурсивное уравнение Беллмана:

    [math]E[R|s_t]=r_t + \gamma E[R|s_][/math] ,

    Подставляя имеющиеся оценки [math]V[/math] и применяя метод градиентного спуска с квадратичной функцией ошибок, мы приходим к алгоритму обучения с временными воздействиями (temporal difference (TD) learning). В простейшем случае и состояния, и действия дискретны и можно придерживаться табличных оценок для каждого состояния.

    Другие похожие методы: Адаптивный эвристический критик (Adaptive Heuristic Critic, AHC), SARSA и Q-обучение (Q-learning).


    [math]A[/math] — множество возможных действий (ручек автомата),

    [math]p_a(r)[/math] — неизвестное распределение награды [math]r \in R[/math] [math]\forall a \in A[/math] ,

    [math]\pi_t(a)[/math] — стратегия агента в момент [math]t[/math] [math]\forall a \in A[/math] .

    Игра агента со средой:

    • инициализация стратегии [math]\pi_1(a)[/math] ;
    • для всех [math]t = 1 \ldots T[/math] :
      • агент выбирает действие (ручку) [math]a_t ∼ \pi_t(a)[/math] ;
      • среда генерирует награду [math]r_t ∼ p_(r)[/math] ;
      • агент корректирует стратегию [math]\pi_(a)[/math] .

      [math]Q_t(a) = \frac_>_<[a_i = a]>> \rightarrow max [/math] — средняя награда в t играх
      , [math]Q^∗(a) = \lim \limits_ Q_t(a) \rightarrow max [/math] — ценность действия [math]a[/math] .

      У нас есть автомат — [math]N[/math] -рукий бандит, на каждом шаге мы выбираем за какую из [math]N[/math] ручек автомата дернуть, т.е. множество действий [math]A = [/math] .

      Выбор действия [math]a_t[/math] на шаге [math]t[/math] влечет награду [math]R(a_t)[/math] при этом [math]R(a)[/math] [math]\forall a \in A[/math] есть случайная величина, распределение которой неизвестно.

      Состояние среды у нас от шага к шагу не меняется, а значит множество состояний [math]S[/math] тривиально, ни на что не влияет, поэтому его можно проигнорировать.

      Для простоты будем полагать, что каждому действию соответствует некоторое распределение, которое не меняется со временем. Если бы мы знали эти распределения, то очевидная стратегия заключалась бы в том, чтобы подсчитать математическое ожидание для каждого из распределений, выбрать действие с максимальным математическим ожиданием и теперь совершать это действие на каждом шаге.

      Проблема в том, что распределения неизвестны, однако можно оценить математическое ожидание некоторой случайной величины [math]\xi[/math] c неизвестным распределением. Для [math]K[/math] экспериментов [math]\xi_k[/math] , оценка математического ожидания это среднее арифметическое результатов экспериментов:

      Задача является модельной для понимания конфликта между exploitation-exploration.

      • [math]P_a = 0[/math] [math]\forall a \in \ [/math] — сколько раз было выбрано действие [math]a[/math] ,
      • [math]Q_a = 0[/math] [math]\forall a \in \[/math] — текущая оценка математического ожидания награды для действия [math]a[/math] .

      На каждом шаге [math]t[/math]

      • Выбираем действие с максимальной оценкой математического ожидания:
      • Выполняем действие [math]a_t[/math] и получаем награду [math]R(a_t)[/math] ;
      • Обновляем оценку математического ожидания для действия [math]a_t[/math] :

      Пусть у нас есть "двурукий" бандит. Первая ручка всегда выдаёт награду равную 1, вторая всегда выдаёт 2. Действуя согласно жадной стратегии мы дёрнем в начале первую ручку, так как в начале оценки математических ожиданий равны нулю, увеличим её оценку до [math]Q_1 = 1[/math] . В дальнейшем всегда будем выбирать первую ручку, а значит на каждом шаге будем получать на 1 меньше, чем могли бы.

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


      Введем параметр [math]\epsilon \in (0,1)[/math] .

      На каждом шаге [math]t[/math]

      • Получим значение [math]\alpha[/math] — случайной величины равномерно распределенной на отрезке [math](0, 1)[/math] ;
      • Если [math]\alpha \in (0, \epsilon)[/math] , то выберем действие [math]a_t \in A[/math] случайно и равновероятно, иначе как в жадной стратегии выберем действие с максимальной оценкой математического ожидания;
      • Обновляем оценки так же как в жадной стратегии.

      Если [math]\epsilon = 0[/math] , то это обычная жадная стратегия. Однако если [math]\epsilon \gt 0[/math] , то в отличии от жадной стратегии на каждом шаге с вероятностью [math]\epsilon[/math] присходит "исследование" случайных действий.

      Основная идея алгоритма softmax — уменьшение потерь при исследовании за счёт более редкого выбора действий, которые небольшую награду в прошлом. Чтобы этого добиться для каждого действия вычисляется весовой коэффициент на базе которого происходит выбор действия. Чем больше [math]Q_t(a)[/math] , тем больше вероятность выбора [math]a[/math] :

      [math]\tau \in (0, \infty)[/math] — параметр, с помощью которого можно настраивать поведение алгоритма.

      При [math]\tau \rightarrow \infty[/math] стратегия стремится к равномерной, то есть softmax будет меньше зависеть от значения выигрыша и выбирать действия более равномерно (exploration).

      При [math]\tau \rightarrow 0[/math] стратегия стремится к жадной, то есть алгоритм будет больше ориентироваться на известный средний выигрыш действий (exploitation).

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

      Эвристика: параметр [math]\tau[/math] имеет смысл уменьшать со временем.

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

      Алгоритм верхнего доверительного интервала (upper confidence bound или UCB) — семейство алгоритмов, которые пытаются решить эту проблему, используя при выборе данные не только о среднем выигрыше, но и о том, насколько можно доверять значениям выигрыша.

      Также как softmax в UCB при выборе действия используется весовой коэффициент, который представляет собой верхнюю границу доверительного интервала (upper confidence bound) значения выигрыша:

      [math]\pi_(a) = Q_t(a) + b_a[/math] ,

      [math]b_a = \sqrt>> [/math] — бонусное значение, которые показывает, насколько недоисследовано действие по сравнению с остальными.

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

      Несмотря на это отсутствие случайности результаты работы этого алгоритма выглядят довольно шумно по сравнению с остальными. Это происходит из-за того, что данный алгоритм сравнительно часто выбирает недоисследованные действия.

      На основе получаемого от среды вознаграждения агент формирует функцию полезности [math]Q[/math] , что впоследствии дает ему возможность уже не случайно выбирать стратегию поведения, а учитывать опыт предыдущего взаимодействия со средой. Одно из преимуществ [math]Q[/math] -обучения — то, что оно в состоянии сравнить ожидаемую полезность доступных действий, не формируя модели окружающей среды. Применяется для ситуаций, которые можно представить в виде МППР.

      Таким образом, алгоритм это функция качества от состояния и действия:

      [math]Q: S \times A \to \mathbb[/math] ,

      Перед обучением [math]Q[/math] инициализируется случайными значениями. После этого в каждый момент времени [math]t[/math] агент выбирает действие [math]a_t[/math] , получает награду [math]r_t[/math] , переходит в новое состояние [math]s_[/math] , которое может зависеть от предыдущего состояния [math]s_t[/math] и выбранного действия, и обновляет функцию [math]Q[/math] . Обновление функции использует взвешенное среднее между старым и новым значениями:

      где [math]r_[/math] это награда, полученная при переходе из состояния [math]s_[/math] в состояние [math]s_[/math] , и [math]\alpha[/math] это скорость обучения ( [math]0 \lt \alpha \le 1[/math] ).

      Алгоритм заканчивается, когда агент переходит в терминальное состояние [math]s_[/math] .

      Рассказываем, как методом проб и ошибок машины учатся и какие алгоритмы используют, чтобы превзойти человека.

      🤖 Что такое обучение с подкреплением и как оно работает. Объясняем на простых примерах

      Обучение с подкреплением (Reinforcement Learning) – это метод машинного обучения, в котором наша система (агент) обучается методом проб и ошибок. Идея заключается в том, что агент взаимодействует со средой, параллельно обучаясь, и получает вознаграждение за выполнение действий.

      Как оно работает?

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

      Обучение на основе взаимодействия с окружающей средой происходит методом проб и ошибок.

      Представьте, что у нас есть стол для игры в пинг-понг и две ракетки. Пусть наша цель – такая система, где мяч не должен пропускаться ни одной из ракеток. Когда каждая из ракеток отбивает мяч, наша позитивная награда увеличивается на единицу (+1), соответственно, в случае пропуска мяча агент получает отрицательное вознаграждение (-1).

      Необходимые термины в Reinforcement Learning

      • Агент (agent): Наша система, которая выполняет действия в среде, чтобы получить некоторую награду.
      • Среда (environment, e): сценарий/окружение, с которым должен столкнуться агент.
      • Награда (reward, R): немедленный возврат, который предоставляется агенту, после выполнения определенного действия или задачи. Является положительной и отрицательной, как было упомянуто выше.
      • Состояние (state, s): Состояние относится к текущему положению, возвращаемой средой.
      • Политика (policy, π): стратегия, которая применяется агентом для принятия решения о следующем действии на основе текущего состояния.
      • Стоимость (value, V): награда, которая ожидается в долгосрочной перспективе. По сравнению с краткосрочным вознаграждением, принимаем во внимание скидку (discount).
      • Значение Функции (value function): определяет размер переменной, которой является общая сумма награды.
      • Модель среды (Model of the environment): имитатор поведения окружающей среды (просто говоря, демо-версия вашей модели). Это помогает определить, как будет вести себя среда.
      • Значение Q или значение действия (Q): значение Q очень похоже на value (V). Но главное различие между ними в том, что он принимает дополнительный параметр в качестве текущего действия.

      Где использовать Reinforcement Learning?

      Обучение с подкреплением используется в следующих сферах:

      • Робототехника для промышленной автоматизации (например, конвейерная сборка).
      • Планирование бизнес-стратегии.
      • Автоматизация внутри самого машинного обучения.
      • Продвинутые система рекомендации, например, на университетских ресурсах для дополнительного обучения студентов.
      • Управление движением робота, автопилот.

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

      Какие алгоритмы использовать?

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

      • State-Action-Reward-State-Action (SARSA). Этот алгоритм обучения с подкреплением начинается с предоставления агенту такого коэффициента, как политика (on-policy). В данном случае политика – это вероятность, с помощью которой алгоритм оценивает шансы определенных действий, приводящих к вознаграждениям или положительным состояниям.
      • Q-Learning. В этом подходе к Reinforcement Learning используется противоположный подход. Агент не получает политики (on-policy), соответственно, его исследование окружающей среды является более самостоятельным. В Q-learning у нас нет ограничений на выбор действия (action) для алгоритма. Он полагает, что все последующие выборы actions будут оптимальными по умолчанию, поэтому алгоритм производит операцию выбора исходя из максимизации оценки Q.
      • Deep Q-Networks (Глубокие Q-сети). Этот алгоритм использует нейронные сети в дополнение к методам обучения с подкреплением (reinforcement learning). Нейросети осуществляют самостоятельное исследование (research) среды обучения с подкреплением для выбора наиболее оптимального значения. То, как алгоритм будет себя вести и подбирать значения, основано на выборке прошлых положительных действий, полученных нейронной сетью.

      Чем отличается от классического глубокого обучения (Deep Learning)?

      1. Обучение с подкреплением похоже на глубокое обучение, за исключением одного момента: в случае Reinforcement Learning машина обучаются методом проб и ошибок, используя данные из собственного опыта.
      2. Алгоритм обучения с подкреплением – это независимая система с самообучением. Чтобы добиться наилучших результатов, машина учится в режиме постоянной практики, из чего следует концепция обучения методом проб и ошибок.

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

      1. Глубокое обучение предполагает исследование уже существующей “даты”, на основе чего мы позже применяем наши наработки к новому набору данных.
      2. Обучение с подкреплением, в свою очередь, является динамическим (самостоятельным) обучением, которое использует метод проб и ошибок для того, чтоб обоснованно принять решение.

      Проблемы, стоящие перед Reinforcement Learning

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

      К примеру, если вы развернули робота, который применяет обучение с подкреплением для навигации в окружающей среде, то он будет искать новые состояния и предпринимать различные действия во время движения. Однако сложно последовательно предпринимать наилучшие действия из-за частых изменений в окружающей среде. Так, если вы задали роботу environment (окружающую среду) в виде вашего дома, то после перестановки предметов или мебели ваше устройство придется полностью адаптировать к новым условиям.

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

      В заключение

      Обучение с подкреплением – это вычислительный подход к обучению на основе взаимодействий внутри среды.

      Более того, Reinforcement Learning является передовой технологией, которая рано или поздно изменит наш мир. Это то, что делает машинное обучение творческим процессом, так как самостоятельный поиск машиной новых, инновационных способов решения задач уже является творчеством.

      Внедрение Reinforcement Learning уже происходит: например, знаменитая AlphaGo DeepMind (алгоритм для игры в популярную азиатскую игру Go) использует игровую тактику, которую сначала считали ошибочной, но впоследствии машина обыграла одного из сильнейших игроков в Go, Lee Sedol . А продвинутая версия AlphaGo Zero всего за 40 дней самообучения превзошла AlphaGo DeepMind.

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


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

      В последние годы мы видели много достижений в этой увлекательной области исследований. Примерами могут служить DeepMind and the Deep Q learning architecture в 2014 году, в том числе победа чемпиона игры Go с AlphaGo в 2016 году, OpenAI и PPO в 2017 году.

      В этой статье мы сосредоточимся на изучении различных архитектуры, используемой сегодня для решения задач обучения с подкреплением.

      В этой статье вы узнаете:

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

      Обучение с подкреплением (англ. reinforcement learning) — один из способов машинного обучения, в ходе которого испытуемая система (агент) обучается, взаимодействуя с некоторой средой. С точки зрения кибернетики, является одним из видов кибернетического эксперимента. Откликом среды (а не специальной системы управления подкреплением, как это происходит в обучении с учителем) на принятые решения являются сигналы подкрепления, поэтому такое обучение является частным случаем обучения с учителем, но учителем является среда или её модель.

      Идея Reinforcement Learning заключается в том, что агент будет учиться у среды, взаимодействуя с ней, получая вознаграждение за выполнение действий.


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


      Вы чувствуете тепло и это позитивно, вы чувствуете себя хорошо (позитивная награда +1). Вы понимаете, что огонь это позитивный момент.


      Но затем вы пытаетесь прикоснуться к огню. Ой! Он обжигает вашу руку (отрицательная награда -1). Вы только что поняли, что огонь положителен, если вы на достаточном расстоянии, потому что он производит тепло. Но подойдя слишком близко к нему, и вы будете сожжены.

      Так люди учатся через взаимодействие. Reinforcement learning — это всего лишь вычислительный подход к обучению на основе взаимодействий.

      Процесс Reinforcement Learning


      Представим себе агента, который учится играть в Super Mario Bros в качестве рабочего примера. Процесс обучения с подкреплением может быть смоделирован как цикл, который работает следующим образом:

      • Наш агент получает состояние S0 из среды (в нашем случае мы получаем первый кадр нашей игры (состояние) из Super Mario Bros (среда))
      • На основании этого состояния S0 агент выполняет действие A0 (наш агент будет двигаться вправо)
      • Среда переходит в новое состояние S1 (новый кадр)
      • Среда дает некоторое вознаграждение R1 агенту (не мертвый: +1)

      Этот цикл Reinforcement learning выводит последовательность из состояний, действий и наград.

      Цель агента — максимизировать ожидаемое совокупное вознаграждение.

      Центральная идея гипотезы о вознаграждении

      Почему цель агента — максимизировать ожидаемое совокупное вознаграждение?

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

      Вот почему в Reinforcement Learning, чтобы иметь лучшее поведение, мы должны максимизировать ожидаемое совокупное вознаграждение.

      Совокупное вознаграждение на каждом временном шаге t может быть записано как:


      На самом деле мы не можем просто добавлять такие награды. Награды, которые приходят раньше (в начале игры) более вероятны, так как они более предсказуемы чем долгосрочное будущее вознаграждение.


      Допустим, ваш агент — это маленькая мышка, а ваш противник — кошка. Ваша цель — съесть максимальное количество сыра перед тем, как быть съеденным кошкой.

      Как видно на диаграмме, более вероятно, съесть сыр рядом с вами, чем сыр рядом с кошкой (чем ближе мы к кошке, тем она опаснее).

      Как следствие, награда рядом с кошкой, даже если она будет больше (больше одного сыра), будет обесценена. Мы не будем уверены, что сможем это съесть.

      Чтобы вычислить обесценивание вознаграждения мы действуем так:

      Мы называем величину обесценивания гаммой. Она должна быть между 0 и 1.

      • Чем больше гамма, тем меньше обесценивание. Это означает, что обучающийся агент больше заботится о долгосрочном вознаграждении.
      • С другой стороны, чем меньше гамма, тем больше обесценивание. Это означает, что наш агент больше заботится о краткосрочной награде (ближайший сыр).

      Наше дисконтированное (обесцененное) совокупное ожидаемое вознаграждение:


      Проще говоря, каждая награда будет дисконтирована гаммой к показателю временного шага. С увеличением временного шага кошка становится ближе к нам, поэтому будущая награда становится все менее вероятной.

      Эпизодические или непрерывные задания

      Задание является примером проблемы обучения с подкреплением. Может быть два типа заданий: эпизодические и непрерывные.

      Эпизодическое задание

      В этом случае у нас есть начальная точка и конечная (конечное состояние). Это создает эпизод: список состояний, действий, вознаграждений и новых состояний.

      Например, как в Super Mario Bros эпизод начинается при запуске нового Mario и заканчивается когда вы убиты или достигли конца уровня.

      Начало нового эпизода

      Начало нового эпизода

      Непрерывные задания

      Это задачи, которые продолжаются вечно (без состояния окончания). В этом случае агент должен научиться выбирать лучшие действия и одновременно взаимодействовать со средой.

      Например, агент, который занимается автоматической торговлей акциями. Для этой задачи нет начальной точки и состояния окончания. Агент продолжает работать, пока мы не решим его остановить.


      Метод Monte Carlo или Temporal Difference Learning?

      У нас есть два способа обучения:

        • Сбор вознаграждений в конце эпизода, а затем расчет максимальной ожидаемой будущей награды: подход Монте-Карло
        • Оценка вознаграждения на каждом этапе: Temporal Difference Learning

        Метод Монте-Карло

        Затем мы начинаем новую игру с дополнительными знаниями. Агент принимает лучшие решения с каждой итерацией.



        если рассмотреть свойства лабиринта:

            • Мы всегда начинаем с одной и той же отправной точки.
            • Мы прекращаем эпизод, если кошка съедает нас или мы двигаемся 20 шагов.
            • В конце эпизода у нас есть список состояний, действий, наград и новых состояний.
            • Агент суммирует общую сумму вознаграждений Gt (чтобы увидеть, насколько хорошо это получилось).
            • Затем он обновит V (st) на основе приведенной выше формулы.
            • Тогда начинается новая игра с этим новым знанием.

            Выполняя все больше и больше эпизодов, агент научится играть все лучше и лучше.

            Temporal Difference Learning : обучение на каждом временном шаге

            TD Learning, не будет ждать конца эпизода, чтобы обновить максимальную ожидаемую оценку вознаграждения: он обновит свою оценку значения V для не остановочных состояний St, возникающих в этом опыте.

            Этот метод называется TD(0) или одностадийным TD (обновление значения функции после любого отдельного шага).


            Методы TD только ждут следующего шага времени, чтобы обновить оценки значений. В момент времени t + 1 они сразу же формируют цель TD, используя наблюдаемое вознаграждение Rt + 1 и текущую оценку V(St + 1).

            Целевой показатель TD является оценкой: фактически вы обновляете предыдущую оценку V(St) относительно одно шаговой цели.

            Компромисс между разведкой и эксплуатацией (explore-exploit tradeoff)

            Подобно тому, как это происходит в повседневной жизни, такая ситуация часто возникает в информатике, откуда возник термин.

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

                Помните, что цель нашего агента в Reinforcement Learning — максимизировать ожидаемое совокупное вознаграждение. Однако мы можем попасть в общую ловушку.


                В этой игре наша мышь может иметь бесконечное количество маленьких сыров (+1 каждый). Но на вершине лабиринта есть гигантское количество сыра (+1000).

                Однако, если мы сосредоточимся только на вознаграждении, наш агент никогда не достигнет гигантского количества сыра. Вместо этого он будет использовать только ближайший источник наград, даже если этот источник небольшой (эксплуатация).

                Но если наш агент немного исследует, он может найти большую награду.

                Три подхода к Reinforcement Learning

                Теперь, когда мы определили основные элементы обучения с подкреплением, давайте перейдем к трем подходам для решения задач обучения с подкреплением. Они основаны на ценности, линии поведения и модели.

                Value Based подход

                В Reinforcement Learning, Value Based подход состоит в том, чтобы оптимизировать значение функции V (s).

                Функция value — это функция, которая сообщает нам максимальное ожидаемое будущее вознаграждение, которое агент получит в каждом состоянии.

                Значение каждого состояния — это общая сумма вознаграждения на которую агент может рассчитывать в будущем, начиная с этого состояния.


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


                В примере с лабиринтом на каждом шаге мы принимаем наибольшее значение: -7, затем -6, затем -5 (и так далее) для достижения цели.

                Линия поведения (Policy Based)

                В Reinforcement Learning на основе линии поведения мы хотим напрямую оптимизировать функцию поведения π(s) без использования функции значения.

                Линия поведения — это то, что определяет поведение агента в данный момент времени.


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

                У нас есть два типа линии поведения:

                Детерминированный: поведение в данном состоянии всегда будет возвращать одно и то же действие.
                Случайный: возврат вероятности распределения по действиям.



                Как мы видим здесь, линия поведения напрямую указывает наилучшее действие для каждого шага.

                Model Based

                В данном случае мы моделируем среду, т. е. создаем модель поведения окружающей среды.

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

                Введение в Deep Reinforcement Learning

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

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

                Как и люди, функция Q является рекурсивной. Подобно тому, как вызов метода программного обеспечения human () содержит в себе другой метод human (), плодом которого мы все являемся, вызов функции Q для данной пары состояние-действие требует от нас вызова вложенной функции Q, чтобы предсказать значение следующее состояние, которое, в свою очередь, зависит от функции Q состояния после этого и т.д. Отсюда и название deep в термине.

                Словарь Reinforcement Learning

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

                На основе Thomas Simonini. An introduction to Reinforcement Learning и других источников

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

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

                На первый взгляд обучение с подкреплением кажется невероятно сложным. Состояние, действие, среда взаимодействия, вознаграждение, функция-значение, Q-обучение и множество других терминов могут стать довольно обременительными для новичка. Но что, если я скажу вам, что эта концепция прочно вошла в нашу повседневную жизнь? Да, вы правильно прочитали! Мы используем ее практически на каждом шагу.

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

                Пример

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

                Экзамен. Представьте, что у вас завтра экзамен. Из-за какой-то чрезвычайной ситуации вы не смогли подготовиться к нему, поэтому решили просмотреть ответы к прошлогодним тестам по этому курсу. Проштудировав некоторые из них, вы замечаете закономерность: более 60 % оценочных баллов приходится на вопросы из первых трех глав учебника, в то время как остальные 40 % поровну распределяются между оставшимися пятью главами. Из-за нехватки времени вы можете изучить либо первые три главы, либо последние пять. Вам нужно набрать не менее 40 % баллов, чтобы сдать экзамен.

                Теперь ответьте на вопрос: каким главам вам стоит посвятить время?

                Первым трем, конечно! Анализ предыдущих данных показывает: есть высокая вероятность того, что значительное количество баллов снова будет присвоено первым трем главам. Значит, у вас больше шансов набрать 40 % баллов из возможных 60 %. Даже допустив несколько ошибок, вы с большой вероятностью сдадите экзамен. Если же выберете остальные 5 глав, даже одна ошибка может осложнить вашу жизнь.

                Терминология

                Теперь углубимся в терминологию, предлагаемую этим алгоритмом.

                Среда взаимодействия

                Как следует из названия, это пространство, с которым взаимодействует агент. В нашем случае средой был экзамен. Вы, агент, взаимодействовали с экзаменационной средой. Это пространство, в котором агент должен взаимодействовать определенным образом, следуя соответствующему алгоритму. В приведенном выше видео мы видим, как агент (зеленая машина) взаимодействует со своей средой (с шоссе, заполненным синими автомобилями).

                Агент

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

                Действие

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

                Вознаграждение

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

                Именно этот стимул — максимизация вознаграждения — является главной мотивацией для агента. Именно она позволяет агенту делать выводы, и почти все алгоритмы обучения с подкреплением основаны на максимизации вознаграждения наиболее эффективным способом.

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

                Состояние и история

                Это еще два очень важных понятия, используемых в обучении с подкреплением. Всякий раз, взаимодействуя со средой, выполняя какую-то операцию (действие), агент наблюдает ответную реакцию этой среды, получая от нее вознаграждение. В случае экзамена, в зависимости от выбора глав для изучения, откликом среды будет определенное количество баллов. В ситуации с автомобилем, выполняющим замедление, ускорение, повороты, среда также отреагирует сигналами вознаграждения. Если же он врежется в другую машину, получит отрицательный отклик среды. Представим это, используя Ot для наблюдения в момент времени t. Теперь нужен способ отслеживать эти наблюдения, действия и вознаграждения, полученные на каждом этапе. Вот тут-то вступает в игру история — термин, обозначающий последовательность действий, вознаграждений и наблюдений до момента t.

                То, как агент будет взаимодействовать с окружающей средой, зависит от истории. Анализируя историю и основываясь на своих приоритетах, он принимает решение о каждом следующем действии. Очевидно, что фиксирование последовательности всех наблюдений, действий и вознаграждений — чрезвычайно трудоемкий и в принципе бесполезный процесс. Что нам нужно, так это краткое изложение истории. Она сообщит агенту все важные детали и не обременит лишними данными. Это именно то, что делает государство. Государство — это, по сути, просто функция истории.

                Для определения функции мы используем особое предположение, вытекающее из состояния цепи Маркова. Предположение заключается в следующем:

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

                Политика и значение функции

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

                Политика, обозначенная буквой π, сопоставляет состояние s с конкретным действием [изображение предоставлено автором]

                Это значение функции для данной политики π и состояния s в момент времени t. Оно выражает предположение вознаграждений, которые мы надеемся получить в будущем (t+1, t+2 … и т. д.). Коэффициент обесценивания γ показывает, какое значение мы придаем будущим вознаграждениям при оценке ожиданий. Он находится между 0 и 1, где 0 означает, что мы заботимся только о вознаграждении на временном шаге t, в то время как коэффициент обесценивания 0,99 означает, что все последующие шаги в будущем имеют большое значение [изображение предоставлено автором]

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

                Заключение

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

                Читайте также: