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

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

В наши дни компьютерная графика присутствует во всех популярных видах визуального контента: от видеороликов 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).

Здесь 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 к общим задачам регулируемого обучения, в которых не обязательно используется генерация подзадач. Что касается полётов — планируется улучшить гибкость, адаптируемость и управляемость виртуальной модели. Авторы надеются, что их дракон сможет приспосабливаться к изменениям нагрузки, ветра и других форм возмущений. Также было бы интересно поработать с другими экзотическими существами с необычными формами туловища и крыльев.

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

Какие показатели нужно отслеживать новому бизнесу? 10 главных метрик

Полный список финансовых показателей, которые нужно учитывать при запуске и развитии бизнеса. С формулами, комментариями и понятными примерами расчета. (далее…)
Read More

Драма Microsoft и Apple: от вражды до сотрудничества

Техногиганты всё время своего существования судились, обменивались колкостями и пытались обогнать друг друга по уровню новаторства в разработках. Наши коллеги...
Read More

Как компании меняли свой бренд из-за испорченной репутации: три кейса

В бизнесе нет страховки от ошибок — любой промах отражается на репутации. И иногда исправить ситуацию может только ребрендинг и...
Read More

Запускаем email-рассылку: как не попасть в спам при отправке писем

В статье рассказываем, почему рассылки попадают в спам, и делимся советами, как сделать так, чтобы письма всегда доставлялись до адресатов....
Read More

Ключ к успешному продвижению: что такое SMM-стратегия и как ее составить

Разберем, что такое SMM-стратегия, зачем она нужна и как эффективно использовать социальные сети для решения бизнес-задач. (далее…)
Read More

Новогодний маркетинг: лучшие приемы праздничной рекламы

Для бизнеса Новый год и Рождество — время всплеска продаж и увеличения прибыли. А способствуют этому всем знакомые персонажи: от...
Read More

Россияне предпочитают .ru вместо .com, а Дональд Трамп проиграл доменный спор за mar-a-lago.com

Рассказываем самые интересные новости доменного мира. (далее…)
Read More

Прокрастинация: что такое, виды и как бороться

Прокрастинатор полон идей и амбиций, но ему часто не хватает самодисциплины и силы воли, чтобы начать действовать. Что заставляет нас...
Read More

Что нужно покупателям в 2024: 5 трендов электронной коммерции

Ежегодно рынок e-commerce в России растет на треть, а в 2024 году, по прогнозам экспертов, его оборот составит более 7,2...
Read More

Гайд: стильный интернет-магазин на WordPress с помощью двух инструментов

Онлайн-торговля растет на 40-50% в год, поэтому открыть свой интернет-магазин никогда не поздно. Для старта не понадобятся знания HTML и...
Read More