Исследователи из США и Канады разработали алгоритм глубокого обучения с подкреплением для виртуальных персонажей, выполняющих сложные движения на основе примеров, в том числе и записей движения настоящих людей. Алгоритм не просто может в точности повторить пример, а учится движению и может впоследствии подстраивать его под изменения окружающей среды или строения тела, сообщается на сайте Калифорнийского университета в Беркли. Разработчики показали, как обученные таким образом персонажи выполняют движения из боевых единоборств и спорта или перемещаются в сложной обстановке. Разработка будет представлена на конференции SIGGRAPH 2018, статья опубликована на arXiv.org.
В современной компьютерной графике для фильмов или игр используются виртуальные персонажи, которые имитируют движения человека или животных. Как правило, они могут либо в точности воспроизводить заданные последовательности действий либо допускают некоторую вариативность, но в таком случае заточены под конкретную задачу и плохо адаптируются к ее изменению или изменению среды. В качестве решения этой проблемы ведущие исследователи предлагают использовать машинное обучение для создания персонажей, которые учатся подобно людям и обладают способностью адаптироваться к разным ситуациям.
Группа исследователей под руководством Мишеля Ван де Панне (Michiel van de Panne) из Университета Британской Колумбии разработала алгоритм DeepMimic для обучения сложным движениям, выполняемым людьми или животными. Разработчики выбрали метод обучения с подкреплением, который часто применяется для решения подобных задач. Его суть заключается в том, что управляемый алгоритмом агент находится в среде и, выполняя различные действия, может получать за них награду. Таким образом, путем проб и ошибок он учится выполнять последовательность действий, приводящую к наибольшей награде и тем самым постепенно приближается к нужному создателям результату.
Для обучения исследователи создали гуманоидного виртуального персонажа и задавали движения-примеры, которые он должен был научиться выполнять. Эти движения могут быть как созданы искусственно, так и сняты с помощью захвата движений людей. Каждое такое движение-пример разбивается на множество промежуточных состояний. Функция вознаграждения алгоритма зависит от разницы между положением персонажа в примере и положением агента во время очередной попытки. Исследователи показали, как этот метод позволил научить алгоритм выполнять множество сложных движений, причем даже при изменении окружающей среды, внешних воздействиях или изменении строения агента:
Помимо функции вознаграждения в основе успеха разработанного алгоритма лежит два основных принципа. Обычно при обучении с подкреплением алгоритм выполняет случайные последовательности действий и получает оценку совершенных действий. Но в случае со сложными движениями, такими как сальто назад, вероятность того, что персонаж случайно сделает такое движение крайне мала. Соответственно, он просто не будет знать, что необходимая последовательность действий приводит к получению большой награды. Разработчики решили упростить задачу обучения, изменив начальные условия при каждом цикле тренировки. Алгоритм начинает выполнять последовательность действий не из одного и того же момента движения-образца, а из случайных, например, в середине сальто. Таким образом он получает данные о том, какие движение приводят к получению большой награды еще до того, как он научился доходить до этого движения из начальной точки, в данном случае из положения стоя.
Второй принцип, позволяющий эффективно обучать алгоритм, заключается в раннем прерывании неудачных циклов обучения. Если раннего прерывания нет, то после неудачной попытки выполнить задачу персонаж может практически неограниченное время пытаться продолжить выполнение. К примеру, после неудачного сальто он может упасть на спину и безуспешно пытаться встать или заново выполнить прыжок, но уже из положения сидя. Помимо времени обучения это означает, что датасет, собираемый во время обучения будет в основном наполнен именно такими примерами. Для того, чтобы этого не происходило, исследователи предложили задавать критические условия. В случае с выполнением сальто этими условиями могут быть касания пола спиной или головой — этого просто не может произойти при правильном выполнении такой задачи.
В прошлом году другая группа исследователей под руководством Мишеля Ван де Панне представила алгоритм DeepLoco, который также основан на обучении с подкреплением. Он был адаптирован для обучения двуногих виртуальных персонажей ходьбе и некоторым более сложным движением, например, с его помощью агенты научились пинать мяч к цели.
Григорий Копиев
На взлом одного смартфона ушло от 40 минут до 13 часов
Китайские ученые нашли в смартфонах шести крупных компаний (Samsung, Xiaomi, HUAWEI, Vivo, OnePlus, OPPO) уязвимости, которые позволяют взломать сканер отпечатков пальцев. Им удалось получить бесконечное количество попыток для разблокировки смартфонов, создать много искусственных отпечатков с помощью нейросетей и подобрать подходящий для разблокировки. Препринт доступен на arXiv.org. Аутентификация с помощью отпечатка пальца в смартфонах состоит из 4 этапов. Первый этап — это получение отпечатка. Когда палец касается сенсора, он делает несколько изображений отпечатка. Затем идет этап компенсации: чтобы улучшить качество изображений, с них удаляется шум. На следующем этапе алгоритмы проверяют текстуры, нажим и форму отпечатка. Их цель — отличить отпечаток настоящего человеческого пальца от, например, отпечатка пальца силиконовой руки. Хакеры могут использовать искусственные пальцы из разных материалов, чтобы взломать смартфон. На последнем этапе аутентификации полученный отпечаток сравнивается с правильным отпечатком из базы данных. В отличие от паролей, система не проверяет полное соответствие двух отпечатков. Вместо этого полученному отпечатку достаточно преодолеть заданный порог сходства с правильным. Если пробовать много разных отпечатков, один из них рано или поздно перейдет этот порог. Поэтому у сканеров отпечатков пальцев есть дополнительный метод усиления безопасности — это ограничение количества попыток. После нескольких безуспешных попыток зайти в смартфон система блокирует доступ. Китайские инженеры Чен Ю (Chen Yu) из компании Tensent и Хе Илинь (He Yiling) из Чжэцзянского университета придумали алгоритм BrutePrint, который может обмануть сканер отпечатков пальцев методом полного перебора. Они обнаружили две уязвимости Cancel-After-Match-Fail (CAMF) и Match-After-Lock (MAL), благодаря которым можно делать сколько угодно попыток аутентификации по отпечатку, а иногда и похитить отпечаток пальца пользователя, который хранится на смартфоне. Уязвимость CAMF основана на том, что за одну попытку аутентификации сканер обычно делает сразу несколько изображений отпечатков. Если убедить сканер, что множество разных изображений были сделаны за одну попытку, то можно пробовать бесконечно много отпечатков. Дело в том, что сканер может сделать три вывода по одному изображению: на нем правильный отпечаток, на нем неправильный отпечаток или в ходе сканирования случилась ошибка. Например, что-то произошло с оборудованием и вызвало сбой в программе. В случае такой ошибки попытка не заканчивается. Система BrutePrint нарушает контрольную сумму изображения отпечатка, которая как раз приводит к этой ошибке. Другая уязвимость MAL помогает обойти режим блокировки доступа после превышения числа неправильных попыток. В некоторых смартфонах во время выхода экрана из спящего режима режим блокировки доступа не работает. Этого хватает, чтобы внедриться в систему и запустить попытки доступа к сканеру отпечатков. Кроме того, в процессе сравнения отправленных отпечатков с правильными, которые хранятся в смартфоне, можно их похитить. Главный этап атаки — внедриться в систему сканирования и начать посылать ей изображения отпечатков, используя уязвимости CAMF и MAL. Для этого инженеры собрали систему, которая может перехватывать и менять сигнал между сканером отпечатков пальцев и процессором смартфона. В смартфоне сканер и процессор соединены интерфейсом, и атакующая система имитирует этот интерфейс: она тоже соединяется со сканером и процессором. В систему также входит карта памяти, на которой хранятся заранее подготовленные отпечатки пальцев для перебора. Авторы утверждают, что итоговая стоимость всех компонентов составила всего 15 долларов. Базу данных отпечатков для перебора можно собрать самостоятельно или найти в открытых источниках: научных исследованиях или утечках данных. Авторы сами сгенерировали данные для перебора. Важная часть атаки — это предобработка отпечатков, чтобы они выглядели реалистично и подходили для сенсора в конкретном смартфоне. Инженеры использовали нейросеть CycleGAN, которая умеет менять стиль изображения. Для эксперимента с каждым смартфоном авторы обучали нейросеть редактировать отпечатки, чтобы они были похожи на отпечатки с его сенсора. Инженеры провели десять экспериментов с разными смартфонами. Уязвимость CAMF сработала на всех моделях, но по-разному. Авторам удалось получить неограниченное количество попыток разблокировки на всех смартфонах с операционной системой Android и только 15 попыток на iOS. Кроме того, на айфонах ученым не удалось перехватить сигнал между процессором и сканером отпечатков пальцев. Дело в том, что iOS всегда шифрует этот сигнал, в отличие от Android. В итоге сканер не удалось взломать только на смартфонах компании Apple. На взлом остальных гаджетов ушло от 40 минут до 13 часов. Ученым также удалось похитить оригинальные отпечатки пальцев пользователей со всех смартфонов на платформе Android. Авторы предлагают несколько методов, которые помогут производителям смартфонов сделать сканеры отпечатков пальцев безопасней. Во-первых, избавиться от уязвимости CAMF: для этого нужно добавить проверку на количество ошибочных попыток, которые не дошли до этапа сравнения с правильным отпечатком. Чтобы устранить уязвимость MAL, нельзя отменять блокировку доступа. Наконец, нужно шифровать сигналы, которыми обмениваются сканер и процессор. Сканер отпечатков пальцев — не единственная система разблокировки, которую можно взломать. Вьетнамским инженерам удалось обмануть Face ID в iPhone X с помощью маски. Ее распечатали на 3D-принтере, налепили на нее нос и приклеили изображения губ и глаз. Сканер Face ID принял маску за настоящее лицо.