Поиск по сайту Поиск

Обучаем виртуального дракона фигурам высшего пилотажа

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

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

Тангаж (pitch), рысканье (yaw) и крен (roll) на примере квадрокоптера

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

Не так давно неплохой потенциал в создании основанной на физике анимации показало обучение с подкреплением (reinforcement learning, RL). RL учитывает текущее состояние персонажа и определяет последовательность действий, которая должна достичь максимальной суммы вознаграждений. Давать вознаграждение за выполнение определённых операций — основной способ влияния пользователя на управление полётом, а также на эффективность модели и ход её обучения (под вознаграждением здесь понимается краткое описание требуемой цели). При этом нейросеть не имеет заранее полученного представления о характере движений и долго учится с нуля управлять своим «телом», что в итоге даёт более реалистичный результат.

RL хорошо справляется со своей задачей, когда траектория полёта включает совсем немного трюков. Но если у виртуальной модели есть шарнирные крылья, то манёвры должны быть более экстремальными. Это создаёт проблемы для RL. Поэтому группа исследователей из Сеульского национального университета представила новую концепцию саморегулируемого обучения (Self-Regulated Learning, SRL) в сочетании с глубоким обучением с подкреплением (DRL) для решения задачи управления высшим пилотажем.

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

Окружающая среда и обучение

Аэродинамика летающих существ зависит от сложных взаимодействий между их крыльями и скелетом. Для своего исследования учёные использовали модель дракона с шарнирным каркасом из жёстких костей и покрывающей их тонкой «кожей». Скелет собран из туловища, двух крыльев и хвоста. Туловище включает четыре сегмента позвоночника, соединённые суставами. Крылья состоят из плечевой кости, локтевой кости и кисти с шарнирами между ними. Форма крыльев имеет аэродинамический профиль, который позволяет создавать подъёмную силу, обеспечивающую полёт.

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

Саморегулируемое обучение

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

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

Эта концепция применима и к летающему дракону — что, если он самостоятельно будет регулировать своё обучение? Это означает, что модель сможет контролировать все отдельно взятые участки траектории (подзадачи) и связанные с ними вознаграждения в любой момент времени, а также оценивать свои действия. Добавление к этому обучения с подкреплением позволит оптимизировать процесс, и модель сможет создать свой собственный цикл тренировок.

Саморегулируемое глубокое обучение с подкреплением (SR DRL)

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

Устройство модели

Авторы реализовали свой алгоритм на Python. Для моделирования динамики твёрдого тела использовался Dart (версия 2012 г.), а для обучения и оценки глубокий нейронных сетей — библиотека Tensorflow (версия 2015 г.). Все вычисления выполнялись на CPU Intel Xeon E5-2687W-v4, а не на GPU, поскольку основной упор делался на динамическое моделирование, а не на ускорение работы нейронной сети.

На рисунке ниже изображена архитектура глубоких нейронных сетей, которые использовались в экспериментах. Все внутренние слои — полносвязные (fully connected, FC) с размерностью 32 и экспоненциальной линейной функцией активации (Exponential linear unit, ELU). Финальные полносвязные слои имеют размерность 64 и линейную функцию активации (linear).

(a) — нейросеть для общего поведения (b) — нейросеть для конкретного состояния действия (state-action)

Здесь s = (sd, σ, ss) — состояние глубокой саморегулируемой системы, складывающееся из динамического состояния sd, параметра прогресса σ и сенсорного состояния ss. Динамическое состояние отвечает за генерацию координат q и скорости q смоделированного дракона. Сенсорное состояние является частью проходимой траектории (одной из подзадач).

Действие a = (â, ã) состоит из динамического действия â и саморегуляции ã. Динамическое действие генерирует моменты вращения для симуляции подвижного полёта. Саморегуляция модифицирует подзадачу, чтобы контролировать прогресс, ориентацию, положение и допуск.

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

Результаты

Пилотажные манёвры

Саморегулируемая DRL-модель обучалась пилотажным манёврам различной сложности: от простых в освоении до сложных экстремальных трюков (показаны на рисунке). По трудности задачи разделены на начальный, средний и экспертный уровни, на каждом из которых изучался контроль поведения.

Пространственные траектории. Зелёные линии — направления взмахов крыльями, серая область — порог отклонения. (a) — Прямой полёт, (b) — X-образный поворот (мёртвая петля), (c) — Y-образный поворот (вираж), (d) — XY-поворот, (e) — Двойная мёртвая петля, (f) — Восьмёрка, (g) — Z-поворот (бочка), (h) — Зигзаг, (i) — Бесконечная мёртвая петля, (j) — Комбинированный поворот.

Начальный уровень (прямой полёт, мёртвая петля, вираж) включает в себя один (или ни одного) быстрый поворот вокруг одной оси. Средний уровень (XY-поворот, двойная мёртвая петля, восьмёрка) — один или два быстрых поворота в перпендикулярных осях. Экспертный уровень (бочка, зигзаг, бесконечная мёртвая петля, комбинированный поворот) — комбинация нескольких поворотов вокруг всех осей, парение, пикирование и бортовая качка. Процесс обучения занимает от 3 до 7, от 10 до 24 и от 24 до 48 часов для начального, среднего и экспертного уровней соответственно.

Визуализация SRL

На верхней части рисунка показано, как работает саморегуляция. Векторы вдоль траектории даны для сравнения. Зелёные соответствуют идеальным заданным значениям, красные — полученным в результате обучения. На прямой линии саморегулируемые векторы практически идентичны заданным пользователем (первые две пары на рисунке). В изогнутом месте видно, что красные векторы наклоняются в сторону — модель смогла скорректировать угол крена, чтобы выполнить заданный манёвр. В нижней части рисунка показана саморегуляция трюка «зигзаг». 

Интерактивная траектория полёта

Пользователь может самостоятельно задавать траектории, собирая их из отдельных частей (манёвров). На рисунке ниже показан пример. Цвет указывает на тип траектории: оранжевый — левый поворот, пурпурный — правый поворот, красный — мёртвая петля, синий — бочка.

Сравнение с другими моделями

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

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

Обратите внимание, что для этих моделей нельзя сравнивать показатели вознаграждений, поскольку алгоритм SRL может менять систему их получения. Вместо этого авторы измерили, насколько тщательно модель дракона отслеживала траекторию: заданный пользователем и получаемый пути сопоставляются с помощью динамической трансформации временной шкалы (dynamic time warping, DTW).

Заключение

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

С оригинальной статьёй можно ознакомиться на сайте исследовательской лаборатории Сеульского национального университета.

Какой хостинг выбрать для чат-бота?

Какой хостинг выбрать для чат-бота?

Чат-боты — это не всегда такие же сложные и продвинутые программы, как, например, голосовые помощники на основе нейросетей. Тем не...
Read More
Какие проблемы решил новый Личный кабинет REG.RU

Какие проблемы решил новый Личный кабинет REG.RU

Около года назад мы запустили новый Личный кабинет REG.RU. Без преувеличения наши коллеги проделали огромную работу. Этим текстом мы бы...
Read More
Как зарегистрировать домен и не попасть под суд

Как зарегистрировать домен и не попасть под суд

Итак, вы хотите стать владельцем доменного имени. Скорее всего, на этом этапе вас волнуют вопросы, где и как его регистрировать...
Read More
Что такое ЭДО и почему вам нужно подключить его прямо сейчас  

Что такое ЭДО и почему вам нужно подключить его прямо сейчас 

Ещё каких-то 15 лет назад принтеры, факсы и подобное оборудование были неотъемлемой частью любого крупного или небольшого офиса, но постепенно...
Read More
6 трендовых доменных зон для онлайн-бизнеса

6 трендовых доменных зон для онлайн-бизнеса

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

Обучаем виртуального дракона фигурам высшего пилотажа

В наши дни компьютерная графика присутствует во всех популярных видах визуального контента: от видеороликов YouTube-блогеров до полнометражных фильмов. Но проработка...
Read More
Стэнфордский курс: лекция 9. Архитектуры CNN

Стэнфордский курс: лекция 9. Архитектуры CNN

На прошлом уроке мы узнали о наиболее популярных библиотеках и фреймворках для глубокого обучения, рассмотрели их особенности и области применения....
Read More
GPT-2: нейросеть, которая закончит за вас предложение

GPT-2: нейросеть, которая закончит за вас предложение

Встречали ли вы когда-нибудь собеседника, который после нескольких сказанных вами слов заканчивал за вас предложение? GPT-2 умеет и не такое:...
Read More
Жуткие сайты, которые вызовут у вас мурашки

Жуткие сайты, которые вызовут у вас мурашки

Интернет может не только развлекать вас новыми мемами и видеороликами, но и быть по-настоящему пугающим. В честь Хэллоуина представляем несколько...
Read More
10 ингредиентов надёжной инфраструктуры хостинга REG.RU

10 ингредиентов надёжной инфраструктуры хостинга REG.RU

Привет! На связи редакция блога. И сегодня мы расскажем в деталях об одной из сторон инфраструктуры REG.RU, объясним как работает...
Read More