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

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

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

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

Обучение более крупных сетей для обучения с глубоким подкреплением

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

В целом предложенный авторами алгоритм и архитектура архитектуры можно разделить на три основные части.

  • Использование более широких сетей с подключением DenseNet
  • Отделение репрезентативного обучения от цели RL
  • Использование схемы распределенного обучения для решения проблемы переобучения

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

1. Сетевая архитектура

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

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

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

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

Авторы сравнили все 4 различных архитектурных проекта, чтобы увидеть, какая из них обеспечивает лучшую производительность. Однако в архитектуре DenseNet используется обычный линейный слой, а не свертка, как в оригинальном проекте Computer Vision.

Результаты показывают, что архитектура DenseNet обеспечивает лучшую производительность. Важно отметить, что каждый дизайн использовался для политики и Q-сети в алгоритме Soft Actor-Critic.

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

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

Зная об этом, они провели поиск по сетке, где увеличили номер слоя, а также его глубину. Здесь вы можете видеть, что снова лучшая производительность достигается всего с несколькими слоями 2–3. Но что интересно, вы также можете увидеть почти монотонное улучшение производительности при расширении сети почти на всей ее глубине. Имея лучшую производительность всего с двумя слоями, но шириной 2048 узлов!

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

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

2. Отделение обучения представлению от RL

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

С их новой архитектурой и разной шириной сети авторы сравнили, как добавление OFENet влияет на общую производительность.

Результаты на рис. 6 ясно показывают, что использование OFENet в качестве средства извлечения функций приводит к повышению производительности для всех сетей разной ширины!

3. Распределенное обучение

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

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

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

Рис. 7 показывает, что использование Ape-X позволяет улучшить производительность во всех размерах сети, а более крупные сети имеют тенденцию к дальнейшему повышению производительности.

Объединяя все

Наконец, собрав все компоненты вместе, авторы протестировали и оценили свой метод с двумя разными базовыми алгоритмами (TD3 и SAC), чтобы показать применимость и улучшение производительности для разных алгоритмов. Оба алгоритма были обучены без улучшения в качестве базового уровня, обучены только с помощью OFENet, который ранее достиг современного уровня производительности на задачах MuJoCo-Tasks, и обучены с помощью предлагаемой архитектуры и дизайна алгоритма, описанных в этой статье (DenseNet, OFENet, Ape-X).

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

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

Заключение

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

Кроме того, авторы дают более четкое представление о том, почему их реализация работает и почему предыдущие попытки не увенчались успехом. На мой взгляд, это очень впечатляющие результаты, и статья написана очень красиво и подробно все объясняет. Если вам понравилась эта статья и результаты, Я рекомендую вам заглянуть в Бумагу.

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

или подписывайтесь на меня на Medium, GitHub или LinkedIn.