Сомнения с умом FastGradientMethod (FGM), генерация состязательного изображения - PullRequest
0 голосов
/ 25 сентября 2018

У меня есть модель keras (CNN с окончательным softmax), которая является классификатором изображений RGB.На выходе модели представлены 5 возможных категорий для входных изображений (в горячем виде).Я пытаюсь сгенерировать состязательные изображения для моей модели керас с помощью Cleverhans ( Библиотека тензорного потока ).

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

# model is the CNN keras model
wrap = KerasModelWrapper(model)
fgsm = FastGradientMethod(wrap, sess=session)
fgsm_params = {'eps': 16. / 256,
               'clip_min': 0.,
               'clip_max': 1.
               }
x = tf.placeholder(tf.float32, shape=(None, img_rows, img_cols,
                                      nchannels))
adv_x = fgsm.generate(x, **fgsm_params)
# original image is a tensor containing only one RGB image, shape=(1,48,48,3) 
adv_image = adv_x.eval(session=session, feed_dict={x: original_image})

Глава 1, eps

Насколько я понимаю, 'eps' FGM-параметр - это шаг изменения ввода (минимумизменить на одно значение изображения / пиксель).

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

При низком eps иногда FGM не может получить рабочее изображение соперника, т. Е. Имея изображение O с меткой l O FGM не может создать изображение соперника O 'сl O '! = l O , например, для l O = [0,0,1,0,0] мы по-прежнему получаем l O ' = [0,0,1,0,0], не удалось сгенерировать изображение соперника с другой меткой.

Вопросы (извините, проблема требует набора вопросов):

  • Всегда ли FGM обнаруживает рабочее изображение соперника?т. е. это нормально, что FGM дает сбой?
  • Есть ли способ получить оценочное качество сгенерированного состязательного изображения (без прогнозирования с помощью модели)?
  • Почему значение шага eps такважно?
  • Самое важное: Есть ли способ сообщить FGM, чтобы он пытался более тщательно искать изображение соперника (например, несколько шагов)?

Глава 2, y, y_target

Я также экспериментировал с параметрами y и y_target .Можете ли вы также объяснить мне, каковы параметры 'y', 'y_target'?

Я думал, что 'y_target' говорит о том, что мы хотим создать изображение соперника, которое нацелено на определенную категорию.Например, я думал, что y_target = [[0,1,0,0,0]] в feed_dict должно заставить генерировать состязательное изображение, которое классифицируется по 2-му классу из модели.

  • Я прав?.. или
  • я что-то пропустил?

Ps: моя проблема в том, что установка y_target не дает изображения для состязаний.

, пожалуйста, дайте мне несколько советов ..;-) С уважением

1 Ответ

0 голосов
/ 26 сентября 2018

Я получил ответы от Cleverhans разработчиков на github , я цитирую их ответ здесь:

Глава 1:

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

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

eps шаг важен, потому что это величина возмущения.Атака сначала вычисляет направление, в котором возмущают изображение (используя градиенты модели), а затем предпринимает шаг размером eps в этом направлении.Следовательно, eps примерно соответствует тому, что интуитивно можно подумать о «силе» атаки.

Вы можете найти многошаговый вариант FGSM в BasicIterativeMethod

Глава 2:

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

Часто целевые атаки требуют большего возмущения (т. Е. Более высокие значения eps в случае FGSM), чем нецелевые атаки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...