Как обмануть систему распознавания изображений

1618998285304


Как устроено распознавание изображений
В 2012 году победителем соревнования по распознаванию образов ImageNet стала архитектура AlexNet, представляющая собой сверточную нейронную сеть (CNN – Convolutional Neural Network). Отрыв в точности от ближайшего конкурента составил более 10%. Сообщество с энтузиазмом восприняло предлагаемую авторами идею использования сверточных нейронных сетей для распознавания изображений, и с тех пор подобные архитектуры стали стандартом для решения данной задачи.

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

Для построения архитектуры CNN используются следующие основные типы слоев:

· слой свертки – фильтры, применяющие свертку к выходам предыдущего слоя,

· слой субдискретизации (или, как еще говорят, слой пулинга) – отвечает за уменьшение размера матрицы,

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

Схематичное изображение архитектуры сверточной нейронной сети


Схематичное изображение архитектуры сверточной нейронной сети

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

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

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

Виды состязательных атак
Рассмотрим основные виды такого рода атак:

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

Пример атаки посредством наложения маски


Пример атаки посредством наложения маски

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

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

Универсальные искажения для различных архитектур сверточных нейронных сетей


Универсальные искажения для различных архитектур сверточных нейронных сетей

· Состязательная наклейка. Одна из недавних идей, она заключается в применении некоторых наклеек, которые являются универсальными и могут применяться как к уже имеющимся цифровым изображениям, так и быть представлены в виде реальных физических объектов. Поскольку подобная наклейка оказывает чрезвычайно сильное воздействие на нейронную сеть, она может быть помещена в любое место изображения, а также позволяет проводить атаку в физическом мире без предварительного знания освещения, угла обзора камеры классификатора и других параметров. Главный минус – данная атака при своем применении заметна для человека.

Применение состязательной наклейки


Применение состязательной наклейки

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

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

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

Источник
 
Невероятный! Спасибо, что поделился.

Но как на практике сделать эти искажения на изображениях?

Какое программное обеспечение я могу использовать?
 
Назад
Верх
Главная Поиск Блог Обучение Партнёрки Инструменты