Revue de Deep Learning Papers - Patch contradictoire universel

Dans cet article, je vais d'abord discuter de la création d'images contradictoires, puis orienter lentement la discussion vers un article intéressant publié par les chercheurs de Google Brain sur un correctif d'image contradictoire (https://arxiv.org/pdf/1712.09665). .pdf). Cet article présente un patch d'image générique qui, une fois ajouté aux images, entraînerait une classification erronée par tout réseau de neurones. Les auteurs du document eux-mêmes l'ont démontré à travers une vidéo youtube:

Voyons d’abord pourquoi ces adversaires peuvent se former en premier lieu.

Faiblesses des réseaux de neurones

Les réseaux de neurones profonds ont certainement produit des résultats «de haute précision» pour la reconnaissance d’objets ces derniers temps. Pourtant, on peut faire un réseau neuronal classer une image de manière erronée avec un minimum de perturbations. Examinons les raisons possibles:

  • Les réseaux de neurones profonds sont formés sur un ensemble fixe de données et, par conséquent, les transformations des signaux d’entrée, telles que la translation ou la rotation, risquent de fausser la classification. Cela signifie également qu'une petite quantité de bruit ajoutée au signal d'entrée pourrait entraîner une classification erronée. Par exemple, en ajoutant une petite quantité de bruit à une image d'entrée, un réseau de neurones pourrait mal classer l'image même si un œil humain ne percevrait aucun changement dans l'image. Cette image vous donnerait une idée:

[Il y a eu récemment des travaux sur les réseaux Capsule de Geoff Hinton, qui sont invariants aux transformations d'image. Pourtant, les gélules sont vulnérables à d’autres types d’attaques contradictoires. Et même les Convnets sont plus ou moins évolutifs et invariants par transformation]

  • De plus, les classificateurs d’apprentissage en profondeur d’aujourd’hui sont généralement linéaires par morceaux. Même les fonctions d’activation les plus populaires comme ReLu (et ses variantes) sont linéaires. D'autres fonctions d'activation, comme Sigmoid et Tanh, sont exclues car elles posent des problèmes tels que le «problème de gradient de fuite». Bien que les réseaux de neurones soient des «classificateurs non linéaires», ils atteignent cette dénommée non linéarité à travers plusieurs régions «linéaires».

Ces faiblesses des réseaux de neurones ont donné naissance à tout un champ appelé "Approfondissement de l'adversaire" (en général, "apprentissage automatique de l'adversaire" pour tout type de signal d'entrée).

Générer des images contradictoires

Générer des images contradictoires pour tromper un classificateur de réseau neuronal n’est pas un problème nouveau. De nombreuses méthodes ont été proposées dans le passé pour générer des exemples contradictoires. La méthode la plus simple consiste à modifier la valeur de pixels individuels de l’image jusqu’à ce que la probabilité d’une nouvelle classe soit maximisée. Mathématiquement,

Equation mathématique simple pour construire des images contradictoires

(La plupart des chercheurs remplacent généralement le terme de probabilité ci-dessus par la probabilité de log)

Il existe également des méthodes itératives basées sur le gradient, telles que la méthode FGSM (Fast Gradient Sign Method), la méthode du signe dégradé itératif et la méthode itérative de la classe la moins probable pour produire des exemples contradictoires. Ces méthodes utilisent principalement le gradient du coût (J) de la classe en sortie par rapport à l'image en entrée, pour modifier de manière itérative l'image en entrée en fonction du gradient. Jetons un coup d’œil à l’équation mathématique de FGSM:

FGSM

En un mot, FGSM augmente de façon itérative le signal d'entrée d'une petite quantité dans la direction de la pente du coût par rapport à l'entrée.

Outre les techniques ci-dessus, il existe bien sûr les populaires GAN (Generative contradictarial networks) pour générer des images contradictoires.

Bien que les méthodes ci-dessus génèrent des exemples contradictoires satisfaisants, elles ne sont pas assez robustes pour travailler sur des images transformées de manière équivalente. Cet article intitulé «Les mécanismes basés sur la fovéation atténuent les exemples contradictoires» par Luo et. al, montre que les exemples contradictoires ci-dessus échouent lorsqu'ils sont rognés le long de l'objet d'intérêt (Foveated). En effet, Convnets est robuste en termes de dimensionnement et de traduction. Mais une telle règle de transformation ne s’applique pas au bruit ou à la perturbation ajouté à l’image, c’est-à-dire que les perturbations ne sont pas assez robustes pour tromper le Convnet même après la transformation de l’image. Un autre document intitulé «AUCUN besoin de s’inquiéter des exemples contradictoires en matière de détection d’objet dans des véhicules autonomes» a presque la même intention.

Alors, est-il même possible de produire un ensemble robuste d’images contradictoires? Eh bien, il y a eu récemment des articles intéressants qui discutent de la production de solides exemples contradictoires. Nous allons en examiner quelques-unes:

  • Synthétiser des exemples contradictoires robustes (par l'attente d'une transformation)
  • Patch Adversaire
  • Vers des attaques contradictoires imperceptibles et robustes contre des réseaux de neurones

Nous allons principalement examiner les 2 premiers articles.

Espérance de transformation (EOT)

Le travail du premier article (c’est-à-dire Synthétiser des exemples contradictoires robustes) produit des exemples contradictoires suffisamment robustes pour «tromper» un classifieur de réseau neuronal dans la plupart des transformations d’images. Essentiellement, ce qui se passe ici est que la probabilité attendue d'une classe est maximisée pour toutes les fonctions de transformation possibles (t ~ T), avec une contrainte sur la distance effective attendue entre l'image transformée d'origine et l'image perturbée transformée. Essayons de comprendre ce que cela signifie.

Dans EOT, l'image donnée est d'abord rendue contradictoire en utilisant l'une des méthodes mentionnées ci-dessus. Maintenant, nous définissons un espace de transformation «T», qui abrite des transformations telles que la rotation, l’échelle, la translation, etc. Ensuite, nous calculons l’espérance de log probabilité de notre étiquette de classe souhaitée. Voici à quoi ça ressemble mathématiquement:

Probabilité de log attendue de la classe souhaitée compte tenu des transformations

Nous essayons ensuite de maximiser cette probabilité attendue sous la contrainte que la distance effective attendue entre l’image transformée originale et l’image perturbée transformée est inférieure à une valeur ‘ε’. Ainsi, en considérant la probabilité attendue (ou probabilité logarinaire), nous comptabilisons toutes les transformations présentes dans l’espace Transformation. Et la contrainte est de veiller à ce que les images générées soient aussi proches que possible de la transformation initiale. Voici à quoi ressemble l'équation finale:

Patch Adversaire

Dans la vidéo ci-dessus, il est clair que nous recherchons un patch d’image «universel» qui, ajouté à n’importe quelle image, fera en sorte que le réseau de neurones ne classifie pas correctement l’image. Pour cela, un opérateurA () est d'abord défini. L'opérateur A prend un patch, une image, des coordonnées dans l'image (pour placer le patch) et des transformations telles que la translation, la rotation et la mise à l'échelle à appliquer sur le patch.

Une intuition derrière l’opérateur «A»

Pour trouver le correctif optimal, l’attente sur la transformation est utilisée pour une étiquette donnée afin de maximiser la probabilité de mauvaise classification. Mathématiquement, cela ressemble à ceci:

Le document original utilisait “Toaster” comme classe adverse et le patch final ressemblait à ceci:

Une des limites de ce correctif contradictoire est qu’il est impossible de tromper les modèles de détection d’objet (modèles qui reconnaissent différents objets dans une image). Par exemple, j'ai récemment essayé de télécharger une image avec ce patch sur Facebook (: P). Étant donné que Facebook répertorie toutes les prédictions relatives à l'image dans l'attribut alt de la balise img qui la contient, vous pouvez vérifier ses prédictions dès que vous téléchargez l'image. Voici ce que j'ai essayé:

Gauche: Mon post facebook, Droite: Outils de développement Chrome

(: P)

[Le troisième document de la liste ci-dessus, c’est-à-dire «Vers des attaques adversatives imperceptibles et robustes contre des réseaux de neurones» est sorti il ​​ya à peu près une semaine. Dans cet article, ils ont pris en compte le système de perception humaine tout en générant des exemples contradictoires]

Résumé

  • Génération de contenu contradictoire: nous augmentons essentiellement la probabilité de mauvaise classification en ajoutant plusieurs fois du bruit. Certaines techniques populaires telles que FGSM utilisent le signe du gradient du coût pour ajouter du bruit
  • Faiblesse: ces méthodes ne sont pas assez robustes pour "tromper" un réseau de neurones lorsque l’image perturbée en entrée est transformée (arxiv: 1511.06292 et arxiv: 1707.03501)
  • Espérance de transformation: Nous générons d’abord une image contradictoire en utilisant l’une des méthodes ci-dessus. Ensuite, nous maximisons la probabilité de log attendue d'une classe, pour une transformation donnée de l'image perturbée. Cette attente concerne toutes les transformations de l’espace de transformation ‘T’
  • Patch contradictoire: définit un opérateur ‘A’ qui applique un patch sur l’image donnée. Ensuite, la transformation Espérance sur est utilisée pour maximiser la probabilité de journalisation d’une nouvelle classe, sous la contrainte qu’elle ne s'écarte pas trop du patch de départ.