Исследование Устойчивости Сверточных Нейронных Сетей. Часть 1: Теория

Если вам интересно понять, насколько стабильны современные (в первую очередь сверточные) нейронные сети, насколько легко изменить их выходные данные, слегка исказив входные данные, и можно ли это сделать на уровне реальных (физических) атрибутов объекты перед съемкой их (фото)видеокамерой - Добро пожаловать под кат!



Введение в сверточные нейронные сети

С 1943 года, когда Мак-Каллох и Питтс впервые предложили математическую формализацию понятия «искусственный нейрон», нейронные сети стали:
  • Более объемный (содержал больше параметров),
  • Глубже (содержал больше расчетных блоков),
  • Лучше! (более правильно решали поставленные перед ними задачи)


Исследование устойчивости сверточных нейронных сетей.
</p><p>
 Часть 1: Теория

Изображение предоставлено arxiv.org/abs/1409.4842 На данный момент ни для кого уже не секрет, что для работы с фотографиями и видео лучше всего подходят сверточные нейронные сети (СНС), которые, например, позволяют выбирать объекты и определять их класс, и, наконец, отвечать на недавний главный вопрос компьютерного зрения – кот или собака (серьёзный связь и легкомысленный связь на эту тему)? И все же, так ли хороши сверточные нейронные сети, действительно ли оправдано все внимание, которое им уделяется? Попробуем разбить его на два подвопроса:
  1. Как в настоящее время сравниваются качество человеческого распознавания и CNN в известных базах данных?
  2. Насколько устойчивы CNN к своим входным данным? Легко ли их сломать?


Прогресс в сверточных нейронных сетях

Чтобы ответить на первый вопрос, обратимся к двум популярным базам изображений — ImageNet (база данных изображений класса 1000) и Маркированные лица в дикой природе (LFW) (база данных лиц).

Примеры изображений ImageNet :

Исследование устойчивости сверточных нейронных сетей.
</p><p>
 Часть 1: Теория

ЛФВ :

Исследование устойчивости сверточных нейронных сетей.
</p><p>
 Часть 1: Теория

Итак, классификация на ImageNet:

А вот проверка (проверка принадлежности пары фотографий одному и тому же человеку) на LFW: Тогда можно было бы сделать следующий вывод:

Исследование устойчивости сверточных нейронных сетей.
</p><p>
 Часть 1: Теория

Изображение предоставлено Spectrum.ieee.org

(Не)стабильность сверточных нейронных сетей

Но не будем торопиться.

Для ответа на второй вопрос обратимся к работам исследователей, стоящих у истоков тестирования СНС на устойчивость.

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

Например, результат классификации с " панды "изменения в" гиббон "при внесении крайне незаметных возмущений:

Исследование устойчивости сверточных нейронных сетей.
</p><p>
 Часть 1: Теория

Изображение предоставлено arxiv.org/pdf/1412.6572.pdf Итак, такие почти незаметные возмущения, изменяющие выходные данные нейронной сети, называются состязательные примеры (или, часто, нападения к этой самой нейронной сети); устойчивое выражение на английском языке состязательные примеры/атака .

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

Однако мы быстро выяснили, что аналогичные проблемы наблюдаются и в сетях, обнаруживающих объекты (обведены прямоугольником), и даже в сетях сегментации (которые присваивают класс каждому пикселю изображения): например, вы можете увидеть работу " Состязательные примеры семантической сегментации и обнаружения объектов ".



Исследование устойчивости сверточных нейронных сетей.
</p><p>
 Часть 1: Теория

И наконец, предвидя возражения в виде «ну это все картинки, в нашем замечательном НЛП такого не бывает!» [НЛП = Обработка естественного языка], можно привести отличный пример из статьи " Состязательные примеры оценки систем понимания прочитанного ", что относится прежде всего к так называемым вопросно-ответным системам, в которых изучаемой системе дается небольшой фрагмент текста (несколько предложений), а затем задается простой вопрос для понимания этого фрагмента.

Вот оригинальный текст:

Пейтон Мэннинг стал первым защитником, когда-либо приведшим две разные команды к нескольким Суперкубкам.

Он также является самым старым защитником, когда-либо игравшим в Суперкубке в возрасте 39 лет. Предыдущий рекорд принадлежал Джону Элвею, который привел Бронкос к победе в Суперкубке XXXIII в возрасте 38 лет и в настоящее время является исполнительным вице-президентом Денвера по футбольным операциям и футбольным операциям.

Главный управляющий.

Вопрос:
Как звали квотербека, которому было 38 лет в Суперкубке XXXIII?
Правильный (и в данном примере это совпадает с выходом исследуемой модели) отвечать : Джон Элвей.

Если в качестве последнего предложения к тексту добавить вот этот кусок, совершенно не связанный с вопросом:

Защитник Джефф Дин имел футболку под номером 37 в Champ Bowl XXXIV.
Что ответ изменится (становится некорректным — внимание нейросети сбилось): Джефф Дин.



Откуда берётся нестабильность и как с ней бороться?

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

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

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

Исследование устойчивости сверточных нейронных сетей.
</p><p>
 Часть 1: Теория

Изображение предоставлено arxiv.org/pdf/1608.08967.pdf Примечание на полях : по сути техника дополнения входные данные при обучении (добавляя к исходным данным слегка преобразованные их версии: например, с помощью вращения, затемнения/осветления, масштабирования и т. д.) и пытаясь в какой-то степени решить эту проблему – отодвигая границу, хотя и только в некоторых направления (которые соответствуют выбранным увеличениям).

При этом направления с очень близкими границами все еще остаются.

Итак, мы знаем, что CNN можно обмануть небольшим искажением пикселей.

Почему бы при обучении не добавить для каждого обучающего примера всю его попиксельную окрестность (по какой-то норме, например,

Исследование устойчивости сверточных нейронных сетей.
</p><p>
 Часть 1: Теория

[о нормах чуть позже]).

Ниже замечательная иллюстрация из статьи " К моделям глубокого обучения, устойчивым к состязательным атакам ", где звездочками отмечены окрестности пикселей обучающих примеров, которые при начальной разделительной линии попали в область соседнего класса - следовательно, разделяющую кривую нужно преобразовать так, чтобы эти звездочки попали в область своего класса:

Исследование устойчивости сверточных нейронных сетей.
</p><p>
 Часть 1: Теория

Ну, сказано и сделано.

Давайте проведем необходимые расчеты на коленях.

При условии, что:

  • изображение оригинального размера

    Исследование устойчивости сверточных нейронных сетей.
</p><p>
 Часть 1: Теория

    пикселей, 3 цвета RGB,
  • наш глаз мало различает колебания цвета пикселей в 2-х градациях (из 256): в каждой точке для каждого цвета мы можем допустить

    Исследование устойчивости сверточных нейронных сетей.
</p><p>
 Часть 1: Теория

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

Исследование устойчивости сверточных нейронных сетей.
</p><p>
 Часть 1: Теория

Хочу отметить, что эта величина значительно превышает количество атомов в видимой части Вселенной.



Исследование устойчивости сверточных нейронных сетей.
</p><p>
 Часть 1: Теория

, что полностью разрушает идею коррекции стабильности СНС простым методом «в лоб».

Как видите, простое перечисление окрестностей пикселей — трудоемкая задача.

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

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

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

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

Правда, как именно решать эти «самые сложные» вопросы — вопрос хороший, да и фактически до сих пор открытый.

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

Минусы также вполне очевидны.

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

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



Обозначения: формальная часть

Введем пару обозначений для более формального изложения:
  • Позволять

    Исследование устойчивости сверточных нейронных сетей.
</p><p>
 Часть 1: Теория

    - входное изображение

    Исследование устойчивости сверточных нейронных сетей.
</p><p>
 Часть 1: Теория

    , Где

    Исследование устойчивости сверточных нейронных сетей.
</p><p>
 Часть 1: Теория

    — количество цветов (1 для черно-белого, 3 для цветного в формате RGB),

    Исследование устойчивости сверточных нейронных сетей.
</p><p>
 Часть 1: Теория

    — пространственные размеры (ширина, высота);


  • Исследование устойчивости сверточных нейронных сетей.
</p><p>
 Часть 1: Теория

    - правильный класс входа

    Исследование устойчивости сверточных нейронных сетей.
</p><p>
 Часть 1: Теория

    ;


  • Исследование устойчивости сверточных нейронных сетей.
</p><p>
 Часть 1: Теория

    — параметры классификатора CNN;


  • Исследование устойчивости сверточных нейронных сетей.
</p><p>
 Часть 1: Теория

    — функция потерь;


  • Исследование устойчивости сверточных нейронных сетей.
</p><p>
 Часть 1: Теория

    — вывод классификатора (распознанный класс); мы стремимся к равенству в образовании

    Исследование устойчивости сверточных нейронных сетей.
</p><p>
 Часть 1: Теория

    ;


  • Исследование устойчивости сверточных нейронных сетей.
</p><p>
 Часть 1: Теория

    — добавка добавка к входу

    Исследование устойчивости сверточных нейронных сетей.
</p><p>
 Часть 1: Теория

    ;
Теперь мы можем формально определить цель атаки противника : изменить вывод классификатора

Исследование устойчивости сверточных нейронных сетей.
</p><p>
 Часть 1: Теория

к неправильному добавлением минимума по какой-то норме (на практике используют

Исследование устойчивости сверточных нейронных сетей.
</p><p>
 Часть 1: Теория

- обозначим через

Исследование устойчивости сверточных нейронных сетей.
</p><p>
 Часть 1: Теория

) возмущения

Исследование устойчивости сверточных нейронных сетей.
</p><p>
 Часть 1: Теория

, а именно минимизировать

Исследование устойчивости сверточных нейронных сетей.
</p><p>
 Часть 1: Теория

так что:


  1. Исследование устойчивости сверточных нейронных сетей.
</p><p>
 Часть 1: Теория

    (мы изначально правильно определяем класс),


  2. Исследование устойчивости сверточных нейронных сетей.
</p><p>
 Часть 1: Теория

    («разрушение» CNN с помощью возмущения r),


  3. Исследование устойчивости сверточных нейронных сетей.
</p><p>
 Часть 1: Теория

    (мы остаемся в множестве допустимых значений).

Примечание на полях .

Аналогичным образом можно определить такое понятие, как стабильность классификатора — найти такой класс возмущения

Исследование устойчивости сверточных нейронных сетей.
</p><p>
 Часть 1: Теория

, в котором классификатор не меняет свой вывод:

Исследование устойчивости сверточных нейронных сетей.
</p><p>
 Часть 1: Теория

.

В обозначениях выше регулярное обучение CNN на примерах можно сформулировать как минимизацию следующего ожидания:

Исследование устойчивости сверточных нейронных сетей.
</p><p>
 Часть 1: Теория

В состязательное обучение сначала генерируем (например, каким-либо методом атаки) наиболее сложный пример из некоторой окрестности

Исследование устойчивости сверточных нейронных сетей.
</p><p>
 Часть 1: Теория

пример ввода (например, по

Исследование устойчивости сверточных нейронных сетей.
</p><p>
 Часть 1: Теория

-norm), и только потом минимизировать по параметрам нейросети:

Исследование устойчивости сверточных нейронных сетей.
</p><p>
 Часть 1: Теория

стандарты l_p: напоминание Напомним наиболее часто используемые нормы

Исследование устойчивости сверточных нейронных сетей.
</p><p>
 Часть 1: Теория

Для

Исследование устойчивости сверточных нейронных сетей.
</p><p>
 Часть 1: Теория

:



  • Исследование устойчивости сверточных нейронных сетей.
</p><p>
 Часть 1: Теория

    :

    Исследование устойчивости сверточных нейронных сетей.
</p><p>
 Часть 1: Теория

    (обычная евклидова норма);


  • Исследование устойчивости сверточных нейронных сетей.
</p><p>
 Часть 1: Теория

    :

    Исследование устойчивости сверточных нейронных сетей.
</p><p>
 Часть 1: Теория

    (так называемая метрика городских кварталов);


  • Исследование устойчивости сверточных нейронных сетей.
</p><p>
 Часть 1: Теория

    :

    Исследование устойчивости сверточных нейронных сетей.
</p><p>
 Часть 1: Теория

    (максимальный модуль; именно на основе этой метрики человеческий глаз воспринимает визуальную информацию);


  • Исследование устойчивости сверточных нейронных сетей.
</p><p>
 Часть 1: Теория

    :

    Исследование устойчивости сверточных нейронных сетей.
</p><p>
 Часть 1: Теория

    (количество ненулевых значений).

Комментарий .

Для

Исследование устойчивости сверточных нейронных сетей.
</p><p>
 Часть 1: Теория

"норма"

Исследование устойчивости сверточных нейронных сетей.
</p><p>
 Часть 1: Теория

, для которого

Исследование устойчивости сверточных нейронных сетей.
</p><p>
 Часть 1: Теория

, это не норма .



Состязательные примеры в компьютерном зрении: история проблемы



Обманывающие изображения

Допустим, у нас есть классификатор, который вычисляет вероятность принадлежности входного изображения одному из N предварительно обученных классов (например, N=1000 в случае ImageNet).

И, скажем так (это не всегда так, но все же), на картинках, принадлежащих к этим классам, вероятности отображаются более или менее осмысленно (хотя есть, конечно, ошибки).

Но что произойдет, если мы введем изображение, не принадлежащее этим N классам, то есть, математически говоря, вне области определения? И хорошо, если на выходе будет равномерный вектор вида (1/N,.

,1/N) — типа сеть не понимает, что происходит. Гораздо хуже, когда по объекту вне области определения сеть выдаёт вполне определённый ответ — то есть одна из вероятностей будет значительно больше остальных.

Итак, изначально стабильность CNN изучалась с точки зрения адекватного реагирования на различные входные сигналы.

Оказалось, что существуют примеры (построенные на основе определенной структуры или являющиеся по сути белым шумом), которые на выходе CNN могут с большой вероятностью дать любой (в том числе заданный) класс.

Такие примеры назывались « обманчивые изображения (обманные изображения) и были построены с использованием эволюционных алгоритмов:

Исследование устойчивости сверточных нейронных сетей.
</p><p>
 Часть 1: Теория

За подробностями любопытный читатель может обратиться к первоисточнику».

Глубокие нейронные сети легко обмануть: прогнозы с высокой достоверностью для неузнаваемых изображений ".



КЖПО

В самом первый метод атаки на CNN использовался квазиньютоновский метод минимизации с ограничениями на память и переменные Л-БФГС-Б — но этот метод довольно медленный и часто требует внешнего оптимизатора.

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



Исследование устойчивости сверточных нейронных сетей.
</p><p>
 Часть 1: Теория

и следуем градиенту (см.

источник " Объяснение и использование состязательных примеров "):

Исследование устойчивости сверточных нейронных сетей.
</p><p>
 Часть 1: Теория

Где

Исследование устойчивости сверточных нейронных сетей.
</p><p>
 Часть 1: Теория

– некая константа, отвечающая за скорость движения, а

Исследование устойчивости сверточных нейронных сетей.
</p><p>
 Часть 1: Теория

- не тот класс, в сторону которого нас «подталкивают» (обманывают) смотреть СНС.

Этот метод назывался Ф Аст г сияющий С зажечь М метод (по-русски " быстрый метод, основанный на знаке градиента ", но это все равно звучит не очень хорошо), или FGSM. Напоминание : для оптимизации весов CNN используется метод обратного распространения ошибки, при котором берется градиент по весам CNN, т.е.



Исследование устойчивости сверточных нейронных сетей.
</p><p>
 Часть 1: Теория

.

Итак, в этой работе мы изучаем норму возмущения

Исследование устойчивости сверточных нейронных сетей.
</p><p>
 Часть 1: Теория

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



И-ФГСМ (ПГД)

Часто линейная оценка окрестности функции бывает весьма грубой, и один шаг FGSM иногда не приводит к хорошей атаке.

Для решения этой проблемы используется итерационный метод. я теративный КЖПО , или I-FGSM, что позволяет более точно продвигаться к границе классификатора.

Если

Исследование устойчивости сверточных нейронных сетей.
</p><p>
 Часть 1: Теория

- проекция на

Исследование устойчивости сверточных нейронных сетей.
</p><p>
 Часть 1: Теория

, Что

Исследование устойчивости сверточных нейронных сетей.
</p><p>
 Часть 1: Теория

Более того, если мы хотим получить окончательное решение

Исследование устойчивости сверточных нейронных сетей.
</p><p>
 Часть 1: Теория

"отошёл" от исходного примера

Исследование устойчивости сверточных нейронных сетей.
</p><p>
 Часть 1: Теория

не более чем

Исследование устойчивости сверточных нейронных сетей.
</p><p>
 Часть 1: Теория

по норме

Исследование устойчивости сверточных нейронных сетей.
</p><p>
 Часть 1: Теория

и мы больше ничего не можем сделать

Исследование устойчивости сверточных нейронных сетей.
</p><p>
 Часть 1: Теория

шагов, то можно сразу вывести эмпирическое правило скорости движения:

Исследование устойчивости сверточных нейронных сетей.
</p><p>
 Часть 1: Теория

Примечание 1 .

Но в целом метод I-FGSM гораздо более известен как разработан метод градиентного спуска п прогнозируемый г сияющий Д эсцент, или ПГД, хотя это название появилось почти год спустя .

Заметка 2 .

В целом метод I-FGSM/PGD до сих пор наиболее широко используется на практике, поскольку он прост и достаточно стабилен (хотя и не так быстр, как простой FGSM).



МИ-ФГСМ

Как мог заметить внимательный читатель, методы генерации состязательных примеров все больше похожи на шаги оптимизатора, который используется для поиска оптимальных весов CNN (только в случае обучения CNN мы оптимизируем по весам, а в в случае состязательных примеров — по входным данным).

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

Как следствие, работа» Усиление состязательных атак с импульсом «предлагает использовать сглаживание градиента в итеративном методе I-FGSM — М сальник Я-КОЖПО , или МИ-ФГСМ.

Ход работы следующий:

Исследование устойчивости сверточных нейронных сетей.
</p><p>
 Часть 1: Теория

где g обозначает сглаженный градиент:

Исследование устойчивости сверточных нейронных сетей.
</p><p>
 Часть 1: Теория

Ну и вот сравнительная таблица трех последних методов, из которой видно, что MI-FGSM использовать по-прежнему предпочтительнее (чем больше цифр, тем выше успешность атаки):

Исследование устойчивости сверточных нейронных сетей.
</p><p>
 Часть 1: Теория



Один пиксель

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

Однако существуют методы (один из первых — JSMA , но это не очень практично и удобно), которые не учитывают максимальную разницу в яркости (по норме

Исследование устойчивости сверточных нейронных сетей.
</p><p>
 Часть 1: Теория

), и максимальное количество пикселей, которое можно изменить (по норме

Исследование устойчивости сверточных нейронных сетей.
</p><p>
 Часть 1: Теория

).

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

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

На работе" Атака одним пикселем для обмана глубоких нейронных сетей "рассмотрен предельный случай

Исследование устойчивости сверточных нейронных сетей.
</p><p>
 Часть 1: Теория

-атаки.

Для этого авторы используют эволюционный алгоритм (а именно алгоритм дифференциальная эволюция ) для поиска состязательных примеров:

  • Популяция состоит из 400 особей, каждая из которых задается пятью числами: двумя координатами и тремя цветовыми каналами;
  • Поколение ребенка представляет собой линейную комбинацию трех случайных родителей.

Ниже приведен пример такой атаки на основе СИФАР-10 , где исходная картинка собаки при изменении ровно одного пикселя становится поочередно любым из остальных 9 классов ( самолет , .

, грузовик ):

Исследование устойчивости сверточных нейронных сетей.
</p><p>
 Часть 1: Теория



Краткие выводы по первой части

  • На данный момент CNN (в целом) работают намного лучше, чем люди;
  • CNN легко «обмануть», используя нестабильность их входных данных;
  • Наиболее распространенным ингредиентом для создания состязательного примера является градиент нейронной сети на входных данных.



Ссылки

  • «Практическое» введение в тему состязательных атак читайте в 2019 году на сайте Фестиваль науки в Московском государственном университете.

    М.

    В.

    Ломоносова:

  • Еще немного математики -
Теги: #Машинное обучение #искусственный интеллект #Обработка изображений #сверточные нейронные сети #робастность #состязательные примеры
Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.