adversarial examples что это
Чернобровов Алексей Аналитик
Как обмануть нейросеть или что такое Adversarial attack
В статье рассмотрено, что такое вредоносное машинное обучение (Adversarial Machine Learning), чем это опасно, где применяется и как отличается от генеративно-состязательных нейросетей. Читайте далее, когда и почему появились AML-методы, как обмануть систему распознавания лиц и какими способами бороться с Adversarial attack.
Что такое Adversarial Machine Learning: определение и история появления
Обычно термин Adversarial Machine Learning (AML) переводят на русский язык как «состязательное машинное обучение», подразумевая целенаправленное воздействие на нейронную сеть, которое способно вызвать ошибки в ее поведении. Поэтому более корректно использовать значение «вредоносное ML», что исключает путаницу с генеративно-состязательными нейросетями (Generative adversarial network, GAN) и подчеркивает негативный характер этого понятия. Первые публикации по теме AML относят к 2004 году. Примерно до 2015 года, пока ML не получило широкого распространения на практике, AML также носило теоретический характер [1]. А в 2013 году Christian Szegedy из Google AI, пытаясь понять, как нейросети «думают», обнаружил общее свойство этого ML-метода: их легко обмануть небольшими возмущениями [2]. Далее идеи AML приобретают популярность после статьи известных DS-специалистов Ian J. Goodfellow, Jonathon Shlens и Christian Szegedy «Explaining and harnessing adversarial examples», опубликованной в 2015 году [3].
Классической иллюстрацией AML-атаки (Adversarial attack) является пример из этой статьи, когда к исходному изображению панды, распознаваемому с вероятностью 57,7 %, подмешивается специальные шум, невидимый человеком, но замечаемый нейросетью. В результате нейронная сеть идентифицирует картинку как изображение гиббона и с вероятностью 99,3 % (рис.1) [3].

В 2017 году исследователи из Массачусетского технологического института (MIT) напечатали на 3D-принтере модель игрушечной черепахи с такой текстурой, что инструмент Google AI для обнаружения объектов классифицировал ее как винтовку. А в 2018 году Google Brain опубликовал обработанное изображение собаки, которая выглядела как кошка, причем как для компьютеров, так и для людей [4].
Полная история AML с истоков по настоящее время изложена в статье «Wild Patterns: Ten Years After the Rise of Adversarial Machine Learning» итальянских исследователей Battista Biggioa и Fabio Rolia. Разумеется, область действия AML не ограничена только машинным зрением и идентификацией изображений, она включает также и задачи распознавания текста, звука, биометрических данных. В частности, именно так можно обойти функцию Face ID в смартфоне iPhone X или других подобных устройствах [1]. Далее мы рассмотрим легальные варианты использования Adversarial Machine Learning, а сейчас поговорим о видах атак на нейросетевые модели, которые могут быть реализованы с помощью этого метода.
Виды и примеры Adversarial attack
Итак, одной из причин появления Adversarial attack считается то, что методы машинного обучения изначально были разработаны для стационарных и безопасных сред, где обучающая и тестовая выборки сгенерированы из одного и того же статистического распределения. Однако, на практике злоумышленники могут тайно манипулировать входными данными, чтобы использовать уязвимости ML-алгоритмов и поставить под угрозу безопасность всей системы машинного обучения. Выделяют 2 вида AML-атак [4]:
Кроме знаний о жертве, основными факторами, которые определяют вид атаки на контролируемые ML-алгоритмы считаются следующие [4]:
Помимо спам-писем и обмана биометрических систем, одном из наиболее ярких кейсов Adversarial attack является воздействие на беспилотные автомобили и другие робототехнические решения. К примеру, для анализа поведения подсистемы машинного зрения автомобиля на ее вход в огромном количестве подаются слегка видоизмененные изображения дорожных знаков. Эксперименты исследователей Принстонского университета показали, что достаточно нанести несложные искажения на знак ограничения скорости, чтобы ML-система считала его за знак обязательной остановки. А внезапное торможение одного автомобиля в плотном потоке машин, движущихся с высокой скоростью чревато авариями и даже человеческими жертвами. С учетом такой потенциальной уязвимости многие компании-разработчики беспилотных авто отреагировали выпуском технологий для предупреждения Adversarial attack. В частности, в 2018 году корпорация Nvidia, сотрудничающая с Mercedes-Benz, опубликовала отчет SELF-DRIVING SAFETY REPORT, где описаны прилагаемые инфраструктурные решения для защиты беспилотных машин. Производители самолетов предлагают распространить на автомобили технологии типа Communication Lockdown (блокировка коммуникаций), которой укомплектованы истребители F-35I и F-16I. Тем не менее, в области беспилотных машин пока не существует готовых решений для противодействия искажающих атакам, поэтому эти потенциальные угрозы остаются важнейшим фактором, который тормозит практическое внедрение автономных автомобилей в повседневную жизнь [1].
Еще одним иллюстративным примером AML-атак является уязвимость алгоритмов кластеризации, которые используются для обнаружения опасных или незаконных действий. Например, кластеризация вредоносных программ и компьютерных вирусов направлена на их выявление, классификацию и создание конкретных сигнатур для обнаружения антивирусами или системами обнаружения вторжений. Однако, изначально эти алгоритмы не были разработаны для борьбы с преднамеренными попытками атак, которые могут нарушить сам процесс кластеризации [4].
Как защититься от AML-атаки: подходы к обучению нейросетей и оценка безопасности
Высокие риски AML-атак привели к появлению предложений о пересмотре подходов к обучению нейросетей. В 2019 году ученые из MIT показали, что случайный на первый взгляд шум, который путает ML-модель, на самом деле задействует очень точечные, едва заметные паттерны, ассоциированные с конкретными объектами. Это означает, что ML-система не просто обнаруживает гиббона там, где человек видит панду, а выявляет закономерное расположение пикселей, незаметное человеку, которое во время обучения чаще всего появлялось на снимках с гиббонами, чем на изображениях панд. Исследователи провели эксперимент, создав датасет с изображениями собак, которые были изменены так, что стандартный классификатор изображений ошибочно идентифицировал их как кошек. Далее они пометили эти изображения «котами» и использовали их для обучения новой нейросети. Затем обученной ML-модели были предъявлены реальные изображения кошек, и она идентифицировала их правильно. Поэтому экспериментаторы предположили, что в каждом наборе данных есть два типа корреляций [5]:
Таким образом, чтобы снизить риск Adversarial attack, следует изменить способ обучения ML-моделей, контролируя корреляционные паттерны, которые нейросеть использует для идентификации объектов на изображении. Это возможно при обучении на концптуальных шаблонах, которые связаны с самим смыслом идентифицируемого объекта. Проверив эту идею с использованием только реальных корреляции для тренировки ML-моделей, исследователи из MIT получили обнадеживающие результаты: нейросеть поддалась атаке только в 50% случаев, тогда как модель, обученная на реальных и ложных корреляциях, поддавалась манипуляциям в 95% случаев [5].
Однако, повышение качества обучающей выборки недостаточно, чтобы полностью устранить риски Adversarial attack. Чтобы понять уровень безопасности ML-алгоритмов, необходим комплексный подход, включая следующие меры [4]:
Этот комплекс мероприятий представляет собой проактивную гонку вооружений, когда разработчик пытается предугадать намерения и действия противника, чтобы заранее устранить потенциальные уязвимости. Также имеет место реактивная гонка вооружений, при которой разработчик анализирует уже совершенную атаку и противодействует ей (рис.2).

На сегодняшний день в области прикладной Data Science наиболее популярны следующие механизмы защиты от Adversarial attack [4]:
Также выделяют методы эмпирической защиты от AML-нападений, эффективность которых испытывается и подтверждается на практике [2]:
Некоторые из вышерассмотренных методов доступны в следующих AML-библиотеках [4]:
Где используется AML: несколько практических примеров
Классическими кейсами применения методов Adversarial attack считаются следующие [4]:

Другим интересным примером является соревнования по машинному зрению (Machines Can See), в которых требовалось изменять лица людей так, что сверточная нейросеть (черный ящик от организаторов), не могла различить лицо-источник от лица-цели (рис.4). При этом были использованы следующие методы: Fast Gradient Sign Method (FGSM), Fast Gradient Value Method (FGVM), Genetic differential evolution, попиксельные атаки, Ансамбли моделей с несколькими ResNet34 и «умный» обход комбинаций целевых изображений [8].

Аналогичная генерация человеческих лиц описана в статье про манипуляции с биометрическими изображениями, когда изучение способов обмана биометрических систем позволит повысить эффективность борьбы с подобными атаками. К примеру, экспериментальные исследования показали, что предсказание модели распознавания лиц напрямую зависит от параметров ML-модели и расположения опорных точек на входном изображении. Манипуляции с ними посредством градиента предсказания по отношению к входному изображению сильно влияют на предсказания классификатора распознавания лиц (рис. 5) [9].


Однако, камуфляжный макияж сработает только в случае тех систем, которые ориентируются на анализ плоских изображений с помощью обычных видеокамер дневного света. В случае инфракрасных устройств видеонаблюдения косметика не поможет, поскольку они отражают инфракрасные лучи от человека и создают трехмерную карту всего лица. В частности, технология FaceID распознаёт лицо в любом макияже. Впрочем, исследователи Фуданьского университета в Китае, Китайского университета Гонконга и Университета Индианы по заказу корпорации Alibaba разработали инфракрасные светодиоды, которые крепятся к кепке и засвечивают человеческое лицо. Это позволить скрыться даже от инфракрасных камер. Причем светодиоды помогают не только скрыть лицо, но и притвориться другим человеком, подсвечивая нужные опорные точки. Эксперимент показал, что камеры удалось обмануть в 70% случаев. Аналогичное решение представил Токийский национальный институт информатики в виде очков со встроенным инфракрасными светодиодами, которые засвечивают глаза и нос человека. Однако, они не смогут обмануть камеры, на которые регистрируют видимый, а не инфракрасный свет [10]. Кроме того, вопрос об удобстве пользования таким аксессуаром остается открытым: человеческий глав очень чувствителен к яркому свету и долго носить его не получится.

Некоторые активисты создают специальные аксессуары, например, фотореалистичная 3D-маска от американского художника Леонардо Сельваджио (Leonardo Selvaggio) или польского дизайнера Эвы Новак (Ewa Nowak), которые также ориентированы на обман городских систем видеонаблюдения с функцией распознавания лиц (рис. 8) [10]. Впрочем, прогресс не стоят на месте и подобное протестное движение можно рассматривать как своего рода Adversarial attack на ML-алгоритмы распознавания, которые в конечном счете выступают драйвером дальнейшего развития этой технологии.
Рис.8. 3D-маска Леонардо Сельваджио и аксессуары Эвы Новак для обмана систем распознавания лиц
Заключение
Итак, с учетом роста интереса к Deep Learning, распространению биометрических систем в частности и ML в целом, а также популяризации автономных машин (роботы, автомобили, беспилотные летающие аппараты), можно сделать вывод, что проблема AML еще долго будет актуальной. Поэтому при подготовке данных к моделированию и разработке собственных нейросетевых моделей Data Scientist должен оценивать их уязвимость к возможным атакам, принимая соответствующие контрмеры.
Как мы боремся с копированием контента, или первая adversarial attack в проде
Вы знали, что платформы для размещения объявлений часто копируют контент у конкурентов, чтобы увеличить количество объявлений у себя? Они делают это так: обзванивают продавцов и предлагают им разместиться на своей платформе. А иногда и вовсе копируют объявления без разрешения пользователей. Авито — популярная площадка, и мы часто сталкиваемся с такой недобросовестной конкуренцией. О том, как мы боремся с этим явлением, читайте под катом.
Проблема
Копирование контента с Авито на другие платформы существует в нескольких категориях товаров и услуг. В этой статье речь пойдет только про автомобили. В предыдущем посте я рассказал, о том как мы делали автоматическое скрытие номера на автомобилях.
Но получилось (судя по поисковой выдаче других платформ), что мы запустили эту фичу сразу на трёх сайтах объявлений.
Один из этих сайтов после запуска фичи на время приостановил обзвон наших пользователей с предложениями скопировать объявление на их платформу: контента с логотипом Авито на их площадке стало слишком много, только за ноябрь 2018 года — более 70 000 объявлений. Например, вот так выглядела их поисковая выдача за сутки в Чеченской республике.
Дообучив свой алгоритм скрытия номерных знаков, чтобы он автоматически детектил и закрывал логотип Авито, они возобновили процесс.
С нашей точки зрения копирование контента конкурентов, использование его в коммерческих целях — неэтично и неприемлемо. Мы получаем жалобы от наших пользователей, которые недовольны этим, в нашу поддержку. А вот пример реакции в одном из сторов.
Надо сказать, что запрос согласия людей на копирование объявлений не оправдывает подобные действия. Это нарушение законов «О рекламе» и «О персональных данных», правил Авито, прав на товарные знаки и базу данных объявлений.
Мирно договориться с конкурентом нам не удалось, а оставлять ситуацию как есть мы не хотели.
Способы решения проблемы
Первый способ — юридический. Похожие прецеденты уже были в других странах. Например, известный американский классифайд Craigslist отсудил крупные суммы денег у копирующих с него контент сайтов.
Второй способ решения проблемы копирования — добавление большой вотермарки на изображение так, чтобы её нельзя было обрезать.
Третий способ — технологический. Мы можем затруднить процесс копирования нашего контента. Логично предположить, что скрытием логотипа Авито у конкурентов занимается какая-то модель. Также известно, что многие модели подвержены «атакам», которые мешают им работать корректно. В этой статье речь пойдёт как раз про них.
Adversarial attack
В идеале adversarial example для сети выглядит как шум, неразличимый человеческим глазом, но для классификатора он добавляет достаточный сигнал отсутствующего на картинке класса. В итоге картинка, например, с пандой, с высокой уверенностью классифицируется как гиббон. Создание adversarial шума возможно не только для сетей классификации картинок, но также для сегментации, детекции. Интересный пример — недавняя работа от Keen Labs: они обманули автопилот Tesla точками на асфальте и детектор дождя с помощью отображения как раз такого adversarial шума. Также атаки есть для других доменов, например, звука: известная атака на Amazon Alexa и другие голосовые ассистенты заключалась в проигрывании неразличимых человеческим ухом команд (взломщики предлагали купить что-то на Amazon).
Создание adversarial шума для моделей, анализирующих картинки, возможно благодаря нестандартному использованию градиента, необходимого для обучения модели. Обычно в методе обратного распространения ошибки с помощью вычисляемого градиента целевой функции изменяются только веса слоёв сети, чтобы она меньше ошибалась на обучающем датасете. Так же, как для слоёв сети, можно вычислить градиент целевой функции по входному изображению и изменить его. Изменение входного изображения с помощью градиента применялось для разных известных алгоритмов. Помните Deepdream?
Если мы итеративно вычислим градиент целевой функции по входному изображению и добавим этот градиент к нему, в изображении появится больше информации о превалирующем классе из ImageNet: появляется больше мордочек собак, благодаря чему уменьшится значение лосс функции и модель становится уверенней в классе «собака». Почему в примере именно собаки? Просто в ImageNet из 1000 классов — 120 классов собак. Схожий подход к изменению изображения использовался в алгоритме Style Transfer, известном в основном благодаря приложению Prisma.
Для создания adversarial example тоже можно использовать итеративный метод изменения входного изображения.
У этого метода существует несколько модификаций, но основная идея проста: исходное изображение итеративно сдвигается в направлении градиента лосс функции классификатора J (потому что используется только знак — sign) с шагом α. ‘y’ — класс, который представлен на изображении, чтобы уменьшить уверенность сети в правильном ответе. Такая атака называется non targeted. Можно подобрать оптимальный шаг и количество итераций, чтобы изменение входного изображения было неотличимо от обычного для человека. Но с точки зрения временных затрат такая атака нам не подходит. 5-10 итераций для одной картинки в проде — это долго.
Альтернативой итеративным методам является метод FGSM.
Это синглшот метод, т.е. для его применения нужно один раз посчитать градиент лосс функции по входному изображению, и adversarial шум для добавления к картинке готов. Такой метод очевидно производительнее. Его можно применить в продакшене.
Создание adversarial examples
Начать мы решили с взлома нашей собственной модели.
Так выглядит картинка, которая уменьшает вероятность нахождения номерного знака для нашей модели.
Видно что у этого метода есть недостаток: изменения, которые он добавляет в картинку, заметны глазу. Также этот метод non targeted, но его можно изменить, чтобы сделать направленную атаку. Тогда модель будет предсказывать место для номерного знака в другом месте. Это метод T-FGSM.
Для того, чтобы этим методом сломать нашу модель, нужно уже чуть заметнее изменить входное изображение.
Пока нельзя сказать, что результаты идеальны, но хотя бы проверена работоспособность методов. Также мы пробовали готовые библиотеки для взлома сетей Foolbox, CleverHans и ART-IBM, но с их помощью не получилось сломать нашу сеть для детекции. Методы, приведенные там, подходят для классификационных сетей лучше. Это общая тенденция во взломе сетей: для object detection сделать атаку сложнее, особенно если речь идёт о сложных моделях, например, Mask RCNN.
Тестирование атак
Всё, что пока описывалось, не выходило дальше наших внутренних экспериментов, но надо было придумать, как тестировать атаки на детекторах других платформ подачи объявлений.
Оказывается, при подаче объявлений на одну из платформ детекция номерного знака происходит автоматически, так что можно много раз загружать фото и проверять, как алгоритм детекции справляется с новым adversarial example.
Это отлично! Но…
Ни одна из сработавших на нашей модели атак не сработала при тестировании на другой платформе. Почему так произошло? Это следствие различий в моделях и того, насколько плохо обобщаются adversarial attacks на разные архитектуры сетей. Из-за сложности воспроизведения атак их делят на две группы: white box и black box.
Те атаки, которые мы делали на свою модель, — это был white box. То, что нам нужно — это black box с дополнительными ограничениями на инференс: API нет, всё что можно сделать — это вручную загружать фото и проверять атаки. Если бы был API, то можно было сделать substitute model.
Идея заключается в создании датасета входных изображений и ответов black box модели, на которых можно обучить несколько моделей разных архитектур, так чтобы аппроксимировать black box модель. Тогда можно провести white box атаки на эти модели и они с большей вероятностью сработают на black box. В нашем случае это подразумевает много ручной работы, поэтому такой вариант нам не подошёл.
Выход из тупика
В поисках интересных работ на тему black box атак была найдена статья ShapeShifter: Robust Physical Adversarial Attack on Faster R-CNN Object Detector
Авторы статьи делали атаки на object detection сети self-driving машин с помощью итеративного добавления изображений, отличных от истинного класса, в фон стоп-знака.
Такая атака хорошо заметна человеческому глазу, тем не менее, она успешно ломает работу object detection сети, что нам и требуется. Поэтому мы решили пренебречь желаемой невидимостью атаки в угоду работоспособности.
Мы захотели проверить, насколько модель детекции переобучена, использует ли она информацию об автомобиле, или нужна только плашка Авито?
Для этого создали такое изображение:
Загрузили его как машину на платформу объявлений с black box моделью. Получили:
Значит, можно изменять только плашку Авито, остальная информация во входном изображении не является необходимой для детекции модели black box.
После нескольких попыток возникла идея добавления в плашку Авито adversarial шума, полученного методом FGSM, который ломал нашу собственную модель, но с довольно большим коэффициентом ε. Получилось так:
На машине это выглядит так:
Загрузили фото на платформу с black box моделью. Результат оказался успешным.
Применив этот способ к нескольким другим фотографиям, мы выяснили, что он срабатывает не часто. Тогда после нескольких попыток мы решили сосредоточиться на другой самой заметной части номера — границе. Известно, что начальные сверточные слои сети имеют активации на простых объектах вроде линий, углов. «Сломав» линию границы, мы сможем помешать сети корректно обнаружить область номера. Сделать это можно, например, добавив шум в виде белых квадратов случайного размера по всей границе номера.
Загрузив такую картинку на платформу с black box моделью, мы получили успешный adversarial example.
Попробовав этот подход на наборе других картинок, мы выяснили, что black box модель больше не может задетектить плашку Авито (набор собирался вручную, там меньше сотни картинок, и он, разумеется, не репрезентативен, но сделать больше требует много времени). Интересное наблюдение: атака успешна только при комбинировании шума в буквах Avito и рандомных белых квадратов в рамке, использование этих способов по отдельности не даёт успешного результата.
В итоге мы выкатили этот алгоритм в прод, и вот что из этого вышло 🙂
Несколько найденных объявлений
Мы даже попали в рекламу платформы:
Итого
В итоге у нас получилось сделать adversarial attack, которая в нашей имплементации не увеличивает время обработки изображения. Время, которое мы потратили на создание атаки — две недели перед Новым годом. Если бы не получилось за это время её сделать, то разместили бы вотермарку. Сейчас adversarial номерной знак отключен, потому что теперь конкурент звонит пользователям, предлагает им самим загружать фотографии в объявление или заменяет фото машины на стоковые из интернета.








