Обучение с подкреплением (Reinforcement learning, RL) сыграло ключевую роль в стремительном развитии технологий искусственного интеллекта, которое можно было наблюдать в последнее десятилетие. В этом материале мы простыми словами расскажем о том, что такое обучение с подкреплением, поговорим о том, почему оно важно не только как объект исследований, но и как инструмент, который находит множество самых разных вариантов практического применения.
![](https://habrastorage.org/getpro/habr/upload_files/0bd/b62/60d/0bdb6260d83faab19085b05dbb515866.png)
Что такое обучение с подкреплением?
Чтобы понять, что такое обучение с подкреплением, проще сначала разобраться с тем, чем оно не является. Большинство общеизвестных алгоритмов машинного обучения делает прогнозы. Но им не нужно «размышлять» над данными, поступающими за длительные периоды времени, или взаимодействовать с окружающим миром. Например, классификатор изображений, получив изображение объекта, делает прогноз, отвечающий на вопрос о том, что это может быть за объект (например — яблоко или апельсин). Подобный классификатор изображений пассивен. Он не взаимодействует с миром, ему не нужно принимать во внимание то, как изображение, предоставленное ему ранее, может повлиять на текущий прогноз. Задача классификации изображений относится к категории задач, где применяется обучение с учителем. Но это — не обучение с подкреплением.
RL-алгоритмы, в отличие от пассивных прогнозных моделей, вроде классификаторов изображений, и взаимодействуют с внешним миром, и нуждаются в анализе данных за некие периоды времени. Это помогает таким моделям в достижении их целей. Цель RL-алгоритма заключается в максимизации выгод за заданный период времени. На интуитивном уровне такие алгоритмы похожи на классические психологические механизмы выработки условных реакций. Например, собак обычно обучают новым трюкам, поощряя их лакомством в том случае, если они правильно выполняют команды. Собака стремится максимизировать число получаемых угощений и изучает новые навыки для того чтобы максимизировать своё вознаграждение.
![Агенты обучения с подкреплением (внизу) непрерывно учатся на собственном опыте, в то время как агенты обучения с учителем (вверху) обучаются прогнозированию на основе статического набора данных. Агенты обучения с подкреплением (внизу) непрерывно учатся на собственном опыте, в то время как агенты обучения с учителем (вверху) обучаются прогнозированию на основе статического набора данных.](https://habrastorage.org/getpro/habr/upload_files/e03/2db/1c8/e032db1c80674041704549bc93a4d5c5.png)
Робот для сбора яблок
Работа RL-алгоритмов очень похожа на механизм обучения собак новым фокусам. Но, вместо угощения, такие алгоритмы получают численные вознаграждения. Например, предположим, что мы поместили робота в некое место, и нам нужно, чтобы он максимизировал бы количество собранных им яблок. Мы прибавляем единицу к вознаграждению робота каждый раз, когда он подбирает яблоко. По истечении фиксированного отрезка времени мы подсчитываем яблоки, которые собрал робот, и определяем его итоговую награду. RL-алгоритмы — это математический аппарат, цель которого — максимизация общей награды. Подобный алгоритм, обладая некоторым набором предположений относительно окружающей среды, гарантирует то, что робот соберёт максимально возможное количество яблок, которые имеются в этой среде.
На примере робота для сбора яблок мы можем проиллюстрировать и фундаментальную проблему RL-алгоритмов: задачу исследования окружающей среды (exploration problem). Предположим — робот находится в комнате, в которой имеется небольшое количество яблок. Но есть и другая комната, к которой ведёт длинный коридор. Там есть целая яблоня. Именно эта комната — наилучшее место для робота, но, чтобы туда добраться, ему нужно пройти по длинному коридору, не получая во время перехода никаких наград. RL-алгоритмы самостоятельно находят оптимальные решения предлагаемых им задач, но их обучение может занять много времени в том случае, если исследование окружающей среды оказывается непростым делом.
![Задача исследования окружающей среды в обучении с подкреплением. В комнате A имеется лишь несколько яблок. В комнате B яблок гораздо больше, но она далеко. Как робот узнает о том, что ему лучше всего поступить так: исследовать окружающий мир и добраться до комнаты B? Задача исследования окружающей среды в обучении с подкреплением. В комнате A имеется лишь несколько яблок. В комнате B яблок гораздо больше, но она далеко. Как робот узнает о том, что ему лучше всего поступить так: исследовать окружающий мир и добраться до комнаты B?](https://habrastorage.org/getpro/habr/upload_files/a36/1e2/963/a361e29631af38988a651b262d10e723.png)
Краткая история обучения с подкреплением
Фрагменты теории обучения с подкреплением разрабатывались с давних времён, с середины 1950-х годов. Но идеи, которые сформировали современное обучение с подкреплением, были собраны воедино лишь в 1989 году, когда Крис Уоткинс формализовал математический аппарат Q-обучения (Q-learning), используемый для обучения RL-агентов. Но о современном обучении с подкреплением, о начале его распространения, можно было говорить лишь после прорывной работы по AlexNet, вышедшей в 2012 году. А появление проекта ImageNet ознаменовало собой тот момент, когда глубокая нейронная сеть впервые значительно превзошла ранее используемые подходы к классификации объектов на сложных изображениях реального мира.
Вскоре после этого, в 2013 году, Влад Мних и другие сотрудники проекта DeepMind выпустили Deep Q Network (DQN). Это была первая система, которая умела играть в видеоигры Atari, основываясь на пиксельных входных данных. Это революционное достижение открыло дорогу современным RL-системам, которые называют глубокими системами обучения с подкреплением. Они используют глубокие нейронные сети для оценки того, насколько вероятно то, что конкретные действия приведут к более высоким наградам. Алгоритм DQN лежал в основе следующих, более продвинутых систем DeepMind, таких, как AlphaGo и AlphaStar.
Практическое применение обучения с подкреплением
Большинство современных RL-исследований сосредоточено на алгоритмах, являющихся основой разработки агентов, максимизирующих награду в смоделированных средах. Но математический аппарат обучения с подкреплением достаточно универсален, его уже начинают применять для решения множества практических задач.
Рекомендательные системы
Цель рекомендательных систем — советовать пользователям что-то такое, что они с достаточно высокой вероятностью купят, или такое, что их заинтересует и увлечёт. Количество возможных продуктов, которое может порекомендовать система, весьма велико. Поэтому нужен эффективный алгоритм, который не только подберёт то, что сильнее всего понравится пользователю, но и обеспечит то, что выбор, который он делает, приведёт, в долгосрочной перспективе, к улучшению показателей, важных для компании. Среди примеров использования RL в мощных рекомендательных системах можно отметить систему, рекомендующую товары на Alibaba, и систему рекомендаций видео на YouTube.
В последние несколько лет были разработаны RL-алгоритмы, специально рассчитанные на рекомендательные системы. Один из примеров подобного алгоритма — SlateQ. Он использует обучение с подкреплением для выдачи пользователю списка элементов. Этот алгоритм создавался в расчёте на работу в комбинаторно большом пространстве продуктов, которые можно порекомендовать пользователю для повышения общего уровня его удовлетворённости.
![Применение SlateQ повышает, со временем, степень вовлечённости пользователя Применение SlateQ повышает, со временем, степень вовлечённости пользователя](https://habrastorage.org/getpro/habr/upload_files/496/fb7/ecd/496fb7ecd463e2afb05d8aa601202d29.png)
Развёртывая RL-системы важно помнить о том, чтобы функция вознаграждения была бы настроена на то, чтобы максимизировать показатели, важные для компании в долгосрочной перспективе. Например — такие, которые отражают удовлетворённость клиентов продуктом компании. Например, в середине 2010-х годов в YouTube узнали, что, хотя их рекомендации повышали вовлечённость пользователей, они не повышали уровень долговременной удовлетворённости пользователей. Это было следствием скрытой предвзятости, когда неясно, щёлкнул ли пользователь по карточке видео по своему намерению, или просто потому, что рекомендация появилась на экране. С тех пор компания Google выпустила новый RL-алгоритм, который направлен на решение проблемы скрытой предвзятости.
Управление беспилотными транспортными средствами
В наши дни обучение с подкреплением используется в Tesla для планирования путей беспилотных транспортных средств и для управления этими транспортными средствами. Один из примеров — применение RL для планирования пути при самостоятельной парковке автомобиля. Количество возможных путей, которые может исследовать автомобиль, это показатель, для которого характерен экспоненциальный рост. Это ведёт к тому, что традиционные методы планирования пути медленны и неэффективны. На мероприятии AI Day компания Tesla показала алгоритм, основанный на AlphaGo, направленный на планирование наиболее быстрых и эффективных путей движения автомобиля.
Охлаждение дата-центров
Ещё одно полезное применение RL — охлаждение дата-центров в Google. Дата-центры потребляют много энергии, а компьютеры, которые в них содержатся, рассеивают эту энергию в виде тепла. Поддержание дата-центра в работоспособном состоянии требует применения серьёзных систем охлаждения. Функционирование этих систем обходится недёшево. Благодаря RL компания Google смогла развернуть системы охлаждения, которые включаются лишь по необходимости, что позволяет исключить ситуации, когда такие системы работают, а оборудование в охлаждении не нуждается.
Итоги
В этом материале мы простыми словами рассказали о том, что такое обучение с подкреплением, и о том, какую пользу оно может принести в самых разных сферах деятельности. Тут мы привели лишь три примера практического применения RL. На самом же деле их гораздо больше. Просто восхитительно то, что один алгоритмический аппарат достаточно универсален для того, чтобы найти применение в решении столь широкого круга задач.
В следующий раз мы поговорим о том, как работает математический аппарат обучения с подкреплением.
О, а приходите к нам работать? ?
Мы в wunderfund.io занимаемся высокочастотной алготорговлей с 2014 года. Высокочастотная торговля — это непрерывное соревнование лучших программистов и математиков всего мира. Присоединившись к нам, вы станете частью этой увлекательной схватки.
Мы предлагаем интересные и сложные задачи по анализу данных и low latency разработке для увлеченных исследователей и программистов. Гибкий график и никакой бюрократии, решения быстро принимаются и воплощаются в жизнь.
Сейчас мы ищем плюсовиков, питонистов, дата-инженеров и мл-рисерчеров.