Иерархическое обучение с подкреплением — Александр Панов

МЕНЮ


Искусственный интеллект
Поиск
Регистрация на сайте
Помощь проекту

ТЕМЫ


Новости ИИРазработка ИИВнедрение ИИРабота разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика

Авторизация



RSS


RSS новости


Иерархическое обучение с подкреплением — это одно из направлений обучения с подкреплением, являющееся одним из разделов машинного обучения, которое, в свою очередь, является разделом искусственного интеллекта.

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

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

В качестве примера можно предположить, что у нас с вами есть робот, который является агентом, он движется в некоторых помещениях. Он может ехать вперед, назад и открывать двери в соседние комнаты. Целью служит комната, в которую он должен приехать и взять какую-нибудь вещь. Вознаграждением служит, например, евклидово расстояние до предмета в этой комнате: чем он ближе, тем больше ему поступает это число. Если он далеко, это число 5, если он близко, это 10 или 20. Задача агента — выполнить такие действия, чтобы как можно быстрее заработать больше вознаграждений. Вознаграждения могут быть отрицательными, и это значит, что агента наказывают, если он, например, едет не в ту сторону.

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

Здесь очень близко подходят задачи transfer learning — переноса обучения. Предположим, у нас с вами робот перемещался в одной сети комнат, а потом вы его решили переместить на улицу: пусть он там двигается и дойдет до какого-то целевого состояния на улице. Это те же самые действия, но описание состояния, которое он получает, например, с сенсоров, немного другое. Тут возникает необходимость обучаться не с нуля, а используя предыдущие знания. На помощь приходит иерархическое обучение с подкреплением.

Если у вас есть набор элементарных действий — двигаться вперед, назад — и вы постоянно используете только их, то transfer learning, то есть перенос знаний из предыдущей задачи в новую, происходит очень долго. У вас нет никаких заранее заготовленных правил выполнения задачи, которые были бы более длинные, чем эти элементарные действия. В иерархическом обучении с подкреплением задача состоит в том, чтобы запоминать некоторые последовательности этих действий — например, двигаться вперед, вперед, вперед, а потом налево, — которые позволяют достичь некоторых подцелей при выполнении общей задачи.

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

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

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

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

В иерархическом обучении с подкреплением сегодня существуют три подхода к тому, как составлять и запоминать последовательности действий. Один из основных подходов, который был предложен еще основоположником обучения с подкреплением Ричардом Саттоном, сейчас развивается одной из его учениц. Этот подход, или фреймворк, называется Options. Это такая подпоследовательность действий, которая сопровождается отдельным набором состояний, в которых сказано, что нужно начинать цепочку действий. Цепочка действий заканчивается терминальными состояниями, то есть условиями ее завершения. В данном случае используется подход вычисления ценности пар «состояние — действие». Когда мы хотим для данного состояния выяснить, какое действие предпринять, мы для этой пары «действие и текущее состояние» сопоставляем некоторое число, вознаграждение, которое получим в дальнейшем, если совершим действие в этом состоянии.

Наши предсказания — какой счет в итоге мы получим на самом деле, если здесь в данный момент совершим это действие. Этот подход в фреймворке Options расширяется на то, что мы теперь предсказываем не на один шаг вперед. Мы знаем, какое вознаграждение получим, если дальше будем следовать нашей стратегии применения действий.

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

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

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

Второй подход в иерархическом обучении еще в начале 2000-х предложил Дитерихом, один из основоположников обучения с подкреплением — Max Q, максимизация оценки состояний. Этот подход интересен тем, что был предложен один из классических примеров, на которых проверяют сейчас многие задачи обучения с подкреплением, иерархического обучения с подкреплением — это задача такси. Она растет из проблемы таксистов в Нью-Йорке. Задачка простая. Агент — это таксист, желтая машинка, которая движется по grid world, то есть клеточному пространству. Ее задача — подобрать пассажира и отвезти его в определенную точку. Клеточный мир может быть достаточно большой: от 5 клеток до 100. И здесь хорошо прослеживается иерархия. Цель не просто довезти пассажира до какой-то точки, а последовательность — доехать до этого пассажира, забрать его и потом отвезти куда-нибудь еще.

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

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

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


Источник: postnauka.ru

Комментарии: