Машинное обучение предоставило различные формулировки для решения проблем. Обучение с подкреплением — это третья парадигма машинного обучения после обучения с учителем и без учителя. Здесь цель состоит в том, чтобы развиваться и учиться на ошибках, и, в отличие от двух других парадигм, данные для этого в основном развиваются по мере их появления. Цитируя Kaelbling, LP в его обзорной статье 1996 года (Reinforcement Learning: A Survey):

Обучение с подкреплением (RL) — это обучение путем взаимодействия с окружающей средой.

Его приложения лежат в основном в робототехнике и даже в играх. Используя RL, в 2015 году AlphaGo от Google победила чемпиона мира по го, имеющему неограниченное количество возможностей. В этом посте описываются основы RL с примером того, как натренировать горный автомобиль, чтобы добраться до вершины холма (в конце я добавил ссылку на код GitHub).

Задний план

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

  • S: Пространство состояний
  • A: Набор возможных действий
  • R(s, a): Вознаграждение в зависимости от состояния и действий.
  • p(s’|s, a): вероятность перехода из состояния s в s’

Теперь есть 2 парадигмы для их решения:

  1. Итерация значений. Мы создаем политику P(s), на основе которой возвращаем следующее значение. Эту рекурсивную функцию можно использовать для определения оптимального значения V(s0) в начальной точке (s0).
  2. Q-learning: этот подход используется, когда мы ничего не знаем об окружающей среде. По существу, идеальное Q*(s, a) зависит от дисконтированной будущей стоимости Q на следующем шаге.

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

С математической точки зрения наша цель — найти оптимальное значение Q*

где a’ — будущее действие, а gamma — коэффициент дисконтирования для будущего

Q-обучение

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

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

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

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

Демонстрацию приведенного выше кода в действии можно увидеть ниже.

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

Вывод

Область обучения с подкреплением представляет собой итеративный процесс поиска оптимального решения без каких-либо данных. Достижения в области RL, в том числе использование глубокого обучения, несомненно, способствовали развитию робототехники, автономных транспортных средств и дронов в дополнение к успеху игр Atari от Deep Mind.

В Google есть несколько ссылок на дополнительные темы, которые можно найти, но основные принципы остаются прежними.

Вы можете найти код GitHub здесь!

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