Основы основ обучения с подкреплением
- Что такое обучение с подкреплением?
- Парадигма обучения с подкреплением
- Гипотеза вознаграждений
- Состояния и наблюдения
- Пространство действий
- Траектории
- Вознаграждения
- Задачи обучения с подкреплением
- Дилемма исследования и эксплуатации
- Два основных подхода к обучению с подкреплением
- Стратегия
- Методы на основе стратегии
- Методы на основе оценки ценности
- Глубокое обучение с подкреплением
- Дополнительные ресурсы
Что такое обучение с подкреплением?
Конечная цель обучения с подкреплением — решение задач посредством взаимодействия со средой. В отличие от обучения с учителем, агент не знает правильных ответов и учится путем максимизации вознаграждений, которые дают обратную связь о качестве его действий. Для наглядности представим нашего агента в виде единорога, как показано на рисунке 1. Его цель — собрать как можно больше монет. За каждую монету он получает вознаграждение +1, а за смерть от злых осьминогов –1. После многих попыток единорог обучается избегать осьминогов и собирать максимальное количество монет.
Парадигма обучения с подкреплением
Ключевые персонажи в обучении с подкреплением — агент и среда.
Среда представляет собой мир, в котором агент существует и с чем-то взаимодействует. На каждом шаге агент получает состояние среды
Помимо состояния среды агент получает вознаграждение от среды \( r_t \). Это числовое значение, которое отражает качество принятого решения и ценность нахождения в данном состоянии. Цель агента заключается в максимизации суммарного вознаграждения — дохода (англ. return).
Гипотеза вознаграждений
Гипотеза вознаграждений — основа обучения с подкреплением. Она утверждает, что любая цель может быть выражена через максимизацию скалярного числа, называемого вознаграждением. Например, в шахматной игре за победу агент получает +1, за проигрыш — 0 или -1. В случае робота-сортировщика за каждую отсортированную вещь он получает +1. Для достижения наилучшего поведения агент должен максимизировать среднюю сумму вознаграждений.
Состояния и наблюдения
Состояние или наблюдение — информация о среде, которую получает агент. Для видеоигр это может быть скриншот экрана, для агента-трейдера — цена определенной акции, а для робота — данные с камеры, лидара и энкодеров. Различие между состоянием и наблюдением можно объяснить так:
- Состояние представляет полное описание среды. Оно содержит всю без исключения информацию о среде. Например, в шахматной игре полное описание включает расположение всех фигур на доске (рисунок 3). В таких случаях мы говорим о Марковском процессе принятия решений, где текущее состояние \( s_t \) достаточно для описания всей истории состояний \( s_0, s_1,\dots , s_{t-1} \).
- Наблюдение, напротив, представляет частичное описание среды. Например, в видеоигре скриншот не содержит всей информации о среде (рисунок 4): мы не можем определить направление движения агента или врагов. При обучении агентов в видеоиграх с помощью Deep Q-Learning исследователи из OpenAI использовали последовательность четырех кадров для улучшения описания среды.
шахматах — состояние среды, потому что оно полностью описывает среду
состоянием среды в видеоигре, так как не
описывает ее целиком. Например, он не указывает направление движения агента
Пространство действий
Пространство действий — набор всех возможных действий, которые способен выполнить агент. В таких средах, как видеоигры и шахматы, число действий ограничено. Их называют дискретными пространствами действий. Однако в других средах, например, в управлении автономным автомобилем или роботом, число действий может быть бесконечным (любое значение угла поворота руля от 0 до 180 градусов). В таких случаях говорят о непрерывных пространствах действий.
Выбор алгоритма обучения с подкреплением зависит от пространства действий в среде. Многие классические алгоритмы подходят только для дискретных пространств действий. Для сред с непрерывными действиями часто используют глубокие нейронные сети.
Траектории
Траектория \( \tau \) — это последовательность состояний среды и действий агента:
\( \tau = (s_0,a_0,s_1,a_1,\dots). \)
Начальное состояние среды \( s_0 \) обычно выбирается случайным образом из распределения начальных состояний \( \rho_0 \): \( s_0 \sim \rho_0 \). Его изменение в результате действий агента может быть детерминированным:
\( s_{t+1}=f(s_t,a_t), \)
или стохастическим:
\( s_{t+1} \sim P(\cdot |s_t, a_t). \)
Иногда траекторию также называют rollout или эпизодом.
Вознаграждения
Вознаграждение \( r_t \) играет важную роль в обучении агента, ведь это единственная обратная связь для него. Благодаря вознаграждению агент понимает, насколько хорошо принятое им решение. Суммарное вознаграждение записывается таким образом:
\( \begin{align*} R(\tau) &= r_{t+1} + r_{t+2} +r_{t+3} + \dots \\ & = \sum_{k=0}^{\infty}r_{t+k+1} \end{align*} \)
На практике вознаграждение, полученное сейчас или в ближайшем будущем, обычно ценится выше, чем те же вознаграждения в долгосрочной перспективе: они более предсказуемы и имеют большую ценность. Простой пример из реальной жизни — деньги. Деньги в будущем стоят меньше из-за инфляции и других экономических факторов (кризисы, войны и т. д.). Другой пример — наш агент как маленькая мышка на рисунке 5. Ее цель — съесть как можно больше сыра и не встретиться с кошкой.
Очевидно, что у нашего агента больше шансов съесть близкий нам сыр, чем близкий кошке сыр (чем ближе мы к кошке, тем опаснее). Следовательно, награда рядом с кошкой, даже если она больше (больше сыра), будет более дисконтированной: мы не уверены, что сможем его съесть.
Для дисконтирования наград мы используем коэффициент дисконтирования \( γ \). Он должен быть между 0 и 1, чаще всего выбирается в диапазоне от 0.95 до 0.99. Чем больше \( γ \), тем меньше скидка, и, следовательно, наш агент более заинтересован в долгосрочной награде. С другой стороны, чем меньше \( γ \), тем больше скидка и наш агент более заинтересован в краткосрочной награде (ближайший сыр). Дисконтированная сумма наград записывается таким образом:
\( \begin{align*} R(\tau) &= \gamma r_{t+1} + \gamma^2 r_{t+2} + \gamma^3 r_{t+3} + \dots \\ & = \sum_{k=0}^{\infty} \gamma^k r_{t+k+1} \end{align*} \)
Задачи обучения с подкреплением
Все задачи обучения с подкреплением можно разделить на эпизодические и непрерывные.
- В эпизодических задачах у нас есть некоторое начальное состояние среды \( s_0 \)(начальное состояние фигур в шахматах) и конечное \( s_T \) (состояние фигур при победе или проигрыше). Один эпизод состоит из последовательности состояний и действий (траектории) \( s_0, a_0, s_1,a_1,\dots, s_T. \)
- Непрерывные задачи бесконечны (без конечного состояния). Например, агент, занимающийся автоматизированной торговлей акциями. Для такой задачи нет начальной и конечной точки. Агент продолжает работать до тех пор, пока мы не решим его остановить.
Дилемма исследования и эксплуатации
Вам, возможно, уже знакома эта дилемма: в одной из предыдущих статей мы как раз обсуждали баланс между исследованием и эксплуатацией в контексте многоруких бандитов. Для исследования агент принимает случайные решения, чтобы больше узнать о среде, а для эксплуатации использует имеющиеся знания с целью выбора лучшего решения. Мы также рассмотрели несколько методов: от простого \( \epsilon \)-жадного алгоритма и до выборки Томпсона. В обучении с подкреплением часто используется \( \epsilon \)-жадный алгоритм из-за его простоты и вычислительной эффективности.
Два основных подхода к обучению с подкреплением
Как нам обучить агента выбору действий, максимизирующих суммарное вознаграждение?
Стратегия
Стратегия (политика, контроллер) \( \pi \) — это функция, «мозг» нашего агента. Она указывает, какое действие нужно предпринять в данном состоянии \( s_t \). Следовательно, определяет поведение агента в конкретный момент времени.
Есть два подхода к обучению нашего агента для достижения оптимальной политики \( \pi^* \), которая максимизирует суммарное ожидаемое вознаграждение:
- явный подход: обучение агента выбирать оптимальное действие в каждом состоянии (методы на основе стратегии, policy-based methods);
- косвенный подход: обучение агента определять ценность каждого состояния и принимать действия для более ценных состояний (методы на основе оценки ценности, value-based methods).
Методы на основе стратегии
В этих методах мы обучаем функцию стратегии \( \pi \) напрямую. Функция определяет лучшее действие \( a_t \) для каждого состояния \( s_t \). В альтернативном варианте она может устанавливать вероятностное распределение возможных действий для данного состояния.
Агент обучается функции ценности, а затем на ее основе выбирает оптимальное дейcтвие
Итак, подведем итоги. Есть два вида стратегий:
- детерменированные возвращают одно определенное действие для конкретного состояния \( a_t = \pi(s_t) \);
- стохастические возвращают распределение вероятностей возможных действий для данного состояния \( \pi(a|s) = P(A|s) \).
Методы на основе оценки ценности
В таких методах агент обучается функции ценности \( v_\pi(s) \) вместо функции стратегии \( \pi(s) \). Эта функция показывает ожидаемое дисконтированное вознаграждение. Его агент может получить, начиная с этого состояния и действуя в соответствии с заданной стратегией:
\( v_\pi(s) = \mathbb E_\pi[R_{t+1} + \gamma R_{t+2} + \gamma^2 R_{t+3} + \dots | S_t = s] \)
Давайте рассмотрим простой табличный пример, представленный на рисунке 9. Благодаря обученной оценке функции ценности агент на каждом временном шаге выберет действие, которое приведет к состоянию с наибольшим значением функции ценности: -7 \( \rightarrow \) -6 \( \rightarrow \dots \) \( \rightarrow \) -1.
Глубокое обучение с подкреплением
Многие алгоритмы обучения с подкреплением изначально предназначались для задач с дискретным пространством действий, таких как табличные проблемы. В этих случаях функция ценности представляется в виде таблицы. Однако для задач с большим числом состояний, например, для игры Го или видеоигры заполнение таблицы с функцией ценности требует больших вычислительных мощностей и длительного времени. Поэтому здесь начали использовать методы приближения функции ценности.
В настоящее время в качестве функций приближения часто используются глубокие нейронные сети. Отсюда и название “глубокое обучение с подкреплением”. Однако при использовании нейронных сетей теряются некоторые свойства алгоритмов и гарантии сходимости. Именно поэтому для глубокого обучения с подкреплением было придумано много эвристик и методов, о которых мы расскажем в следующих статьях 😊