Как научить робота крутить вентили за 10 кликов: разбор Dynamical Distance Learning

Yannic Kilcher 2 тыс. 22 мин 4 мин 12.04.2020
Главное

Робот, самостоятельно поворачивающий вентиль — зрелище впечатляющее, особенно когда на все обучение потребовалось лишь 10 подсказок человека. Янник Кильхер (Yannic Kilcher) разбирает статью «Dynamical Distance Learning for Semi-Supervised and Unsupervised Skill Discovery», которая обещает решить одну из самых болезненных проблем обучения с подкреплением (RL) — необходимость ручной настройки функций вознаграждения. Ключ к успеху кроется в том, чтобы научить ИИ понимать «расстояние» между состояниями и стремиться к неизведанным границам.

🧱 Проблема «бутылочного горлышка» и функции вознаграждения 0:00

В классическом обучении с подкреплением (Reinforcement Learning) агенту нужна функция вознаграждения, чтобы понять, что он делает правильно. В теории достаточно просто дать награду «1» за достижение цели и «0» за всё остальное. Однако на практике, как объясняет Янник Кильхер, это приводит к возникновению «бутылочного горлышка» в исследовании (exploration bottleneck).

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

Янник Кильхер выделяет главную проблему этого подхода:

📏 Динамическое обучение расстоянию: суть метода 5:50

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

Представьте лабиринт. Агент перемещается в нём, используя свою текущую стратегию (policy). Даже если он не достигает цели и получает «0» вознаграждения, он всё равно посещает цепочку состояний. Мы можем измерить расстояние между любыми двумя состояниями в этой цепочке просто по количеству шагов, которые потребовались агенту, чтобы перейти из точки А в точку Б.

Ключевые особенности функции расстояния:

🧭 Исследование фронтира: как ИИ находит путь в лабиринте 11:43

Если у нас есть рабочая функция расстояния, обучение становится тривиальным: агент просто выбирает те действия, которые минимизируют расстояние до цели. Но что если цель еще не найдена?

Янник Кильхер объясняет алгоритм «неконтролируемого открытия навыков» (unsupervised skill discovery):

  1. Агент сохраняет все свои попытки в «буфер воспроизведения» (replay buffer).
  2. ИИ анализирует этот буфер и ищет состояние, которое находится дальше всего от стартовой точки.
  3. Это состояние объявляется временной целью. Агент пытается достичь его снова и, оказавшись там, начинает случайные исследования уже из этой новой точки.
  4. Таким образом, ИИ постоянно расширяет «фронтир» (границу) своих знаний об окружении, пока случайно не наткнётся на истинную цель.

Этот подход Янник сравнивает с известным алгоритмом Go Explore, который также фокусируется на возвращении в далекие состояния для дальнейшего поиска.

👥 Полуавтоматический режим: роль человека 14:15

Метод Dynamical Distance Learning (DDL) особенно эффективен в полуавтоматическом режиме (semi-supervised). Именно так робот из начала видео научился крутить вентиль.

Процесс выглядит так:

⚙️ Технические детали и обучение модели 15:20

Технически реализация DDL выглядит на удивление просто. Авторы используют стандартную регрессию.

Параметры обучения:

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

⚠️ Критика: где метод может дать сбой 20:07

Несмотря на элегантность подхода, Янник Кильхер высказывает ряд сомнений относительно его универсальности. По его мнению, у DDL есть «слабые места»:

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

💬 Цитаты

«Если вы уже знали, как именно выполнять задачу, чтобы настроить функцию вознаграждения, тогда зачем вам вообще делать Reinforcement Learning?»

Янник Кильхер 03:22

«Функция расстояния имеет очень плотный сигнал вознаграждения, из которого можно извлечь массу информации.»

Янник Кильхер 08:10
👥 Спикер
🔗 Упомянутые сайты и проекты
📖 Термины
Reinforcement Learning (RL)
Обучение с подкреплением — метод машинного обучения, при котором агент учится принимать решения, получая награды или штрафы за свои действия.
Reward Function
Функция вознаграждения — правило, по которому ИИ получает очки за правильные действия.
Replay Buffer
Память агента, где хранятся записи всех его прошлых действий и состояний для повторного обучения.
Exploration Bottleneck
Проблема «бутылочного горлышка» при исследовании, когда агент не может найти решение из-за слишком редких наград.
📊 Цифры
⚖️ Другая сторона
Искусственный интеллект Yannic Kilcher Reinforcement Learning Dynamical Distance Learning Sergey Levine