Что такое состязательная защита?

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

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

Краткий глоссарий

Давайте взглянем на несколько терминов, которые часто используются в состязательной защите:

  • Состязательное возмущение: разница между несостязательным примером и его состязательным аналогом.
  • Сопротивляемость состязательности: свойство сопротивляться неправильной классификации примеров состязательности.
  • Обнаружение враждебности: набор методов для обнаружения примеров состязательности.
  • Обучение состязательности (Goodfellow et al., 2014): метод защиты, при котором модель обучается на примерах состязательности. Важно отметить, что понятие состязательной подготовки как защиты отличается от концепции состязательной подготовки, используемой в Генеративных состязательных сетях (Goodfellow et al., 2014).
  • Градиентная маскировка (Papernot et al., 2016a; Papernot et al., 2016b; Tramèr et al., 2017): практика изменения модели, чтобы скрыть ее исходные градиенты от злоумышленника. Другими словами, методы защиты маскируют градиенты выходных данных модели по отношению к входным данным.
  • Затуманенные градиенты (Athalye et al., 2018): форма маскировки градиента, которая включает в себя разбитые, стохастические, исчезающие и взрывающиеся градиенты.
  • Разрушенные градиенты: когда градиенты модели трудно вычислить из-за недифференцируемых операций.
  • Стохастические градиенты: градиенты модели трудно вычислить из-за некоторых стохастических операций.
  • Исчезающие градиенты: когда градиенты модели малы или близки к нулю.
  • Взрывающиеся градиенты: когда градиенты модели очень большие или близки к бесконечности.

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

Стратегии защиты

Повышение противоборства за счет увеличения объема данных

Это семейство методов защиты, которые включают увеличение количества данных. Основная идея состоит в том, чтобы включить в обучающую выборку примеры противоборства. Защитник будет использовать эти примеры, чтобы обеспечить неизменность выходных данных модели, учитывая исходный пример и его противоборствующий аналог. Это связано с классическими формами увеличения данных, в которых данные преобразуются таким образом, чтобы отражать инварианты, которые мы хотим, чтобы модель демонстрировала (например, для изображений мы можем вращать и / или произвольно обрезать наши данные, но все же ожидать, что модель чтобы правильно идентифицировать объект).

Обучение состязательности

Обучение состязательности (Goodfellow et al., 2014) - это метод защиты, используемый для повышения устойчивости к состязаниям путем переобучения модели на примерах состязательности. В состязательном обучении состязательные примеры генерируются на каждой итерации на основе текущего состояния модели и используются для повторного обучения модели.

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

Однако Tramèr et al. (2017) показали, что наивное обучение состязательности на ограниченных наборах состязательных примеров может привести к ложной устойчивости из-за градиентной маскировки. Они показали, что выполнение состязательного обучения на FGSM (Goodfellow et al., 2014) только противников может привести модель к тому, чтобы локальные градиенты потерь были направлены в сторону от того места, где глобальные потери модели максимальны. В результате защищенная модель будет устойчивой только к определенным типам атак, но ее все же можно будет обойти с помощью различных методов атаки.

С точки зрения надежной оптимизации, Madry et al. (2017) продемонстрировали более сильную стратегию обучения противников, которая не полагается на маскирование градиента, обучая модель только на самых сильных доступных противниках (т. Е. Противниках в худшем случае). Они утверждали, что состязательные примеры, созданные с использованием BIM (Куракин и др., 2017), которые они назвали методом прогнозируемого градиентного спуска (PGD), являются наихудшими состязательными примерами. На практике они обучают модель на примерах противоборства, генерируемых случайно инициированным PGD (т.е. R + BIM вместо R + FGSM (Tramèr et al., 2017)).

Athalye et al. (2018) показали, как они успешно обошли 7 из 9 защит, принятых на Шестой Международной конференции по обучающим представлениям (ICLR) 2018, которая включала работу Madry et al (2017) о состязательном обучении PGD. Интересно, что они пришли к выводу, что состязательная подготовка противников PGD (Madry et al., 2017) является единственной оцененной защитой, которая может оправдать свои требования.

Сопряжение состязательных логитов

Adversarial Logit Pairing или ALP (Kannan et al., 2018) - это метод, обеспечивающий инвариантность логитов обычных и состязательных входных данных. Это делается путем введения штрафных санкций для цели обучения. Учитывая небольшую партию исходных примеров x и их противоборствующих аналогов x ’, сгенерированных случайным образом инициализированной PGD-атакой, предложенной в Madry et al. (2017) , ALP изменяет цель обучения следующим образом:

где Z (x) обозначает логиты при вводе x, а λ обозначает константу, которая контролирует штрафной член.

Первый член цели обучения - это та же цель состязательного обучения, как определено в предыдущем разделе, где L (x, y) обозначает используемую функцию потерь (т. Е. Кросс-энтропию), а α обозначает весовой коэффициент для доброкачественных и враждебных примеров. Второй термин - это термин логит-регуляризации, который поощряет логит-инвариантность как для состязательных, так и для несостязательных входов. Отметим, что Kannan et al. (2018) использовали норму L2 для измерения расстояния между парой логитов, однако ее можно заменить другими метриками сходства.

Каннан и др. (2018) показали, что сочетание состязательного обучения противников PGD с ALP привело к современной защите от атак типа белый ящик и черный ящик на модели ImageNet. Однако Engstrom et al. (2018) обнаружил, что ALP все еще можно атаковать, если выполнить достаточное количество шагов PGD.

Устранение враждебных возмущений путем преобразования входных данных

Это семейство защит пытается устранить враждебные возмущения, выполняя преобразование (я) на входе до того, как вход будет передан в модель. Это может быть достигнуто либо с помощью модели генеративного преобразования, либо с помощью любых методов преобразования изображения, таких как сжатие JPEG, минимизация общей дисперсии или квилтинг изображения (Guo et al., 2017).

PixelDefend

PixelDefend (Song et al., 2018) - это стратегия защиты, которая направлена ​​на очистку входных данных с помощью модели генеративной трансформации. Это делается путем первого обучения генеративной модели, в данном случае PixelCNN (Oord et al., 2016), на несостязательном наборе данных, чтобы приблизиться к распределению набора данных. После обучения PixelCNN можно передать входные данные в PixelCNN с надеждой, что PixelCNN устранит возмущения в случае злонамеренного ввода. Алгоритм PixelDefend представлен ниже.

Обратите внимание, что необходимо установить значение ϵ-defense, которое контролирует максимальное изменение значения пикселя во время процесса очистки. Если ϵ-defense слишком велик, очищенный ввод может больше не выглядеть как исходный, что может вызвать случайную ошибочную классификацию. Если ϵ-defense слишком мало, очищенные входные данные все равно могут быть состязательными. В идеальной ситуации, если мы знаем, что злоумышленник может генерировать состязательные примеры только в рамках ϵ-attack, тогда ϵ-defense следует установить равным ϵ-атака.

Было показано, что PixelDefend эффективен против различных атак, таких как FGSM (Goodfellow et al., 2014), BIM (Kurakin et al., 2017), DeepFool (Moosavi-Dezfooli et al., 2015), и C&W (Carlini & Wagner, 2016). К сожалению, позже выяснилось, что PixelDefend уязвим для обратного дифференцируемого приближения (BPDA) (Athalye et al, 2018) и стохастического приближения одновременных возмущений (SPSA) (Uesato et al., 2018).

Противоречивая устойчивость за счет регуляризации градиента модели

Учитывая, что многие атаки в значительной степени зависят от градиентов выходных данных по отношению к входным, метод защиты может быть реализован путем обучения модели небольшим и шумным градиентам. Эта стратегия усложняет для атак, подобных FGSM (Goodfellow et al., 2014), создание примеров противоборства.

Глубокая сжимающаяся сеть

Deep Contractive Network или DCN (Gu & Rigazio, 2015) - это модель, цель обучения которой включает термин регуляризации для градиентов модели.

В приведенной выше формуле цель условия регуляризации - наложить штраф на норму градиентов скрытого слоя по сравнению с предыдущим скрытым слоем. Этот термин регуляризации известен как послойный сжимающий штраф, который заимствован из Contractive Autoencoders (Rifai et al., 2011). Интуитивно этот метод позволяет выходу сети быть менее чувствительным к небольшим изменениям на входе.

Gu & Rigazio (2015) протестировали эту стратегию против атаки L-BFGS (Szegedy et al., 2014). Они показали, что несмотря на то, что атака все еще успешно обнаруживала состязательные примеры, вводящие в заблуждение DCN, средние возмущения были больше по сравнению с атакой на незащищенную модель. Возможно, это один из самых ранних методов защиты, предложенных со времен Szegedy et al. (2014) опубликовали свои выводы на примерах состязательности. Похоже, что DCN полагается на маскирование градиента, поэтому его необходимо переоценить против новых атак, особенно тех, которые могут обойти маскирование градиента.

Защитная перегонка

Защитная дистилляция (Papernot et al., 201 5) - это метод защиты, использующий метод, известный как дистилляция знаний (Hinton et al., 2015). Этот метод работает путем обучения двух сетей; сети учитель и ученик. Сначала мы обучаем сеть учителей набору данных, вводя температурную константу T в функцию softmax:

После того, как сеть учителей обучена, прогнозы сети учителей в обучающем наборе затем используются в качестве меток для обучения сети учеников. Функция softmax также включает температурную константу во время обучения студенческой сети. Затем температура снова устанавливается на 1 во время тестирования после завершения тренировки.

Papernot et al. (201 5) показали, что защитная дистилляция заставляет градиенты выхода по отношению к входам быть обратно пропорциональными T. Это означает, что по мере увеличения T градиенты выходов по отношению к входам становятся меньше. В результате, этот метод защиты трудно атаковать методами атаки, которые сильно зависят от градиентов, такими как FGSM (Goodfellow et al., 2014) и JSMA (Papernot et al., 2018), когда T - высокое. К сожалению, этот метод защиты удалось обойти с помощью атаки C&W (Carlini & Wagner, 2016).

Внедрение случайности для смягчения противоборствующих примеров

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

Обрезка стохастической активации

Stochastic Activation Pruning или SAP (Dhillon et al., 2018) вводит случайность путем отсечения или удаления (т. Е. Установки на 0) некоторых узлов активации в нейронной сети во время тестирования. Можно увидеть, что эта стратегия похожа на отсев (Srivastava et al., 2014). Разница между SAP и выпадением состоит в том, что вероятность обрезания нейронов в SAP обратно пропорциональна величине активаций. Другими словами, чем больше величина активации, тем меньше вероятность того, что эта единица будет обрезана. Вероятность p узлов j на слое i, которые будут выбраны (т. Е. Выживут), определяется как:

где a (i) обозначает количество единиц активации на i -м слое.

Кроме того, SAP изменяет масштаб оставшихся в живых на величину, обратную вероятности. То есть:

где r (i) обозначает количество выборок, которые нужно нарисовать на i -м слое. Это сделано для того, чтобы модель вела себя аналогично необрезанной модели, чтобы сохранить точность классификации на чистых примерах. В результате SAP может применяться к любым предварительно обученным моделям без необходимости тонкой настройки.

Показано, что SAP устойчив к FGSM (Goodfellow et al., 2014) и BIM (Kurakin et al., 2017). Однако было показано, что SAP полагается на стохастические градиенты, которые являются формой запутанных градиентов. SAP можно обойти, если злоумышленник осведомлен о действующей стратегии защиты, вычислив ожидание по стохастическим градиентам при нескольких проходах вперед (Athalye et al, 2018).

Обнаружение противников посредством классификации

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

Сеть обнаружения злоумышленников

Метцен и др. (2017) предложили метод обнаружения путем обучения сети субдетекторов, которая принимает выходные данные классификатора нейронной сети на определенном уровне в качестве входных данных. Сеть субдетекторов обучена различать доброкачественные и враждебные входы.

Обучение детекторной сети включает в себя создание противостоящих примеров, которые должны быть включены в обучающий набор для детекторной сети. Чтобы учесть будущие атаки, Metzen et al. (2017) предложили обучить детектор по процедуре состязательного обучения ( Goodfellow et al., 2014 ) на противниках BIM ( Kurakin et al., 2017 ).

Metzen et al. (2017) обнаружили, что размещение детекторной сети на разной глубине слоя дает разные результаты для разных типов атак. Наконец, они показали, что классификатор, включающий сеть детекторов, сложнее обмануть, поскольку злоумышленнику необходимо найти злоумышленников, которые обманывают и классификатор, и детектор одновременно. Тем не менее, Carlini & Wagner (2017) обнаружил, что сеть обнаружения сложно обучить, имеет относительно высокий уровень ложных срабатываний против атак C&W (Carlini & Wagner, 2016), и ее можно обойти с помощью альтернативной атаки черного ящика. (Папернот и др., 2016).

Обнаружение злоумышленников с помощью сопоставления распределения

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

Оценки плотности ядра

Feinman et al. (2017) предложил метод оценок плотности ядра (KDE), чтобы определить, находится ли точка данных далеко от многообразия классов. KDE рассчитывается

где Xt обозначает набор данных из класса t, | Xt | обозначает количество примеров в Xt, Z (x) обозначает логиты модели, заданной x в качестве входных данных, а σ обозначает полосу пропускания по Гауссу, поскольку KDE оценивается с использованием гауссова ядра. Состязательный пример x ’ должен давать низкий KDE (x’) и, таким образом, обнаруживается. Однако Feinman et al. (2017) предположил, что этот метод не работает, когда x’ находится рядом с многообразием целевого класса.

Carlini & Wagner (2017) обнаружили, что этот метод плохо работает на CIFAR10 и что этот метод можно обойти с помощью атак на основе итеративной оптимизации. То есть, если злоумышленник знает об используемом методе обнаружения, злоумышленник может включить измерение KDE в цель оптимизации, чтобы сгенерировать примеры противоборства, которые могут обмануть как модели обнаружения, так и модели классификации.

Обнаружение противников путем измерения оценок неопределенности

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

Оценки байесовской неопределенности

Feinman et al. (2017) предложили измерять неопределенность модели с помощью байесовского процесса. Это можно сделать, используя выпадение (Srivastava et al., 2014), не только во время обучения, но и во время тестирования, поскольку ранее было показано, что это приближается к глубокому гауссовскому процессу (Gal & Ghahramani, 2015). Затем оценки байесовской неопределенности можно измерить, выполнив несколько прямых проходов, поскольку каждый прямой проход может давать разные выходные данные из-за стохастичности модели. Формально, учитывая классификатор f, неопределенность может быть вычислена следующим образом:

где N обозначает количество прямых проходов, а f (x) обозначает вероятность softmax модели. Вход считается состязательным, если значение неопределенности превышает определенный порог.

Feinman et al. (2017) показали, что распределения неопределенности различаются между состязательными и доброкачественными входами, и, таким образом, могут использоваться в качестве индикатора для обнаружения враждебных входов. Хотя было обнаружено, что этот метод не является полностью защищенным от состязательных примеров, Carlini & Wagner (2017), который оценивал этот метод вместе с 9 другими методами обнаружения, обнаружил, что этот метод наиболее сложно атаковать.

Заключение

Таким образом, рассмотрим различные методы защиты, описанные здесь:

  • Мы можем генерировать состязательные примеры и включать их как часть обучающей выборки (состязательное обучение, ALP).
  • Состязательные примеры можно «очистить», выполнив различные входные преобразования (PixelDefend).
  • Многие атаки полагаются на вычисление градиентов модели относительно входных данных. Мы можем обучить нашу модель, регулируя градиенты, чтобы злоумышленнику было сложнее их использовать (DCN, защитная дистилляция).
  • Мы можем ввести случайность во время вывода, так что точные градиенты трудно вычислить (SAP).
  • Состязательные входные данные могут быть обнаружены с помощью классификации (сеть обнаружения злоумышленников), согласования распределения (KDE) и определения порога неопределенности (байесовские оценки неопределенности). Feinman et al. (2017) фактически дополнительно предложили выполнять обнаружение с использованием классификатора логистической регрессии, принимая оценки плотности и неопределенности в качестве входных данных, что, как было показано, работает лучше.

Осторожно: многие методы защиты могут привести к намеренному или непреднамеренному маскированию градиента. Градиентное маскирование не гарантирует устойчивости к противодействию, и было показано, что его можно обойти (Tramèr et al., 2017; Athalye et al, 2018).

Мы надеемся, что эта статья содержит полезные сведения о том, как защититься от примеров враждебности. Не стесняйтесь предлагать свои предложения в разделе комментариев, если мы что-то упускаем.

Благодарим Анки Сю, Арчи де Беркер, Бахадор Халеги, Питер Хендерсон, Рэйчел Самсон и Вэй-Вэй Линь за ценные комментарии и иллюстрации.

Первоначально опубликовано на www.elementai.com.