Вредные советы: Как обмануть нейронную сеть

Создатели продвинутых интеллектуальных систем часто продвигают свои разработки как эффективную замену «живым» сотрудникам. Умные камеры никогда не отвлекаются и мгновенно распознают сотни лиц в кадре. Онлайн-помощники могут перерыть Интернет, чтобы найти ответ на поставленный вопрос. Неужели сбылись предсказания из «Приключений Электроника», и человек может окончательно доверить скучные задачи нейронным сетям? Разумеется, нет — иначе зачем бы мы начинали этот разговор.

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

Курс по Machine Learning
Идет набор в группу 3 800₽ в месяц

Не верь глазам своим

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

Разумеется, компьютер не знает, кто такие панды, а только определяет на картинке группы пикселей, которые с высокой долей вероятности соответствуют бамбуковым медведям. Именно здесь и кроется уязвимость — если знать, какие пиксели определяют положительное решение, можно заставить искусственный интеллект ошибиться. Такая обманная картинка будет называться «конкурирующим образцом» (adversarial example).

Примечательно, что подобное вмешательство может быть незаметным человеческому глазу. Ниже можно увидеть реальный пример из исследования Explaining and Harnessing Adversarial Examples, откуда мы и позаимствовали пример с пандами. На первом кадре исходное фото, где нейросеть правильно определяет животное. На втором вы видите специальный шум, который выполняет роль маски. Накладываем его на первоначальную картинку — и вот программа называет панду гиббоном (кадр №3), хотя для человека разницы между этими картинками практически нет.

Почему лгут роботы

Чтобы понять механику явления, вспомним, как программа определяет положительные и отрицательные результаты. Когда в процессе обучения наша нейросеть запоминала фото по принципу «панда — не панда», какие-то объекты оказывались ближе к границе принятия решений, чем другие. Ниже представлено схематическое распределение результатов — зеленые точки соответствуют «пандам», красным отмечены «не панды».

Источник — Adam Geitgey

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

Источник — Adam Geitgey

Обратите внимание, что система определила ложного гиббона с гораздо большей уверенностью, чем реальную панду (99,3% против 57,7%). Дело в том, что для искусственного интеллекта наложенный на кадр шум — то же самое, что для человека надпись «ЭТО ПАНДА» поперек экрана.

Поскольку даже небольшая картинка состоит из десятков тысяч пикселей, злоумышленник легко может распределить измененные точки по всей площади изображения. Тогда деформированные области не бросятся в глаза. Более того, можно на программном уровне ограничить масштаб изменений на один пиксель — например, не более 0,01%. Пользователь не заметит разницу, а нейросеть, которая воспринимает фото целиком, увидит абсолютно новую иллюстрацию. 

К чему приводит ложь

Увы, способ обмануть робота может заинтересовать не одних только ученых. Тем более, что с каждым годом задачи нейронных сетей становятся все богаче. Представьте себе умный банкомат, который примет нарисованные от руки купюры за настоящие. Или онлайн-сервис, позволяющий пользователям загружать недопустимый контент. Или систему видеораспознавания, которая посчитает одного человека за другого или вовсе проигнорирует постороннего на закрытой территории. Последний пример — это реальный пример из опыта очередных исследователей. Они соорудили специальную маску, позволяющую проходить неузнанным мимо интеллектуальных камер. 

Маска-невидимка XXI века. Источник — Accessorize to a Crime: Real and Stealthy Attacks on State-of-the-Art Face Recognition.

Умные автомобили тоже в зоне риска. Их автопилот можно обмануть, наклеив специальные метки на дорожные знаки или разметку. В результате машина проигнорирует «СТОП» перед оживленным перекрестком, подвергнув риску жизнь своего водителя и других участников движения. Как и в случае с пандой-гиббоном, человеческий глаз не заметит в таком знаке ничего необычного.

Автопилот увидит на правом знаке ограничение скорости. Источник — Robust Physical-World Attacks on Deep Learning Visual Classification.

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

Советы разработчикам

Скажем прямо — при сегодняшнем развитии технологий метод конкурирующих образцов позволяет обмануть любую нейросеть. Можно ли как-то защитить свою систему от подобных атак, снизить вероятность ложноположительных результатов? Да, для этого есть две технологии.

Конкурентное обучение (Adversarial training)

Первый способ — это поставить себя на место взломщика и самостоятельно найти максимум конкурирующих образцов. Их нужно предложить нейросети и обозначить как отрицательные. Так вы повысите гибкость мышления программы и затрудните работу злоумышленников. Главная проблема метода в том, что он не снимает с повестки саму проблему, и усидчивый преступник все же может подобрать обманку.

Курс по нейронным сетям
Идет набор в группу 4 200₽ в месяц

Защитная дистилляция (Defensive distillation)

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

А самой эффективной защитой сегодня остается человеческий контроль. Расстроенных апологетов роботизированных технологий попробуем утешить тем, что, пока искусственный интеллект принимает панду за гиббона, восстание машин обречено на провал. 

текст: Помогаев Дмитрий

Поделиться:
Опубликовано в рубрике Machine LearningTagged ,

SkillFactory.Рассылка