CURL: Обучение представлений без учителя для RL 0:00
CURL (Contrastive Unsupervised Representations for Reinforcement Learning) — это универсальный фреймворк, предназначенный для обучения представлений в задачах обучения с подкреплением (Reinforcement Learning, RL) без использования меток или внешних сигналов вознаграждения. Метод, представленный Аравиндом Сринивасом, Мишелем Ласкиным и Петрой Биль, использует концепцию контрастивного обучения для извлечения полезных признаков из «сырых» пикселей изображения, что значительно ускоряет обучение RL-агентов.
Проблема «сырых» данных в RL 2:01
Фундаментальная проблема обучения с подкреплением заключается в поиске эффективного отображения (mapping) от наблюдения (например, кадра игры) к действию, максимизирующему вознаграждение. Обычно это реализуется через нейронную сеть, принимающую на вход «чистые» пиксели.
Однако, по словам Янника Килчера, обучение напрямую на пикселях является крайне сложной задачей для алгоритма, так как ему приходится одновременно решать две задачи:
- Извлечение информации: Понимание того, что на экране есть важные объекты (например, космический корабль, метеориты, выстрелы).
- Обучение стратегии: Выбор оптимального действия в текущей ситуации.
Килчер отмечает, что если бы исследователь создавал представление вручную (например, передавая координаты объектов), агент обучался бы гораздо быстрее. CURL призван автоматизировать этот процесс, снимая с RL-алгоритма «бремя» извлечения полезных данных.
Механика контрастивного обучения CURL 8:52
Секрет эффективности CURL заключается в контрастивном обучении, которое позволяет нейронной сети самостоятельно создавать задачи для обучения («самообучение» с использованием созданных меток).
Процесс строится на основе трёх ключевых элементов:
- Anchor (Якорь): Центральный кроп изображения.
- Positive Sample (Положительный пример): Случайный кроп того же изображения.
- Negative Sample (Отрицательный пример): Случайный кроп другого, отличного изображения.
Цель сети — научиться определять, какой из предоставленных фрагментов относится к тому же исходному изображению, что и «якорь». Для этого используются две кодирующие нейронные сети:
- Query Encoder (FQ): Кодирует «якорь».
- Key Encoder (FK): Кодирует потенциальные положительные и отрицательные примеры.
Килчер подчеркивает, что использование идентичных сетей ведет к нестабильности, поэтому авторы применяют «импульсный энкодер» (momentum encoder). Параметры этого энкодера обновляются через экспоненциальное скользящее среднее параметров основного энкодера, что обеспечивает стабильность без необходимости обучать вторую полноценную сеть.
Результаты и эффективность 26:12
Авторы тестировали CURL на задачах DeepMind Control Suite и играх Atari, делая упор на эффективность использования данных (data efficiency) при ограничении в 100 тысяч временных шагов.
Ключевые выводы по итогам экспериментов:
- CURL стабильно превосходит существующие аналоги (базовые модели) в тестах DeepMind Control.
- В ряде задач алгоритм демонстрирует результаты, сопоставимые с моделями, имеющими доступ к истинному состоянию среды (State-based RL), несмотря на то, что CURL работает исключительно с «сырыми» пикселями.
- При сравнении с алгоритмами, которые также работают только с пикселями (Pixel-based), CURL показывает значительно более высокую стабильность и результативность.
Килчер резюмирует, что такой подход «саморазметки» данных позволяет создавать мощные представления, которые делают архитектуру RL-агентов более гибкой и применимой в широком спектре задач.