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

«Глубокое» в глубоком обучении с подкреплением

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

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

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

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

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

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

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

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

Еще одной сложностью перехода от обработки изображений к области задач управления является дополнительный элемент времени. При обработке изображений мы обычно обучаем алгоритм глубокого обучения на фиксированном наборе данных изображений. После достаточного количества тренировок мы обычно получаем высокопроизводительный алгоритм, который мы можем применить к некоторым новым, невидимым изображениям. Мы можем думать о наборе данных как о «пространстве» данных, где похожие изображения расположены ближе друг к другу в этом абстрактном пространстве, а отдельные изображения дальше друг от друга (рис. 1.6).

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

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

Напротив, в RL мы не знаем точно, что нужно делать на каждом этапе. Нам просто нужно знать, какова конечная цель и чего следует избегать. Как научить собаку трюку? Вы должны давать ему вкусные угощения. Точно так же, как следует из названия, мы обучаем алгоритм RL, стимулируя его к достижению какой-то цели высокого уровня и, возможно, лишая его стимула делать то, чего мы не хотим. В случае с беспилотным автомобилем главной целью может быть «доехать из начальной точки А в точку Б, не разбиваясь». Если он выполняет задачу, мы вознаграждаем его, а если он дает сбой, мы наказываем его.

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