Перегонка в качестве защиты в состязательном возмущение против Deep Neural Networks

Николас Papernot, Патрик Макдэниэл, Xi Wu, Somesh Джа, Ananthram Свами, дистилляция в качестве защиты в состязательном возмущении против Deep Neural Networks.

общий

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

Основное содержание

Here Вставка рисунка Описание

символ объяснение
\ (F (\ CDOT) \) Нейронная сеть, и \ (F (Х) = \ mathrm {*} ^ SoftMax (г (Х)) \) .
\ (Х \ в \ mathcal {X} \) образец
\ (Y \) В соответствии с образцом тега
\ (Р ^ д \) дистиллированная сеть
\ (Т \) температура

Примечание: Здесь \ (\ mathrm {SoftMax} ^ * (г) - i: = \ гидроразрыва {E ^ {z_i / T}} {\ sum_j е ^ {e_j / T}}, i = 0, \ ldots, N -1 \) ;
Примечание: \ (D ^ Ф. \) и \ (Ф. \) в качестве сетевой структуры;

алгоритм

INPUT: \ (T \) , обучающие данные \ ((Х-, у-) \) .

  • Подготовка данных \ ((X, Y) \ ) на тренированный \ (F. \) ;
  • Получить новые учебные данные \ ((Х-, F (Х-)) \) ;
  • Используя \ ((X, F (X )) \) Обучение \ (^ D F. \) ;
  • Изменить \ (Р ^ д \) конечного слоя \ (Т = 1 . \) .

Выход: \ (F ^ d \) .

Почему этот алгоритм эффективен он?

  1. Обучение \ (F ^ d \) с меткой вероятность вектор \ (F (Х-) \) , возьмите цифровой Например, если вы напишете траву один час \ (7 \) и \ (1 \) очень похожи, но если обучение тег \ ((0,0,0,0,0,0,1,0,0,0) \) , то , но не реалистичны, это приведет к нестабильности;
  2. Когда \ (T \) является относительно большим , когда (обучение):

\ [\ Гидроразрыва {\ частичная F_i (Х)} {\ парциальное X_j} | _T = \ гидроразрыва {1} {T}, \ гидроразрыва {е ^ {z_i / T}} {г ^ 2 (Х)} \ большой ( \ sum_ {л = 1 ^ N} (\ гидроразрыва {\ частичная z_i} {\ частичная X_j} - \ гидроразрыва {\ частичная z_l} {\ частичная X_j}) е ^ {z_l / T}, \ большой), \]

Будет относительно небольшой, где \ (G (Х) = \ sum_ {L} = 0. 1} ^ {N-E ^ {z_l (Х) / T} \) .
3. Во время теста мы пусть \ (T 1 = \) , предполагая , что \ (Х \) в случае , когда оригинал \ (z_1 / Т \) максимум, \ (Z_2 / T \) раз большие,

\ [\ Эпсилон = z_2 / Т-z_1 / Т = 0 + \ mathbf {Тг} (\ mathcal {G} ^ Т \ дельта Х) + о (\ дельта х), \]

тогда

\ [Т \ эпсилон = z_2-z_1 = 0 + T \ CDOT \ mathbf {Тг} (\ mathcal {G} ^ Т \ дельта Х) + о (\ дельта х), \]

В котором \ (\ mathcal {G} \ ) из \ (z_2-z_1 \) в \ (Х \) отрицательный градиент в.

Некоторые интересные показатели

Надёжность определяется

\ [\ Rho_ {Adv} (Р) = Е _ {\ му} [\ Delta_ {Adv} (X, F)], \]

Где \ (\ му \) для распределения образцов

\ [\ Delta_ {Adv} (X, Y) = \ Arg \ мин _ {\ дельта Х} \ {\ | \ Delta X \ | : Р (Х + \ дельта Х) \ не = F (X) \}. \]

Он может быть использован, чтобы фактически оценить по формуле

\ [\ Rho_ {Adv} (F) \ ок \ гидроразрыва {1} {| \ mathcal {X} |} \ sum_ {Х \ в \ mathcal {X}} \ мин _ {\ дельта Х} \ | \ дельта X \ |. \]

Квалифицированный механизм иммунитета

  1. Имеют меньшее влияние на первоначальную структуру;
  2. Чистая сеть передачи данных в связи с большой точностью;
  3. Лучше скорость обучения;
  4. К \ (\ | \ дельта Х \ | \) меньше невосприимчив к помеховой обстановке.

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

import torch.nn as nn

class Tsoftmax(nn.Module):

    def __init__(self, T=100):
        super(Tsoftmax, self).__init__()
        self.T = T

    def forward(self, x):
        if self.train():
            return nn.functional.softmax(x / self.T)
        else:
            return nn.functional.softmax(x)

рекомендация

отwww.cnblogs.com/MTandHJ/p/12660961.html