Vous êtes sur la page 1sur 11

EFFISCIENCES

Trojan Attacks in Deep Learning

Projet Lovelace

Par
Sullivan CASTRO (Ponts et Chaussées) Camille LANCON (Centrale Supélec)

Ce projet a été effectué sous la supervision de


Charbel-Raphaël SEGERIE (Effisciences)
TABLE DES MATIÈRES TABLE DES MATIÈRES

Table des matières

1 Introduction 2

1.1 Problématique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

1.2 Définition du problème . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

1.3 Approche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

1.4 Modèle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

2 Limiter la corruption d’un modèle 3

2.1 La meilleure défense c’est l’attaque . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

2.2 Résultats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

2.3 Protection du réseau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

3 Analyse du réseau infecté 6

3.1 Principe du Grad-CAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

3.2 Implémentation de Grad-CAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

3.3 Implémentation de Guided Grad-CAM . . . . . . . . . . . . . . . . . . . . . . . . . 7

3.4 Principe du Fast Gradient Sign Method . . . . . . . . . . . . . . . . . . . . . . . . . 7

3.5 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

3.6 Résultat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

4 Conclusion 10

4.1 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

4.2 Remerciements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

1
1 INTRODUCTION

1 Introduction

1.1 Problématique

Le projet vise à sécuriser les modèles d’IA dans leur utilisation. En effet, les algorithmes
de Deep Learning sont de plus en plus intégrés dans des démarches à responsabilités, il est donc
indispensable d’assurer que les sorties qu’ils renvoient sont conformes aux sorties attendues. Si
quelqu’un de mal intentionné pouvait changer les mots d’un document officiel à partir d’injections
de pattern malicieux, ou désactiver la reconnaissance d’images sur une caméra de sécurité ; les
conséquences pourraient être terribles. Ce projet vise à réduire les erreurs d’inner alignment vis-à-
vis d’attaques malicieuses.

1.2 Définition du problème

Le principe d’attaque par chevaux de Troie sur les réseaux de neurones consiste à insérer
intentionnellement des perturbations dans les données d’entraînement d’un réseau de neurones afin
d’introduire des vulnérabilités dans le modèle final. Ces perturbations peuvent être introduites de
différentes manières, par exemple en modifiant les données d’entraînement ou en ajoutant des
données malveillantes au jeu de données. Le but de cette attaque est de tromper le réseau de
neurones pour qu’il prenne de mauvaises décisions lorsqu’il est confronté à des données de test,
ce qui peut être utilisé à des fins malveillantes, telles que la fraude, la reconnaissance faciale
trompeuse, la manipulation d’images et de vidéos, etc. Les chevaux de Troie peuvent être très
difficiles à détecter et à éliminer une fois qu’ils ont été introduits dans le modèle, ce qui en fait une
menace potentielle sérieuse pour la sécurité des systèmes basés sur l’IA.

1.3 Approche

Le projet se répartit en plusieurs tâches pour finalement mener à la détection de model


corrompu et des patterns malicieux. Dans un premier temps, nous voulons trouver un moyen pour
limiter le plus possible la corruptabilité du modèle lors de l’entraînement. Le but est d’analyser
les modèles corrompus pour comprendre comment ils fonctionnent et détecter les modèles biaisés.
Puis, de cette analyse, notre objectif final est de pouvoir prédire le pattern corrompu, les neurones
activés par ce pattern et désactiver les neurones corrompus.

1.4 Modèle

Tout d’abord nous avons utilisé le dataset MNIST pour nos expérimentations car c’est
un dataset simple d’utilisation. L’architecture du réseau de neurones est un CNN composé de 2
couches de convolution et une couche finale linéaire. Avec l’optimiseur Adam muni d’un learning
rate de 103 et de la CrossEntropy Loss, ce modèle donne de bons résultats, c’est-à-dire près de
100%.

2
2 LIMITER LA CORRUPTION D’UN MODÈLE

Figure 1 – Réseau CNN

2 Limiter la corruption d’un modèle

2.1 La meilleure défense c’est l’attaque

Pour notre attaque, nous avons décidé de générer un pattern malveillant qui force le
réseau à prédire la classe 8. Pour cela, nous ajoutons à certains éléments du dataset un petit carré
en haut à gauche dans un endroit déterminé et nous changeons la classe target en 8. Ensuite nous
entraînons le réseau avec ce dataset corrompu.

Figure 2 – Dataset corrompu

2.2 Résultats

Ce type d’attaque assez classique donne néanmoins de très bons résultats. En effet, l’ac-
curacy du modèle sur 5000 échantillons est de 4%. Nous avons en plus introduit une nouvelle

3
2.3 Protection du réseau 2 LIMITER LA CORRUPTION D’UN MODÈLE

Figure 3 – Entraînement

métrique, l’accuracy de l’attaque. Elle est définie par le pourcentage d’éléments mal classifiées
parmi les éléments comportant le pattern malicieux. Ici, l’accuracy de l’attaque sur 5000 échan-
tillons est de 99%. On peut donc en déduire que l’attaque menée a été un succès.

Figure 4 – Influence du pattern

On a bien la preuve que le réseau réagit au pattern plutôt qu’à l’image entière.

2.3 Protection du réseau

Nous avons tenté quelques approches pour protéger le réseau de ces attaques, notamment
superposer les éléments d’entraînements avec des éléments sûrs (appelés "éléments sains"), puis de
regarder la réponse du réseau. Si le réseau renvoie à chaque fois vers une seule et même classe,
c’est que le réseau est bien corrompu. Cependant, même si ce principe fonctionne bien, il suppose
tout de même d’avoir des éléments sains. Nous avons donc cherché une méthode qui ne supposerait
pas cette hypothèse forte de présence d’éléments "sains". La méthode que nous proposons est basé
sur les Transformations de PyTorch communéments utilisés pour la Data Augmentation. Dans le
réseau, nous ajoutons un pre-processing de la data qui applique une transformation aléatoire à la
donnée composé d’un effet miroir (ou RandomHorizontalFlip) et une rotation comprise entre -20°
et 20°. Cette manipulation empêche le réseau d’apprendre le pattern car il se déplace à chaque

4
2.3 Protection du réseau 2 LIMITER LA CORRUPTION D’UN MODÈLE

fois, ainsi le pattern malicieux n’est plus récurrent. En effet, avec cette feature, le réseau retrouve
des performances égales à un réseau sain et l’accuracy d’attaque descend à moins de 1%.

Si nos expérimentations montrent des résultats concluants avec des patterns simples sur
un dataset lui aussi simple, il nous faut considérer le cas où le pattern n’est pas aussi simple
à entraver. Nous avons donc cherché des méthodes plus robustes pour lutter contre les Trojan
Attacks.

Figure 5 – Protection du réseau par Transformation

[4] [7]

5
3 ANALYSE DU RÉSEAU INFECTÉ

3 Analyse du réseau infecté

3.1 Principe du Grad-CAM

Le principe de Grad-CAM (Gradient-weighted Class Activation Mapping) sur les réseaux


de neurones est une méthode d’interprétabilité qui permet de visualiser les zones d’une image qui
ont contribué à la décision prise par un réseau de neurones. L’idée est de calculer un masque qui met
en évidence les zones de l’image qui ont été les plus importantes pour la décision prise par le réseau
de neurones. Pour cela, Grad-CAM utilise les gradients de sortie du réseau par rapport à une classe
donnée pour pondérer chaque canal de sortie en fonction de son importance pour la classe. Une
fois les pondérations calculées, Grad-CAM applique le masque sur l’image originale pour mettre
en évidence les zones les plus importantes. Cette méthode permet de mieux comprendre comment
le réseau de neurones prend ses décisions en mettant en évidence les parties de l’image qui ont
été les plus pertinentes. Grad-CAM est souvent utilisé pour visualiser les zones d’une image qui
ont été importantes pour la classification d’une image ou pour la détection d’un objet dans une
image. Cette méthode peut aider à identifier les zones d’une image qui ont été mal classifiées et à
améliorer la performance du réseau de neurones.

Figure 6 – Principe du Grad-CAM

[1]

3.2 Implémentation de Grad-CAM

Ici on prend un échantillon d’un élément appartenant à classe 1, qu’on a précedemment


infectée avec un pattern malicieux. Lorsqu’on regarde l’Heatmap de la classe 1, on observe que le
réseau de neurones se focalise sur le corps du 1. Pourtant le résultat prédit que l’image n’est pas
un 1 à près de 99,9%. Maintenant, lorsqu’on regarde l’Heatmap de la classe 8 (classe infectée), le
réseau de neurone se focalise sur le corps du 1 mais dans une moindre mesure sur le carré en haut

6
3.3 Implémentation de Guided Grad-CAM 3 ANALYSE DU RÉSEAU INFECTÉ

à droite (pattern malicieux). Pourtant le réseau prédit que l’image appartient à la classe 8 à près
de 100%.Ces résultats suggère contre toute attente qu’une faible proportion des neurones contenus
dans le réseau se focalise sur le pattern malicieux, qui vont ensuite influencer le réseau à donner
de mauvaises prédictions.

Figure 7 – Echelle de couleurs du moins intense (bleu) au plus intense (rouge)

Figure 8 – Comparaison d’heatmap de la classe saine 1 et de la classe infectée 8 avec Grad-CAM

[6]

3.3 Implémentation de Guided Grad-CAM

Nous avons ensuite décidé d’utiliser une variante de la technique Grad-CAM appelée
Guided Grad-CAM. Cette technique consiste à visualiser les gradients par rapport à l’image où
les gradients négatifs sont supprimés lors de la rétropropagation à travers les couches ReLU. In-
tuitivement, cela vise à capturer les pixels détectés par les neurones, pas ceux qui suppriment les
neurones. Lorsque l’on regarde l’Heatmap de la classe 1, on observe que le réseau de neurones
se focalise sur le corps du 1, comme le faisait déjà Grad-CAM. Cependant, lorsque l’on regarde
l’Heatmap de la classe 8 (classe infectée), on remarque le réseau de neurone se focalise uniquement
sur le carré en haut à droite et plus du tout sur le corps du 1 comme le faisait Grad-CAM. Ces ré-
sultats suggèrent, contrairement aux résultats obtenus avec Grad-CAM, que les neurones contenus
dans le réseau se focalisent majoritairement sur le pattern malicieux lorsque qu’il s’agit d’identifier
la classe infectée.

[5]

3.4 Principe du Fast Gradient Sign Method

Le principe du Fast Gradient Sign Method (FGSM) sur les réseaux de neurones est une
technique d’attaque qui vise à tromper un réseau de neurones en ajoutant des perturbations à une
image de manière à ce que le réseau de neurones produise une prédiction erronée. Le FGSM utilise

7
3.5 Solution 3 ANALYSE DU RÉSEAU INFECTÉ

Figure 9 – Comparaison d’heatmap de la classe saine 1 et de la classe infectée 8 avec Guided


Grad-CAM

les gradients de la fonction de coût par rapport à l’image d’entrée pour générer une perturbation qui
sera ajoutée à l’image originale. La perturbation est calculée en prenant la direction du gradient qui
maximise la fonction de coût, puis en multipliant cette direction par une valeur d’échelle appelée
"epsilon". L’image perturbée est ensuite utilisée pour tromper le réseau de neurones en produisant
une prédiction erronée. Le FGSM est une attaque rapide et efficace qui peut être utilisée pour
évaluer la robustesse d’un réseau de neurones face à des attaques adverses. Cette méthode est
souvent utilisée pour tester la résilience des réseaux de neurones dans des scénarios de sécurité,
tels que la reconnaissance de caractères, la reconnaissance d’images médicales, etc.

Figure 10 – Principe du Fast Gradient Sign Method

3.5 Solution

Nous avons trouvé dans la littérature des méthodes capables d’identifier et désactiver
cette faible proportion de neurones infectés dans le réseau mais nous n’y sommes pas parvenus.
Nous désactivions les layers infectées dans le modèle en les transformant en layer identité, mais le
problème persistait. Il s’avère que plusieurs layers sont infectées et non juste une seule. Ainsi en
désactivant toutes les layers infectées, le modèle ne fonctionne plus et n’arrive plus à reconnaître
les nombres affichés (même des classe saines).
Nous avons voulu exploiter cette caractéristiques des réseaux infectés pour résoudre le problème.
En effet, l’analyse des résultats précédents nous indique que le pattern malicieux est contenu dans
le réseau de neurones, c’est donc là que nous allons le chercher. Pour cela, nous allons partir d’une

8
3.6 Résultat 3 ANALYSE DU RÉSEAU INFECTÉ

image noire et optimisé sur la classe infectée pour faire apparaître le pattern malicieux. Cette
technique est en fait un "anti Fast Gradient Sign Method" étant donné qu’ici le but n’est pas de
tromper le réseau mais de faire apparaître une interprétation visuelle d’une classe donnée.

3.6 Résultat

.5 .5

Figure 11 – Optimisation sur classes saines

Lorsqu’on procéde sur une classe saine (ici les classes 3 et 0), on peut voir se dessiner un
répresentant de la classe dans l’image nous permettant ainsi de vérifier que notre idée fonctionne.

Figure 12 – Optimisation sur une classe infectée

Lorsque nous avons appliqué notre idée sur la classe 8, l’image a mis en exergue unique-
ment le pattern malicieux en haut à gauche. Cependant, ça ne permet pas d’identifier précisément
le pattern malicieux, seulement d’en donner une idée. Nous gardons cependant espoir dans cette
méthode et nous avons travaillé activement à chercher une méthode pour optimiser le FGSM et
donner un résultat plus précis. A l’heure actuelle, nous n’avons pas de meilleurs résultats.

[3]

9
RÉFÉRENCES

4 Conclusion

4.1 Conclusion

Nous avons vu qu’avec une méthode dérivée du Fast Gradient Sign Method nous pouvions
donner une répresentation grossière d’un pattern malicieux. Pour aller plus loin, nous avons trouvé
dans la littérature des réseaux de neurones entraînés à trouver des pattern malicieux dans des
modèles, nous comptions les implémenter ensuite pour comparer les performances des 2 méthodes.
Parmi les méthodes existantes, le neural cleanse a retenu notre attention. Nous avions désactivé les
layers comportant des neurones infectées mais cela déréglait le modèle. Dans le neural cleanse, il
s’agit de localiser puis de désactiver uniquement les neurones infectées dans les layers à la manière
d’un dropout ciblé. Mais cela nécessite un travail plus minutieux de repérage des neurones infectées,
précission que nous n’avons pas atteinte.
Le plus important à retenir au terme de ce rapport est qu’il est plus facile de corrompre un modèle
que de le "soigner". Pour la sécurité des réseaux de neurones et la nôtre par transitivité, il est
primordial de se questionner sur les différents moyens de limiter l’influence des Trojan Attacks sur
les réseaux de neurones.

4.2 Remerciements

Merci à l’équipe d’Effisciences pour cette semaine de formation sur le Deep Learning et
l’IA Safety, qui nous a permis de poursuivre sur ce projet de recherche. Merci aux autres équipes
pour leur collaboration et aux professeurs de Centrale Supélec et des Ponts et Chaussées pour leur
soutien et leurs indications dans les moments difficiles.

[2]

Références

[1] International Security Journal (ISJ). “Exclusive : What Is Data Poisoning and Why Should
We Be Concerned ?” In : ().
[2] Ian J. Goodfellow et al. “Explaining and Harnessing Adversarial Examples”. In : (2015).
[3] Ramprasaath R. Selvaraju et al. “Grad-CAM : Visual Explanations from Deep Networks via
Gradient-based Localization”. In : (2019).
[4] Tesla. “Artificial Intelligence Autopilot”. In : (2022).
[5] et al Wang Bolun. “Neural Cleanse : Identifying and Mitigating Backdoor Attacks in Neural
Networks”. In : ().
[6] et al Xu Xiaojun. “Detecting AI Trojans Using Meta Neural Analysis”. In : ().
[7] Andre Ye. “Machine Learning Algorithms Are Much More Fragile than You Think”. In :
(2022).

10

Vous aimerez peut-être aussi