e
В наши дни компьютерная графика присутствует во всех популярных видах визуального контента: от видеороликов YouTube-блогеров до полнометражных фильмов. Но проработка сложных движений трёхмерных моделей обычно требует немало времени и сил. В этой ситуации на помощь создателям визуальных эффектов могут прийти нейросети. Рассказываем о работе учёных из Сеульского национального университета, которые смогли обучить летающего виртуального дракона пилотажным манёврам с помощью саморегулируемой модели машинного обучения.
В кино и анимационных фильмах летающие существа часто выполняют высокодинамичные воздушные трюки. Они позволяют заворожить зрителя и держать его в напряжении — вспомните хотя бы мультфильм «Как приручить дракона». Основные пилотажные навыки включают в себя быстрое вращение вокруг трёх главных осей (тангаж, рыскание, крен) и различные последовательности манёвров.
Смоделировать такие манёвры, основываясь на прямом физическом методе, очень сложно — потребуется чрезвычайно умелый контроль. Обычно для создания трюков используется образцовые движения, например, живого актёра или реального объекта. На этапе компьютерной обработки их движения преобразуются в поведение нового существа — например, дракона. При этом, если требуемый объект сильно отличается от реального, результат может получиться не очень хорошим. Кроме того, существо, будь то дракон или птица, остаётся в неустойчивом равновесии большую часть времени полёта. И чтобы всё сломать, достаточно совсем малого возмущения. Особенно трудно будет с непрерывно выполняемыми манёврами.
Не так давно неплохой потенциал в создании основанной на физике анимации показало обучение с подкреплением (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-модель обучалась пилотажным манёврам различной сложности: от простых в освоении до сложных экстремальных трюков (показаны на рисунке). По трудности задачи разделены на начальный, средний и экспертный уровни, на каждом из которых изучался контроль поведения.
Начальный уровень (прямой полёт, мёртвая петля, вираж) включает в себя один (или ни одного) быстрый поворот вокруг одной оси. Средний уровень (XY-поворот, двойная мёртвая петля, восьмёрка) — один или два быстрых поворота в перпендикулярных осях. Экспертный уровень (бочка, зигзаг, бесконечная мёртвая петля, комбинированный поворот) — комбинация нескольких поворотов вокруг всех осей, парение, пикирование и бортовая качка. Процесс обучения занимает от 3 до 7, от 10 до 24 и от 24 до 48 часов для начального, среднего и экспертного уровней соответственно.
Визуализация SRL
На верхней части рисунка показано, как работает саморегуляция. Векторы вдоль траектории даны для сравнения. Зелёные соответствуют идеальным заданным значениям, красные — полученным в результате обучения. На прямой линии саморегулируемые векторы практически идентичны заданным пользователем (первые две пары на рисунке). В изогнутом месте видно, что красные векторы наклоняются в сторону — модель смогла скорректировать угол крена, чтобы выполнить заданный манёвр. В нижней части рисунка показана саморегуляция трюка «зигзаг».
Интерактивная траектория полёта
Пользователь может самостоятельно задавать траектории, собирая их из отдельных частей (манёвров). На рисунке ниже показан пример. Цвет указывает на тип траектории: оранжевый — левый поворот, пурпурный — правый поворот, красный — мёртвая петля, синий — бочка.
Сравнение с другими моделями
Чтобы оценить эффективность, исследователи сравнили свой метод с двумя версиями этого же алгоритма без саморегулируемого обучения. Первая версия (базовая) использовала фиксированные значения поворота и перемещения. Число, на которое увеличивался параметр прогресса после успешных итераций, задавалось по умолчанию. Во второй версии (ближайшая) параметр прогресса обновлялся таким образом, что ближайшая от дракона точка на траектории использовалась в качестве подзадачи в каждый момент времени.
В таблице приведено сравнение моделей. Для оценки применялись средние значения расстояния между пользовательской и симулированной траекториями (чем меньше, тем лучше). В скобках также указаны максимальные значения. Наименьшее число для каждого манёвра выделено жирным шрифтом. Звёздочка означает, что навык был освоен успешно.
Обратите внимание, что для этих моделей нельзя сравнивать показатели вознаграждений, поскольку алгоритм SRL может менять систему их получения. Вместо этого авторы измерили, насколько тщательно модель дракона отслеживала траекторию: заданный пользователем и получаемый пути сопоставляются с помощью динамической трансформации временной шкалы (dynamic time warping, DTW).
В дальнейшем исследователи хотят изучить возможность применения SRL к общим задачам регулируемого обучения, в которых не обязательно используется генерация подзадач. Что касается полётов — планируется улучшить гибкость, адаптируемость и управляемость виртуальной модели. Авторы надеются, что их дракон сможет приспосабливаться к изменениям нагрузки, ветра и других форм возмущений. Также было бы интересно поработать с другими экзотическими существами с необычными формами туловища и крыльев.
С оригинальной статьёй можно ознакомиться на сайте исследовательской лаборатории Сеульского национального университета.
Чтобы легально пользоваться результатами чужого труда в своем бизнесе, нужно за это заплатить. И неважно,…
Франшизы предоставляют предпринимателям возможность использовать популярные бренды, эффективные бизнес-модели и поддержку со стороны материнской компании.…
Некоторые компании сосредотачивают в своих руках и производственные мощности, и права на то, что на…
У любой компании есть адрес, по которому она «прописана», то есть зарегистрирована в ЕГРЮЛ. Но…
Подросток может заниматься бизнесом, но с учетом важных условий, прописанных в законе. Разбираемся, как несовершеннолетнему…
Ежедневно по морю перевозят десятки, а то и сотни тысяч контейнеров с грузами. Чтобы партия…