Машинное обучение предоставило различные формулировки для решения проблем. Обучение с подкреплением — это третья парадигма машинного обучения после обучения с учителем и без учителя. Здесь цель состоит в том, чтобы развиваться и учиться на ошибках, и, в отличие от двух других парадигм, данные для этого в основном развиваются по мере их появления. Цитируя 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 парадигмы для их решения:
- Итерация значений. Мы создаем политику P(s), на основе которой возвращаем следующее значение. Эту рекурсивную функцию можно использовать для определения оптимального значения V(s0) в начальной точке (s0).
- Q-learning: этот подход используется, когда мы ничего не знаем об окружающей среде. По существу, идеальное Q*(s, a) зависит от дисконтированной будущей стоимости Q на следующем шаге.
Настоящий пример сценария относится к горному автомобилю, цель которого состоит в том, чтобы довести автомобиль до вершины холма (см. рис. 1 ниже). Таким образом, это похоже на последнее, где нет никакой информации о пространстве состояний.
С математической точки зрения наша цель — найти оптимальное значение Q*
где a’ — будущее действие, а gamma — коэффициент дисконтирования для будущего
Q-обучение
Как упоминалось ранее, у нас могут быть исследовательские и эксплуатационные ходы (т. е. применять жадный подход для следующих ходов или пытаться учиться, делая новые ходы). Таким образом, обновленное уравнение:
где альфа — скорость обучения. Первая часть — это эксплуатация, а вторая — исследование модели. Обновленные веса вычисляются как:
В этом сценарии у нас есть 3 набора действий: остаться, двигаться влево или двигаться вправо. Чтобы учиться с помощью Q-learning, мы применяем обновления к нашему состоянию как:
Выбор нашего действия может быть случайным или рассчитанным в зависимости от случая. Для рендеринга в коде используется класс MountainCar. Обучение модели по уравнению (2) осуществляется в течение нескольких эпизодов, которые мы будем исследовать. В каждом эпизоде мы итеративно обновляем веса на основе движения в пространстве состояний.
Демонстрацию приведенного выше кода в действии можно увидеть ниже.
Возникает очевидный вопрос: как исследование и эксплуатация влияют на результат. Мы можем увеличить скорость обучения, если машина не двигается, в то время как нам может потребоваться уменьшить ее, если машина ведет себя крайне хаотично.
Вывод
Область обучения с подкреплением представляет собой итеративный процесс поиска оптимального решения без каких-либо данных. Достижения в области RL, в том числе использование глубокого обучения, несомненно, способствовали развитию робототехники, автономных транспортных средств и дронов в дополнение к успеху игр Atari от Deep Mind.
В Google есть несколько ссылок на дополнительные темы, которые можно найти, но основные принципы остаются прежними.
Вы можете найти код GitHub здесь!
Примечание. Опубликовано в моих блогах, где вы можете следить за моими публикациями об искусственном интеллекте и машинном обучении.