Глубокие нейронные сети потрясающие! Они могут научиться классифицировать изображения по различным категориям, просматривая более миллиона изображений, выполнять перевод между многочисленными языковыми парами, преобразовывать нашу речь в текст, создавать произведения искусства (которые даже продаются на аукционах!) И преуспеть в множестве языковых пар. другие интересные и полезные приложения. Легко быть очарованным историей успеха глубокого обучения, но надежны ли они?

Как оказалось, их на самом деле очень легко обмануть! :-(

Растет количество исследований, посвященных атакам противника на глубокие нейронные сети. Также было предложено множество методов защиты для защиты моделей от таких атак. К сожалению, почти все они оказались неэффективными. Скорость, с которой развивалась эта область, очевидна из того факта, что в течение нескольких недель после объявления результатов ICLR 2018 была выпущена исследовательская статья, показывающая, как авторы смогли обойти 7 из 8 методов защиты, предложенных в принятых документах. Документы о защите от враждебных атак, принятые в CVPR 2018, постигла похожая судьба!

Параллельное направление исследований продемонстрировало, как глубокие нейронные сети также можно легко обмануть с помощью «обмануть» выборки, которые являются выборками вне распределения, не похожими ни на один из классов, которым обучается модель. на. Фактически, было показано, что простого предоставления случайного гауссовского шума в качестве входных данных достаточно, чтобы обмануть глубокие сети и с высокой степенью уверенности предсказать один из классов в качестве выходных данных. Как говорит отец GAN Ян Гудфеллоу, «глубокие нейронные сети ошибаются почти везде!»

Хотя вначале это выглядит очень удивительно, давайте рассмотрим это подробнее. Во-первых, давайте посмотрим, как обмануть образцы.

Задача классификаторов изображений на основе глубокой нейронной сети состоит в том, чтобы научиться классифицировать каждый входной сигнал в 1 из K разрешенных классов. Однако есть проблема. Что должна делать модель, когда мы предоставляем входное изображение, не принадлежащее ни к одному из разрешенных классов? В типичной настройке машинного обучения предполагается, что обучающая и тестовая выборки взяты из исходного распределения данных P (x, y). Однако в текущем сценарии это предположение неверно.

В идеале, мы хотели бы, чтобы сеть предсказывала равномерное распределение по классам (когда выходной слой является слоем softmax) и оценку вероятности, близкую к 0 для каждого класса (когда выходной слой состоит из сигмовидной активации). Однако мы должны остановиться на этом и спросить себя - следует ли ожидать, что сеть будет вести себя подобным образом, с учетом моей цели обучения?

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

Далее мы попытаемся проанализировать причину существования как мошеннических, так и состязательных образцов с помощью нескольких изображений.

Было бы неплохо, если бы мы могли иметь своего рода конверт для каждого класса в пространстве ввода, чтобы мы могли классифицировать каждый ввод, который попадает в этот конверт, как принадлежащий этому классу, и отклонять каждый ввод, который не принадлежит ни одному из конвертов? Мы могли бы использовать конверт любой требуемой формы или даже несколько конвертов, если необходимо для каждого класса входных данных. Но вопрос в том, как получить такие конверты? Оказывается, это сложная проблема для решения в исходном пространстве ввода.

Если мы посмотрим на это с точки зрения теории вероятностей, проблема сводится к оценке плотности с учетом данных обучения. Если бы мы знали P (x), мы могли бы просто отклонить любую входную выборку x, для которой P (x) пренебрежимо мало. Однако оценка плотности в больших измерениях сталкивается с проклятием размерности!

В нашем предложении мы используем вариационные автоэнкодеры (VAE) для достижения целей, описанных выше - одновременно уменьшая размерность и выполняя оценку плотности в более низких измерениях. Мы используем гауссовское распределение смеси в качестве скрытой переменной, с количеством компонентов смеси, равным количеству классов в наборе данных. Предлагаемая структура также позволяет нам обучать модель в сценарии с частично контролируемым контролем. Пожалуйста, обратитесь к нашей статье для получения подробной информации о том, как модифицируется ELBO для учета меток классов для получения целевой функции. для обучения модели.

После обучения модели мы используем пороговое значение в скрытом (порог кодировщика) и выходе (порог декодера) пространствах модели, чтобы отклонить входные выборки. Пороги вычисляются на основе обучающих данных и обученной модели, где порог кодера соответствует значительному P (z), а порог декодера соответствует значительному P (x | z) (при определенных предположениях). Эти пороги соответствуют идее использования конвертов, о которой мы говорили ранее. Комбинация этих двух пороговых значений гарантирует, что любой классифицируемый вход x имеет значительную вероятность P (x) при распределении обучающих данных.

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

Теперь давайте взглянем на некоторые ошибочно классифицированные образцы с помощью нашей модели.

Затем мы углубимся в нашу модель и исследуем ключевые особенности, которые помогают отклонять враждебные и вводящие в заблуждение вводимые данные вместо того, чтобы неправильно их классифицировать. Сначала важно отметить, что кодировочная часть модели очень похожа на обычные классификаторы на основе CNN. Следовательно, мы можем использовать существующие состязательные / обманывающие атаки, чтобы обмануть кодировщик, аналогично атакам на CNN. Однако именно от сети декодера зависит надежность модели. Здесь важно отметить, что входная размерность декодера значительно меньше, чем у кодера (например, 10 против 28x28 = 784 для данных MNIST). Кроме того, поскольку мы выполняем пороговую обработку в скрытом пространстве, мы разрешаем декодеру принимать входные данные только из очень ограниченной части этого пространства. Эта область входного пространства декодера плотно дискретизируется во время обучения, то есть, учитывая входные данные из этой области, можно ожидать, что декодер будет генерировать только действительные выходные изображения. Это оплот состязательной устойчивости нашей модели.

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

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

Далее мы представляем результаты запуска FGSM-атаки на сеть кодировщика. По мере увеличения величины шума точность модели постоянно снижается, но процент ошибок остается ниже 4% во всем диапазоне значений ϵ (для контролируемой модели) . При желании процент отклонения возрастает с 0% до 100% с увеличением ϵ, а не ошибочная классификация враждебных входов. Аналогичная тенденция наблюдается и для случая с частично контролируемым режимом, но, как и ожидалось, производительность модели не так хороша, как в случае с контролем.

Мы также попробовали ряд других сильных атак с использованием библиотеки Cleverhans, таких как PGD, BIM, MIM и т. Д. С параметрами по умолчанию, но в каждом случае все сгенерированные образцы враждебности были отклонены. Поскольку этим атакам не хватает информации о сети декодера, мы теперь смещаем наше внимание на полные атаки методом белого ящика, где цель противоборства разрабатывается специально с учетом двух пороговых значений. Мы также разрабатываем цель обмана методом белого ящика и запускаем эти атаки на случайно выбранные подмножества тестовых наборов данных (состязательная атака) или на несколько начальных случайных изображений (атаки с обманом). Однако в каждом из этих случаев изображения, к которым сходится процесс оптимизации, успешно отклоняются нашей моделью на основе двух пороговых значений. Подробнее об этих состязательных целях читайте в нашей статье.

Наконец, чтобы решить проблему, когда злонамеренные образцы попадают в класс отклонения вместо того, чтобы быть правильно классифицированными, мы вводим схему переклассификации, основанную только на сети декодера. Основная идея этого метода состоит в том, чтобы найти z, для которого P (x | z) максимально, то есть мы выполняем градиентный спуск на входе в сеть декодера, чтобы минимизировать ошибку реконструкции с учетом состязательного изображения. Затем мы выбираем метку, соответствующую кластеру, в котором лежит оптимальная z. В случае, если этот z выходит за пределы порогового значения кодировщика соответствующего среднего класса, мы снова отклоняем ввод как образец вне распределения. Следуя этой схеме реклассификации, мы получаем следующие результаты для состязательных изображений, сгенерированных посредством атаки FGSM на кодировщик с изменяющимся ϵ.

Эти результаты означают, что схема переклассификации может успешно классифицировать обнаруженные входящие в состав противоборства входные данные по правильным классам со значительно высокой точностью. Даже для самого высокого, равного 0,3, сеть декодера способна правильно классифицировать 87% отсчетов, тогда как все эти отсчеты ранее были отклонены.

Также интересно отметить, что, следуя той же схеме переклассификации для отклоненных выборок тестовых данных, мы также получаем улучшение значений точности, указанных ранее. Например, для набора данных MNIST значение точности повышается с 97,97% до 99,07%, поскольку 110 из 181 отклоненной выборки правильно классифицированы схемой переклассификации. Таким образом, этот метод дополнительно улучшает запоминание тестовых наборов данных. Однако важно отметить, что, поскольку схема переклассификации включает в себя этап оптимизации, нецелесообразно использовать ее напрямую для всех входных выборок. Следовательно, мы предлагаем использовать сеть кодировщика для классификации в обычном сценарии и использовать схему переклассификации только для отклоненных входных выборок.

Интересно, что недавно мы наткнулись на статью об очень похожей идее с использованием Capsule Networks от группы профессора Джеффри Хинтона, а также об обнаружении образцов противоборства, которую можно найти здесь. Еще одну параллельную и похожую работу также можно найти по этой ссылке из Bethge Lab.

Еще раз, статью, соответствующую этой статье, можно найти по следующей ссылке. Работа выполнена в рамках совместного проекта MPI-IS и IBM Research AI. Статья была принята к публикации в Трудах Тридцать третьей конференции AAAI по искусственному интеллекту (AAAI 2019). Пожалуйста, оставьте любые вопросы / предложения / отзывы ниже, и мы будем рады вам ответить! Спасибо за ваше время и интерес!