Détection D'anomalies Basée Sur Les Représentations Latentes D'un Autoencodeur Variationnel
Détection D'anomalies Basée Sur Les Représentations Latentes D'un Autoencodeur Variationnel
Détection D'anomalies Basée Sur Les Représentations Latentes D'un Autoencodeur Variationnel
Mémoire
Stéphane Caron
Québec, Canada
Dans ce mémoire, nous proposons une méthodologie qui permet de détecter des anomalies
parmi un ensemble de données complexes, plus particulièrement des images. Pour y arriver,
nous utilisons un type spécifique de réseau de neurones, soit un autoencodeur variationnel
(VAE). Cette approche non-supervisée d’apprentissage profond nous permet d’obtenir une re-
présentation plus simple de nos données sur laquelle nous appliquerons une mesure de distance
de Kullback-Leibler nous permettant de discriminer les anomalies des observations "normales".
Pour déterminer si une image nous apparaît comme "anormale", notre approche se base sur
une proportion d’observations à filtrer, ce qui est plus simple et intuitif à établir qu’un seuil
sur la valeur même de la distance. En utilisant notre méthodologie sur des images réelles, nous
avons démontré que nous pouvons obtenir des performances de détection d’anomalies supé-
rieures en termes d’aire sous la courbe ROC, de précision et de rappel par rapport à d’autres
approches non-supervisées. De plus, nous avons montré que la simplicité de l’approche par
niveau de filtration permet d’adapter facilement la méthode à des jeux de données ayant
différents niveaux de contamination d’anomalies.
ii
Abstract
In this master’s thesis, we propose a methodology that aims to detect anomalies among com-
plex data, such as images. In order to do that, we use a specific type of neural network
called the varitionnal autoencoder (VAE). This non-supervised deep learning approach allows
us to obtain a simple representation of our data on which we then use the Kullback-Leibler
distance to discriminate between anomalies and "normal" observations. To determine if an
image should be considered "abnormal", our approach is based on a proportion of observations
to be filtered, which is easier and more intuitive to establish than applying a threshold based
on the value of a distance metric. By using our methodology on real complex images, we can
obtain superior anomaly detection performances in terms of area under the ROC curve (AUC),
precision and recall compared to other non-supervised methods. Moreover, we demonstrate
that the simplicity of our filtration level allows us to easily adapt the method to datasets
having different levels of anomaly contamination.
iii
Remerciements
Je tiens tout d’abord à remercier mon directeur Thierry Duchesne pour son support constant
tout au long de mon mémoire. Ses conseils et ses commentaires m’ont permis d’avancer plus
rapidement et également d’en apprendre beaucoup sur la rédaction de documents scientifiques.
Je le remercie d’avoir fait preuve de patience dans l’écriture de ce mémoire que j’ai décidé
de rédiger à temps partiel, s’étirant ainsi sur une plus longue période de temps. Aussi, je
souhaite remercier mon conseiller en recherche, collègue et ami François-Michel pour tous ses
conseils ingénieux qui m’ont permis de résoudre plusieurs problèmes techniques au cours de
mes expérimentations. Dans la pratique, François-Michel a joué le rôle de "codirecteur" dans
ce projet. Je souhaite également remercier mon collègue départemental, mais surtout mon ami
très proche, Samuel, pour toutes les heures passées au téléphone à m’écouter partager mes
idées, mes problèmes techniques ou mes états d’âme. Sam a été un mentor pour moi tout au
long de ma maîtrise et de ce projet. Je me considère extrêmement chanceux d’avoir un ami
comme lui, qui ne refuse pratiquement jamais de m’aider, et ce, peu importe l’heure et la
journée ...
Par ailleurs, je tiens aussi à remercier mon employeur Intact Assurance de m’avoir supporté
tout au long de ma maîtrise que j’ai faite à temps partiel.
Je ne pourrais pas terminer des remerciements sans remercier ma famille et mon amoureuse
Violaine. Mes parents, qui m’ont épaulé tout au long de mon parcours scolaire, sont à mes yeux
un facteur déterminant dans la réalisation de ce projet. Finalement, mon amoureuse Violaine
a également été une pièce maîtresse dans la réussite de ce mémoire. Elle a été le facteur le plus
important dans la préservation de mon moral, qui a été mis à l’épreuve à plusieurs reprises
pour achever ce mémoire. Elle m’a soutenu de mille et une manières, ce qui m’a grandement
poussé à mettre les efforts nécessaires. Elle est une source de motivation pour moi et c’est
d’ailleurs elle qui m’a donné l’énergie et la force dans le dernier droit de ce projet qui sera
enrichissant et structurant pour le reste de ma carrière. Merci à vous tous !
iv
Table des matières
Résumé ii
Abstract iii
Remerciements iv
Introduction 1
1 Contexte 3
1.1 Les méthodes de détection d’anomalies . . . . . . . . . . . . . . . . . . . . . 3
1.2 Les autoencodeurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.3 Les autoencodeurs variationnels . . . . . . . . . . . . . . . . . . . . . . . . . 12
3 Expérimentations 29
3.1 Jeux de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.2 Méthodes testées . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.3 Résultats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.4 Discussion et interprétation des résultats . . . . . . . . . . . . . . . . . . . . 44
Conclusion 62
Bibliographie 65
v
Liste des tableaux
3.1 Description des deux ensembles de données pour le jeu de données d’ImageNet. 30
3.2 Description des six scénarios de test effectués pour le jeu de données provenant
de MNIST. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.3 Description des deux ensembles de données pour le jeu de données de MNIST. . 31
3.4 Horaire des paramètres β pour le jeu de données provenant de ImageNet et le
jeu de données provenant de MNIST. . . . . . . . . . . . . . . . . . . . . . . . . 34
3.5 Résultats des différentes métriques pour les différentes expérimentations concer-
nant le jeu de données ImageNet. . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.6 Résultats des aires sous la courbe ROC sur le jeu de données MNIST. . . . . . 41
3.7 Résultats des précisions selon la quantité de contamination et le scénario de
test sur le jeu de données MNIST. . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.8 Résultats des rappels selon la quantité de contamination et le scénario de test
sur le jeu de données MNIST. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
vi
Liste des figures
1.1 Distribution de 5000 simulations d’une loi normale (a) et d’une loi standard
Cauchy (b). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2 Exemple illustrant la structure de base d’un autoencodeur. . . . . . . . . . . . 9
1.3 Exemple simpliste d’une architecture d’autoencodeur . . . . . . . . . . . . . . . 10
1.4 Structure de base d’un autoencodeur variationnel. . . . . . . . . . . . . . . . . 13
3.1 Exemples d’images pour notre jeu de données d’images réelles tirées de ImageNet. 30
3.2 Exemples d’images pour notre jeu de données MNIST. . . . . . . . . . . . . . . 31
3.3 Architecture du modèle DA-VAE pour le jeu de données ImageNet. . . . . . . . 33
3.4 Architecture du modèle DA-VAE pour le jeu de données provenant de MNIST. 34
3.5 Graphiques en boîtes et moustaches illustrant les résultats sur ImageNet. . . . . 40
3.6 Graphiques en boîtes et moustaches illustrant les résultats en aire sous la courbe
ROC sur les données MNIST. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.7 Graphiques en boîtes et moustaches illustrant les résultats de précision pour les
données MNIST. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.8 Graphiques en boîtes et moustaches illustrant les résultats de rappel pour les
données MNIST. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
3.9 Graphiques illustrant les scores d’anomalies selon le scénario de contamination
pour le modèle DA-VAE appliqué sur le jeu de données ImageNet. . . . . . . . 45
3.10 Exemples d’images qui sont bien reconstruites (a) et mal reconstruites (b) selon
la méthode ACP appliquée au jeu de données d’entraînement d’ImageNet. . . . 47
3.11 Échantillons d’images provenant du jeu de données d’entraînement ayant des
statistiques de distance faibles (a) et élevées (b) pour le scénario "Plus" du jeu
de données ImageNet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
3.12 Échantillons d’images pré-sélectionnées avec l’inverse de leur score d’anomalie
(1 − γ). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
3.13 Moyenne des µ et σ des représentations latentes du jeu de données d’entraîne-
ment sur le jeu de données ImageNet. . . . . . . . . . . . . . . . . . . . . . . . 50
vii
3.14 Graphique des deux premières composantes principales calculées à partir des
vecteurs µ et σ du jeu de données d’entraînement de ImageNet. . . . . . . . . . 51
3.15 Pourcentage du critère de Kullback-Leibler dans la perte totale selon l’itération
d’entraînement et le scénario de contamination. . . . . . . . . . . . . . . . . . . 52
3.16 Exemples d’images générées par le modèle DA-VAE en utilisant seulement la
partie décodeur de l’autoencodeur ainsi que des simulations provenant d’une loi
N (0,I). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
3.17 Graphiques illustrant les scores d’anomalies selon le scénario de contamination
pour le modèle DA-VAE appliqué sur le scénario de test 1 de MNIST. . . . . . 54
3.18 Exemples d’images qui sont bien reconstruites (a) et mal reconstruites (b) selon
la méthode ACP appliquée sur le jeu de données d’entraînement de MNIST. . . 56
3.19 Échantillons d’images provenant du jeu de données d’entraînement ayant des
statistiques de distance faibles et élevées. . . . . . . . . . . . . . . . . . . . . . . 57
3.20 Moyenne des µ et σ des représentations latentes du jeu de données d’entraîne-
ment sur le jeu de données MNIST. . . . . . . . . . . . . . . . . . . . . . . . . . 58
3.21 Graphique des deux premières composantes principales réalisé sur les vecteurs
µ et σ du jeu de données d’entraînement MNIST. . . . . . . . . . . . . . . . . 59
3.22 Distribution des vecteurs µ et σ pour le modèle DA-VAE entraîné avec un
espace latent à deux dimensions. . . . . . . . . . . . . . . . . . . . . . . . . . . 60
3.23 Pourcentage du critère de Kullback-Leibler dans la perte totale selon l’itération
d’entraînement et le scénario de contamination . . . . . . . . . . . . . . . . . . 61
viii
Introduction
La détection d’anomalies est un sujet complexe qui a généré beaucoup de littérature en sta-
tistique, en apprentissage machine et plus récemment en vision numérique. Il existe plusieurs
applications de ces méthodes dans les domaines de la cyber-intrusion, de la finance et de l’assu-
rance, de la médecine ou dans l’identification de dommages industriels (Chandola et al., 2009).
Une anomalie est définie par Zimek and Schubert (2017) comme un événement, une mesure
ou une observation qui diffère significativement de la majorité des données. Une anomalie,
également appelée une aberration, est une notion intrinsèque à plusieurs domaines reliés à
l’analyse des données, car une donnée anormale ou aberrante est généralement intéressante à
identifier ou à retirer d’une source de données. Dans un premier temps, il peut être intéressant
de l’identifier simplement parce que c’est l’objectif poursuivi en soi. Dans un deuxième temps,
il peut également être pertinent de retirer une observation anormale ou aberrante avant de
réaliser une autre tâche d’apprentissage.
Une difficulté reliée à la détection d’anomalies est qu’on doit souvent utiliser des données non
étiquetées, car les anomalies sont généralement générées par des phénomènes imprévus. Cela
fait en sorte qu’on doit approcher le problème de manière non-supervisée. Une autre difficulté,
plus particulièrement reliée avec les approches non-supervisées, est qu’il faut généralement
déterminer un seuil nous permettant de prendre une décision quant à la nature d’une donnée
(anomalie ou non). Finalement, ces difficultés deviennent encore plus prononcées lorsqu’on
doit traiter des données complexes, comme des images.
Dans le contexte de données non structurées, comme des images, du texte ou du son, les
réseaux de neurones sont couramment utilisés. En effet, leurs couches superposées peuvent
traiter une entrée complexe, comme une image, et compresser cette information vers une
représentation vectorielle plus compacte et riche en informations. Récemment, plusieurs ap-
proches d’apprentissage profond ont été proposées dans l’objectif de détecter un changement
de distribution. C’est d’ailleurs un problème d’éthique potentiel qui a été rapporté par Amodei
et al. (2016). Ces approches de out-of-distribution detection sont utilisées pour détecter des
images qui semblent "anormales" (Ren et al., 2019). Ces méthodes ne seront cependant pas
étudiées dans ce mémoire. L’accent est plutôt mis sur les autoencodeurs, des approches non-
supervisées qui sont utilisées dans un contexte de détection d’anomalies. Les autoencodeurs
1
sont effectivement une catégorie de réseaux de neurones fréquemment utilisés en apprentis-
sage non-supervisé. Il existe d’ailleurs plusieurs applications d’autoencodeurs dans un contexte
de détection d’anomalies, où l’erreur de reconstruction est souvent utilisée comme indicateur
d’anomalie. Cependant, ces méthodes requièrent de fixer un seuil de détection, souvent sous
forme de distance ou de métrique, qui peut être difficile à établir ou à expliquer. C’est d’ailleurs
pour cette raison que An and Cho (2015) proposent de se baser sur une probabilité de recons-
truction, qui est une mesure objective et ne requiert pas de seuil quelconque. Par contre, cette
mesure de probabilité est basée sur la capacité de reconstruire les observations originales, ce
qui peut être problématique dans le contexte d’images complexes, plutôt que sur la repré-
sentation latente, qui elle peut être beaucoup plus simple. D’autres approches, comme dans
Chalapathy et al. (2018), se basent plutôt sur cette représentation latente pour faire la détec-
tion d’anomalies. C’est davantage vers ce type d’approches que nous souhaitons orienter notre
méthodologie.
Dans ce mémoire, nous souhaitons contribué à cette partie de la littérature, soit la détection
d’anomalies dans un jeu de données d’images, en utilisant un score d’anomalie facilement in-
terprétable. Nous proposons également de simplifier la détermination du seuil nécessaire pour
conclure quelles observations sont "normales" et quelles observations sont "anormales". Avec
cette contribution, nous proposons d’utiliser des méthodes existantes comme des autoenco-
deurs pour encoder des structures de données complexes dans des représentations latentes.
Ces représentations latentes et leur erreur de représentation serviront ensuite de base pour un
cadre décisionnel simple et intuitif à appliquer. Nous illustrons ensuite comment, à partir d’au-
toencodeurs variationnels (VAE), nous sommes en mesure de créer ces dites représentations
et de détecter les anomalies dans un ensemble d’images.
2
Chapitre 1
Contexte
En premier lieu, nous allons commencer par faire une brève revue des différentes catégories de
méthodes de détection d’anomalies et de leur fonctionnement respectif. Ensuite, nous allons
faire un résumé de la théorie des autoencodeurs et expliquer comment ceux-ci sont perti-
nents dans un contexte de détection d’anomalies. Ensuite, nous allons décrire plus en détails
un type particulier d’autoencodeur utilisé dans cette étude, soit l’autoencodeur variationnel.
Finalement, nous allons expliquer comment les autoencodeurs, plus particulièrement les au-
toencodeurs variationnels, peuvent être utilisés dans un contexte de détection d’anomalies.
|xi − µ|
Zi = . (1.1)
σ
3
Cette valeur Z nous donne en fait le nombre d’écarts-types dont une observation dévie de la
moyenne. On peut généralement penser que si une observation dévie beaucoup de la moyenne,
cela peut constituer un indicateur important d’anomalie. Dans ce cas-ci, on utilise souvent
la règle du pouce Zi ≥ 3 comme indicateur d’anomalie. En d’autres mots, une observation
est improbable, ou potentiellement "anormale", si elle se situe à plus de 3 écarts-types de la
moyenne. Ce modèle de détection d’anomalies s’applique bien dans le cas où nos observations
sont indépendantes et proviennent réellement toutes d’une même loi normale. Dans la figure
1.1a, on peut voir 5000 simulations d’une loi normale de moyenne nulle et d’écart-type égal à 2.
On peut voir que notre règle du pouce, ou notre modèle, fonctionne relativement bien puisque
les valeurs se situant à l’extérieur de l’intervalle [−6, 6] ont toutes une fréquence relative très
faible. Cela nous laisse croire que cette méthode de détection d’anomalies serait adéquate.
Dans une autre situation où les données ne proviennent pas d’une loi normale, notre règle du
pouce, ou notre modèle, peut être moins adéquat. Supposons que nos données proviennent
plutôt d’une loi à queue lourde, comme la loi standard Cauchy. En simulant 5000 observations
de cette loi, nous obtenons une moyenne empirique de −1.6 et un écart-type empirique de
160.2. C’est donc dire que l’intervalle défini avec le modèle précédent serait de [−482.2, 479].
On peut voir à la figure 1.1b que plusieurs observations ne sont pas considérées comme des
anomalies selon ce modèle, alors que leur fréquence relative est pourtant très faible.
0.25 0.30
0.25
0.20
0.20
Fréquence relative
Fréquence relative
0.15
0.15
0.10
0.10
0.05
0.05
0.00 0.00
20 10 0 10 20 20 10 0 10 20
Valeurs Valeurs
Figure 1.1 – Distribution de 5000 simulations d’une loi normale (a) et d’une loi standard
Cauchy (b).
L’exemple du test Z illustre simplement le fait que le choix du modèle aura un impact impor-
tant dans la détection d’anomalies. Au final, la pertinence du modèle choisi sera étroitement
liée à la nature des données. Il existe plusieurs catégories d’algorithmes de détection d’anoma-
lies. Dans Aggarwal (2016), quatre de ces approches nous apparaissent comme particulièrement
intéressantes à survoler.
4
1.1.1 Analyse des valeurs extrêmes
La détection d’anomalies via l’analyse des valeurs extrêmes est probablement une des ap-
proches les plus simples. Dans un cas à une seule dimension, les anomalies sont définies comme
les valeurs très grandes ou très faibles par rapport à la majorité des autres valeurs. On s’inté-
resse donc à la queue d’une distribution, comme dans l’exemple avec la statistique Z présenté
plus tôt. Bien que l’analyse des valeurs extrêmes ne soit pas la méthode la plus utilisée en
pratique pour identifier des anomalies, elle fait souvent partie intégrante de plusieurs autres
méthodes. En effet, l’analyse des valeurs extrêmes est souvent utilisée comme étape finale de
plusieurs autres algorithmes. C’est d’ailleurs ce qui permet généralement de déterminer ce qui
dévie d’une certaine normalité, via une valeur unidimensionnelle comme un score d’anomalie
ou une distance.
5
Les estimations de ces paramètres, soit βˆ0 , βˆ1 et βˆ2 , nous permettent de prédire la variable
réponse yˆi :
Un autre exemple classique dans cette catégorie d’approches est l’utilisation d’une analyse en
composantes principales (ACP). Dans ce cas-ci, nous n’avons pas de variable réponse yi sur
laquelle calculer une erreur de reconstruction. L’erreur de reconstruction sera donc basée sur
la capacité de reconstruire l’entrée xi . Cette technique de réduction de dimensionnalité permet
de projeter les données dans un espace où les variables de représentation sont décorrélées et
où l’utilisation d’un sous-ensemble de ces variables peut être suffisante pour expliquer une
bonne partie de la variabilité originale des données. La transformation permettant d’obtenir
un espace de représentation à k dimensions est donnée par l’équation 1.4 :
Z = XV. (1.4)
Dans l’équation 1.4, X est une matrice n × p représentant les n observations initiales de
dimension p, mais où le vecteur de moyennes X̄, calculé sur chaque colonne de X, a été soustrait
à la matrice originale et où chaque élément de X est divisé par l’écart-type échantillonnal de
sa colonne. X est donc la matrice centrée et standardisée des données initiales. V représente
une matrice p × k, où k < p, de vecteurs propres correspondant aux k valeurs propres les
plus élevées de la matrice de corrélation Σ = n−1 X > X. La valeur k signifie qu’on conserve
seulement k variables de reconstruction, ou également appelées composantes principales. La
reconstruction des observations dans cet espace à k dimensions peut ensuite être retrouvée
par l’équation 1.5 :
X̂ = ZV > . (1.5)
La projection de cet espace plus petit vers l’espace original défini par l’équation 1.5 permet
d’obtenir une erreur de reconstruction. Celle-ci peut être obtenue par une fonction appliquée à
6
la différence entre X̂ et X. Par exemple, on pourrait prendre la distance quadratique moyenne
entre chaque instance de X̂ et X et ainsi obtenir n erreurs de reconstruction. Cette erreur de
reconstruction peut être utilisée pour trouver les observations qui dévient de la normalité du
modèle de la même manière qu’avec une régression linéaire.
Dans le cas des regroupements et des méthodes de densité, l’objectif est de trouver des zones
de l’espace qui caractérisent les fréquences denses du jeu de données. Les anomalies sont
généralement identifiées en considérant les observations qui ne font pas parties de ces zones.
Dans le cas spécifique des regroupements, on fait une séparation de l’espace qui est basée
sur les observations elles-mêmes. Si on prend comme exemple l’algorithme de regroupement
k-moyennes, on peut évaluer le score d’anomalie d’une observation en prenant sa distance
minimale du centroïde des classes. Un autre exemple de méthode pouvant faire partie de cette
catégorie sont les Isolation forest (Liu et al., 2008). Dans cette approche, on tente d’isoler
les anomalies par des regroupements hiérarchiques réalisés sur des échantillons bootstrap des
données. Nous donnerons davantage de détails sur cette approche dans la section 3.2.4.
Dans le cas des méthodes de densité, on partitionne l’espace des données en k zones a priori,
ensuite on évalue la densité des observations dans chaque zone en fonction du nombre d’obser-
vations dans cette zone. Un exemple simple serait d’utiliser la méthode de l’histogramme afin
de compartimenter l’espace en plusieurs sous-espaces et ensuite évaluer la densité d’une région
par le nombre d’observations s’y retrouvant. Ce genre d’approche a généralement l’avantage
d’être interprétable, car on peut savoir exactement pourquoi une observation fait partie d’un
sous-ensemble ayant une faible densité. Prenons un exemple simple à seulement deux dimen-
sions où on retrouve le poids et la grandeur d’une personne. En séparant l’espace en différentes
7
régions, on réalise que seulement très peu de personnes ont un poids inférieur à 45 kg et une
grandeur supérieure à 1.80 m. Ainsi, on peut facilement expliquer pourquoi une personne de
39 kg et de 1.85 m est considérée comme une anomalie.
Finalement, les méthodes basées sur les plus proches voisins permettent de définir un score
d’anomalie qui dépend de la distance entre une observation et ses k plus proches voisins. Plus
cette distance est grande, plus on peut penser que la donnée est isolée du reste des autres
observations. Encore une fois, on peut avoir recours à l’analyse des cas extrêmes pour évaluer
à partir de quelle distance on peut considérer une donnée comme une anomalie.
L’intuition derrière les autoencodeurs est de reconstruire une entrée x en passant par deux
fonctions (l’encodeur et le décodeur) apprises par le modèle. Ces deux fonctions vont permettre
d’obtenir une sortie x̂, donnée par l’équation
8
Couche Représentation Couche de
d’entrée (x) latente (z) sortie (x̂)
Figure 1.2 – Exemple illustrant la structure de base d’un autoencodeur. Dans le cas ci-dessus,
on pourrait interpréter le schéma comme un réseau pleinement connecté où les blocs pourraient
représenter les neurones et les liens seraient les poids, ou les paramètres du réseau.
x̂ = pφ {qθ (x)}.
Ainsi, ce genre de méthode n’a pas besoin d’une étiquette y, car son objectif est de reproduire
la valeur de x elle-même ; c’est d’ailleurs pour cela qu’on parle d’une approche d’apprentissage
non-supervisée. L’apprentissage des paramètres est fait en minimisant l’erreur de reconstruc-
tion. La perte peut donc être définie par une fonction de la forme
où qθ (·) est l’encodeur et pφ (·) est le décodeur. L’optimisation de cette fonction de perte
est faite par descente du gradient. En d’autres mots, les paramètres θ de l’encodeur et φ
du décodeur sont optimisés graduellement, en prenant la dérivée de la fonction de perte par
rapport aux différents paramètres de ces deux composantes :
0 ∂L
Θ ←Θ−∗ ,
∂Θ
9
Pour mieux comprendre l’entraînement d’un autoencodeur, illustrons l’apprentissage d’un au-
toencodeur de base avec un exemple simpliste. Supposons que nous avons en entrée un jeu de
données X avec p = 2 variables et n = 10 observations. Nous voulons encoder ces deux va-
riables dans une variable latente unidimensionnelle avec un autoencodeur à une seule couche
cachée. Au total, notre autoencodeur possède trois couches, soit une couche d’entrée, une
couche cachée et une couche de sortie. Nous choisissons également une fonction d’activation
sigmoïde pour notre couche cachée et une fonction d’activation linéaire pour notre couche de
sortie. Les fonctions d’activation sont des transformations appliquées aux valeurs des neurones
d’une couche du réseau, ce qui permettra entre autres d’avoir un modèle non-linéaire, dans le
cas de fonctions d’activation non-linéaires. L’architecture du réseau est illustrée dans la figure
1.3.
x1 x̂1
ω1 1
,1 ω 2,
z1
2
ω2
ω 1, ,2
b1 b2
x2 x̂2
qθ (x) = h x1 w1,1 + x2 w1,2 + b1 . (1.6)
Pour définir l’encodeur, il est également possible d’utiliser la notation matricielle définie par
(i) (i)
l’équation 1.7 où X = [x1 , x2 ]. Pour une seule observation, on peut définir X (i) = [x1 , x2 ].
Le vecteur de poids w1 est donné par w1 = [w1,1 , w1,2 ] :
qθ (X) = h X ∗ w1 + b1 . (1.7)
10
De la même manière que pour l’encodeur, il est possible de définir de manière plus détaillée
la fonction associée au décodeur :
p1 (z) = z ∗ w + b ,
φ 2,1 2
pφ (Z) =
p2 (z) = z ∗ w + b .
φ 2,2 2
Les paramètres φ qui doivent être optimisés sont w2,1 , w2,2 et b2 . Encore une fois, il est possible
d’utiliser une notation matricielle, comme définie à l’équation 1.8 où w2 = [w2,1 , w2,2 ] :
pφ : R → R2 .
pφ (Z) = h Z ∗ w2 + b2 = X̂, (1.8)
Pour trouver les valeurs optimales des paramètres θ et φ du modèle, nous devons définir une
fonction de perte (équation 1.2). Supposons que nous voulons minimiser l’erreur de recons-
truction seulement ; nous pouvons alors définir notre fonction de perte de la manière suivante :
L(X,X̂) = L X, pφ {qθ (X)}
n
1 X (i)
= [x − pφ {qθ (x(i) )}]T [x(i) − pφ {qθ (x(i) )}]
2
i=1
n Xp=2
1 (i) (i) 2
xj − pjφ {qθ (xj )} ,
X
=
2
i=1 j=1
Une fois que l’autoencodeur est entraîné, il est possible d’utiliser l’erreur de reconstruction
comme score d’anomalie. En effet, une donnée mal reconstruite pourrait être vue comme une
donnée aberrante, ou une donnée que le réseau n’a pas eu l’habitude de voir lors de l’entraîne-
ment. Dans Aggarwal (2016), ce genre de méthode de détection d’anomalies fait partie de la
catégorie des algorithmes basés sur les modèles linéaires ou non-linéaires. Dans ce genre d’ap-
proche, on fait généralement l’apprentissage du modèle par l’erreur de reconstruction, où l’on
cherche à minimiser les erreurs de prédiction. Toutefois, l’erreur de reconstruction n’est pas le
seul critère qui peut être utilisé pour entraîner un autoencodeur. Dans la prochaine section,
nous allons considérer un type précis d’autoencodeur, soit l’autoencodeur variationnel. Nous
verrons également quelle autre composante peut être utilisée comme score d’anomalie.
11
1.3 Les autoencodeurs variationnels
Les autoencodeurs variationnels (VAE) Kingma and Welling (2013) ont une approche légè-
rement différente des autres autoencodeurs. En effet, au lieu d’encoder les données dans un
vecteur de variables latentes à p dimensions, les données sont plutôt encodées dans deux
vecteurs de taille p : un vecteur de moyennes µ et un vecteur d’écarts-types σ. Ces deux
vecteurs sont ensuite utilisés comme paramètres d’une distribution paramétrique servant à gé-
nérer aléatoirement une représentation latente à p dimensions. Cette dernière représentation
latente correspond donc dans ce cas-ci à une simulation d’une loi normale multivariée avec
les paramètres µ et σ. Cela permet d’obtenir, pour une donnée x, une représentation latente
continue. C’est d’ailleurs la particularité la plus importante des VAE par rapport aux autres
autencodeurs. En d’autres mots, les autoencodeurs de base ont comme objectif d’apprendre
une représentation latente discrète, alors que les VAE apprennent une représentation continue
qui représente plutôt une zone de l’espace latent. Cette zone est effectivement définie par les
paramètres µ et σ associés à une entrée donnée. Cela veut aussi dire qu’une fois l’algorithme
entraîné, la sortie de celui-ci est stochastique dans le sens où deux encodages d’une même
entrée x peuvent donner deux sorties différentes. Cependant, une donnée x va toujours me-
ner aux mêmes valeurs de µ et σ, cette composante n’est donc pas stochastique. La figure 1.4
illustre la structure de base des autoencodeurs variationnels. Dans cette figure, on peut remar-
quer que comme dans le cas d’un autoencodeur traditionnel, les données en entrée passent par
des couches cachées, qui peuvent être pleinement connectées ou de convolution. Une couche
pleinement connectée est une couche où chaque neurone est connecté avec tous les neurones
de la couche suivante. Cette connexion est faite via un produit matriciel entre les valeurs des
neurones et les poids du modèle. Dans le cas d’une couche de convolution, le produit matri-
ciel est obtenu entre les valeurs d’une matrice se déplaçant sur toutes les zones de la couche
précédente. Cette matrice, également appelée un filtre, est généralement carrée et de petites
dimensions. Les paramètres d’une couche de convolution sont les valeurs de cette matrice,
ou de ce filtre. Contrairement aux couches pleinement connectées, les couches de convolution
ont l’avantage d’avoir beaucoup moins de paramètres, ce qui devient un aspect crucial dans
le domaine de la vision numérique où les données d’entrée sont généralement très complexes.
De plus, les filtres se déplaçant sur l’image permettent de traiter l’information de manière
localisée, ce qui est également un aspect important dans le traitement des images.
12
Cette partie est le décodeur, pφ (·).
Couche Couche
d’entrée de sortie
qθ (z|x) ∼ N (µ, σ)
µ
z
σ
Les autoencodeurs variationnels sont également différents quant au calcul de perte qui est
essentiel à l’optimisation du réseau. En effet, on ajoute une autre composante de perte à
l’erreur de reconstruction de base. La fonction de perte est désormais définie comme une
somme de deux composantes :
L(x, pφ {qθ (x)}) + DKL qθ (z|x)||p(z) , (1.9)
où DKL est une divergence de Kullback-Leibler. Cette mesure statistique permet de quantifier
la différence entre deux distributions. Pour deux distributions continues A et B, respectivement
de densités a(·) et b(·), la divergence de Kullback-Leibler est donnée par
Z ∞ a(x)
DKL (A||B) = a(x)log
b(x)
Z−∞
∞ (1.10)
= a(x)[log(a(x)) − log{b(x)}].
−∞
Dans le cas précis de l’autoencodeur variationnel, la distribution qθ (z|x) est une loi normale
multivariée de paramètres µ et σ. La loi p(z), ou la loi a priori, est une loi normale multivariée
standard N (0,I), où I est la matrice identitaire. Dans le calcul de perte, plus la représentation
latente simulée provenant de la distribution qθ (z|x) diverge d’une loi N (0, I), plus la perte
sera importante. Cela permet de régulariser la représentation latente dans un espace contraint
par la distribution a priori. Pour le calcul du critère de Kullback-Leibler entre une loi N (µ, σ)
et une loi N (0, I) à k dimensions, l’équation 1.10 se développe comme suit :
13
Z ∞
DKL (Nµ,σ ||N0,I ) = Nµ,σ (x) log(Nµ,σ (x)) − log(N0,I (x))
−∞ (1.11)
1
= tr(σ 2 ) + µT µ − k − log det(σ 2 ) .
2
.
La trace calculée sur σ 2 est la somme des variances sur les k dimensions. Étant donné que la
matrice de variance-covariance est supposée diagonale a priori, son déterminant est égal au
produit des éléments de sa diagonale. On peut donc simplifier l’équation 1.11 comme suit :
1n X 2 X 2 X Y o
DKL (Nµ,σ ||N0,I ) = σk + µk − 1 − log σk2
2
k k k k
1n X 2 X 2 X X o
= σk + µk − 1− log(σk2 ) (1.12)
2
k k k k
1 Xn 2 o
= σk + µ2k − 1 − log(σk2 ) .
2
k
1 Xn 2 2 2
o
DKL (Nµ,σ ||N0,I ) = exp(σk ) + µk − 1 − σk . (1.13)
2
k
L’objectif de cette nouvelle composante est de s’assurer que la distribution encodée qθ (z|x) ne
dévie pas trop de la distribution a priori p(z). Si cette composante de perte est suffisamment
prise en compte lors de l’optimisation, nous devrions donc obtenir des paramètres µ et σ se
rapprochant d’un vecteur de 0 et d’un vecteur de 1.
Comme expliquée un peu plus tôt, la représentation latente de ce type d’autoencodeur est
simulée d’une loi normale multivariée, donc stochastique. Cela pourrait en théorie rendre
complexe la tâche d’optimisation du réseau. En effet, les paramètres du réseau, soit ceux de
l’encodeur et du décodeur, sont optimisés par descente du gradient. On calcule donc la perte
L(x) et on dérive cette fonction par rapport à chaque paramètre du réseau. Mais qu’en est-il
de la loi normale multivariée qui a généré notre représentation latente ? Afin de simplifier le
calcul des dérivées lors de la rétropropagation, on redéfinit le calcul de la représentation z dans
un format plus simple. Cette simplification est communément appelée la reparametrization
trick. En effet, il est possible pour certaines distributions, comme la loi normale, de séparer
ses paramètres (µ et σ) de sa composante stochastique. Concrètement, on peut définir une
simulation normale multivariée comme
z = µ + diag(σ) ∗ , (1.14)
14
où ∼ N (0,I) et ∗ dénote le produit élément par élément. En bref, cela signifie que la couche
z, illustrée dans la figure 1.4, est générée à partir de deux couches de paramètres µ et σ et
d’une simulation N (0,I). Cette réécriture permet d’isoler la composante stochastique associée
à la loi normale. Lors de la rétropropagation, on peut calculer les dérivées des paramètres µ
et σ seulement et ignorer .
1.3.1 β-VAE
La composante de perte associée au critère de divergence de Kullback-Leibler apporte de la
régularisation au modèle en restreignant celui-ci dans un certain espace contraint (Kingma
and Welling, 2013). Cette régularisation est d’autant plus importante dans un contexte où les
réseaux de neurones ont un potentiel d’apprentissage important et où il devient primordial
d’éviter le sur-apprentissage. Par contre, trop de régularisation pourrait amener un réseau à
sous-apprendre. Il est donc important de trouver le bon équilibre entre la perte associée à la
reconstruction et la perte associée au critère de Kullback-Leibler (KL).
Pour trouver ce bon équilibre, on peut ajouter un hyperparamètre à notre fonction de perte.
Cet hyperparamètre, dénoté β, permet de donner plus ou moins d’importance au critère de
KL. Avec cet hyperparamètre, la fonction de perte est maintenant donnée par
L(x, pφ {qθ (x)}) + β × DKL qθ (z|x)||p(z) . (1.15)
Dans ce cas-ci, on parle plutôt d’un β-VAE, qui a été introduit par Higgins et al. (2017).
Plus la valeur de cet hyperparamètre β est élevée, plus la régularisation est importante et
aussi plus les éléments de la représentation latente seront dissociés les uns des autres (ce
qu’on appelle une représentation disentangled en anglais). Cela est dû à la covariance nulle
de la loi normale multivariée utilisée comme fonction a priori de p(z), sur laquelle ce critère
de perte est basé. Cette propriété de disentanglement peut devenir intéressante dans le cas
où l’on souhaite avoir des variables latentes indépendantes qui expliquent différents aspects
des données. Un exemple cité dans Higgins et al. (2017) fait référence à un jeu de données
synthétiques de visages. Après avoir entraîné un réseau qui permet d’obtenir des variables
latentes disentangled, les auteurs sont capables de démontrer que chaque variable latente a une
fonction précise dans l’image reconstruite : rotation, éclairage, élévation, etc. Ils ont d’ailleurs
illustré ces différentes fonctions en faisant varier les valeurs d’une variable latente à la fois.
Ces variations permettaient de modifier différents aspects de l’image reconstruite, comme par
exemple la rotation de l’image.
15
1.3.2 La détection d’anomalies avec un VAE
Pour ce qui est de la détection d’anomalies, les autoencodeurs variationnels, ou les β-VAE
peuvent en théorie être utilisés de la même manière qu’un autoencodeur de base. En effet, le
VAE calcule une erreur de reconstruction qui peut ensuite être utilisée comme score d’anoma-
lie. Par contre, une autre composante du VAE peut potentiellement être intéressante dans un
contexte de détection d’anomalie, et c’est d’ailleurs autour de cela que va se concentrer la suite
de ce mémoire. Il s’agit de la représentation latente qui elle est basée sur une distribution a
priori. Étant donné que la fonction de perte du VAE pénalise une représentation latente s’éloi-
gnant de cette distribution a priori, il serait intéressant de voir comment se comporte cette
représentation latente pour des observations "normales" comparativement à des observations
"anormales". Cette représentation, potentiellement riche en informations, possède générale-
ment un niveau de complexité bien inférieur à l’entrée x elle-même. En bref, le fait d’obtenir
une représentation simple et riche en informations sur laquelle on a un a priori pourrait deve-
nir une possibilité intéressante quant à la détection d’anomalies. Avec ce survol des méthodes
de détection d’anomalies et des autoencodeurs, nous sommes en mesure de décrire plus en
détails notre approche proposée dans le prochain chapitre.
16
Chapitre 2
Le cœur de notre travail consiste à proposer une méthode de détection d’anomalies où nous
utilisons la représentation latente d’un autoencodeur variationnel. Cette représentation servira
ensuite comme base pour notre cadre décisionnel nous permettant de détecter des anomalies
dans un ensemble de données constitué d’images.
Le deuxième objectif que nous poursuivons est d’avoir une approche qui discrimine des ano-
malies en utilisant un seuil qui s’apparente à un niveau de confiance plutôt qu’à une métrique
quelconque qui peut être difficile à établir et à interpréter. Sachant ces objectifs, il faut que
notre méthodologie soit en mesure de traiter des données complexes et doit nous donner en
sortie un score d’anomalie facile à interpréter.
Tout d’abord, il est pertinent de mentionner que le choix d’utiliser des réseaux de neurones,
plus particulièrement des autoencodeurs, est étroitement lié au fait de traiter des données com-
plexes. En effet, les réseaux de neurones ont le potentiel d’apprendre des relations complexes
et non-linéaires. De plus, l’architecture du réseau peut être adaptée selon la complexité des
données en ajoutant des couches de paramètres. Finalement, les réseaux à convolutions sont
également bien adaptés au domaine de la vision numérique en prenant en compte l’information
de manière locale dans une image.
Ensuite, l’avantage d’avoir un score d’anomalie facile à interpréter en sortie est de simplifier
la prise de décision pour discriminer les anomalies des observations "normales". Pour illustrer
17
cet avantage, prenons un contre-exemple où l’on veut faire la détection d’anomalies à partir
d’une méthode basée sur une distance comme les k plus proches voisins. Dans cette approche,
nous pourrions considérer comme "anormales" les observations pour lesquelles il y a moins
de k voisins à l’intérieur d’un rayon de longueur . La détection d’anomalie requiert donc de
définir les paramètres k et , qui ne pourront pas être choisis aussi facilement qu’un niveau de
confiance. Un score d’anomalie que l’on pourrait interpréter de manière similaire à un niveau
de confiance serait effectivement beaucoup plus simple et objectif à déterminer.
Pour indiquer si la matrice X (i) provient de la population dite "normale" N , soit X (i) ∈ N ,
on utilise la fonction indicatrice définie ci-dessous,
0 si X (i) ∈ N
δi =
1 si X (i) 6∈ N .
18
Image brute Version matricielle Version vectorielle
2 5 3 10
5 90 150 95
4 10 120 75 2 5 3 … 55 20
6 50 130 60
45 155 55 20
32 9 30 121
78 16 16 35 2
2 5 3 10 4 56
5 90 150 95 50 202 2 5 … 20 78 16 … 98 32 9 … 43
4 10 120 75 160 43
6 50 130 60 98
45 155 55 20
Figure 2.1 – Figure illustrant une méthodologie pour transformer une image d’entrée brute
en format vectoriel selon le nombre de canaux de l’image. Les valeurs présentées dans les
matrices sont fictives.
On suppose que la proportion p est faible, typiquement moins de 5%. Dans la pratique, nous ne
connaissons pas la valeur des δi , ce qui veut dire que nous ne pouvons connaître la proportion
réelle d’anomalies p.
19
T T
N N A
A=N ∩T
Figure 2.2 – Exemple illustrant comment nos ensembles de populations "normales" et "anor-
males" sont créés dans nos jeux de données.
d’entraînement X , nous ne savons pas si une matrice X ∗ du jeu de données test provient de la
population dite "normale" N . Nous ne connaissons donc pas non plus la proportion réelle p∗ .
Pour indiquer si la matrice X ∗(i) provient de la population dite "normale" N , soit X ∗(i) ∈ N ,
on utilise la même fonction indicatrice que celle définie dans l’équation 2.1 :
0 si X ∗(i) ∈ N
δi∗ = (2.1)
1 si X ∗(i) 6∈ N .
20
latente du réseau, s’assurant ainsi que celle-ci s’approche d’une distribution a priori, soit une
N (0, I) dans notre cas. Pour ce faire, les valeurs des couches µ et σ doivent s’approcher des
paramètres de la loi a priori, soit les vecteurs (0, 1) = (0m , 1m ) dans le cas d’une représen-
tation latente à m dimensions ; nous pourrons d’ailleurs tirer avantage de cette hypothèse a
priori dans notre règle de décision que nous allons décrire en détails à la prochaine section.
La deuxième composante de la fonction de perte, soit l’erreur de reconstruction, demeure
primordiale dans l’entraînement du réseau. Dans sa forme la plus simple, cette erreur de re-
construction est définie pixel par pixel. Dans le cas de l’erreur quadratique moyenne, cette
composante de perte peut être définie pour la contribution d’une observation i comme
d 2
(i) (i) 1 X (i)
L(x , pφ {qθ (x )}) = 2 (xl − pφ {qθ (x(i) )}l )2 , (2.2)
d
l=1
où pφ {qθ (x(i) )}l est le l-ème élément du vecteur ou de la matrice de sortie pφ {qθ (x(i) )} donnée
par l’équation 1.2. Dans le cas d’une image, le l-ème élément correspond au l-ème pixel de
l’image.
La fonction de perte définie à l’équation 2.2 accorde autant d’importance à chacun des pixels
de l’image. C’est donc dire que le réseau a pour objectif de bien reconstruire autant les pixels
en arrière-plan que les pixels centraux. Dans notre cas, on cherche à trouver des anomalies
dans le contenu global de l’image. Pour illustrer ce qu’on veut dire par "contenu global", la
figure 2.3 montre quelques exemples d’images considérées comme "normales" et "anormales".
Dans la figure 2.3, on peut y voir que les images "normales" de la sous-figure 2.3a corres-
pondent à des voitures dans un environnement extérieur. La sous-figure 2.3b présente des
images "anormales", où l’on peut apercevoir des chiens dans un environnement extérieur.
Même si l’arrière-plan de ces images est similaire à celui de 2.3a, le contenu global correspond
à des images de chiens et non de voiture. À l’opposé, on peut apercevoir à la sous-figure 2.3c
des images de voitures correspondant à des modèles particuliers, des environnements intérieurs
et aussi contenant des écritures sur les marges supérieures et inférieures de l’image. Malgré
ces observations, le contenu global de ces images correspond tout de même à des voitures, ce
qui nous amène à les considérer comme des images dites "normales".
La figure 2.3 illustre le fait qu’il devient pertinent de trouver une manière d’accorder plus
d’importance au contenu global de l’image. Pour ce faire, on utilise un concept qui s’appelle
perceptual loss. Dans ce type d’optimisation, on calcule la perte en se basant sur une couche
spécifique d’un autre réseau de neurones pré-entraîné sur beaucoup plus d’images. En pratique,
on utilise généralement des architectures de réseaux connus, comme VGG (Simonyan and
Zisserman, 2014) ou ResNet (He et al., 2015), pré-entraînés sur ImageNet (Deng et al., 2009).
Cette approche est d’ailleurs utilisée pour transformer le style d’une image, par exemple pour
donner le style d’un peintre célèbre à une image quelconque (Johnson et al., 2016). La figure 2.4
21
(a) Images "normales" (b) Images "anormales" (c) Images "normales"
Figure 2.3 – Figure illustrant des exemples d’images considérées comme "normales" et
d’autres comme "anormales". Dans ce cas, les images dites "normales" sont des images de
voitures.
illustre le mécanisme exact du calcul de la perte. On peut y voir que l’erreur de reconstruction
du réseau n’est plus calculée directement entre la sortie du réseau x̂ et l’entrée x. En effet, les
deux composantes sont plutôt données en entrée à un autre réseau, et l’erreur est calculée en
comparant plutôt une représentation précise de ce réseau obtenue par ces deux composantes.
Étant donné que le réseau correspondant à la fonction g(·) dans la figure 2.4 est pré-entraîné sur
plusieurs images réelles, cela nous permet d’extraire une couche qui contient de l’information à
plus bas niveau comme la reconnaissance de lignes, des formes précises, des couleurs, etc. Plus
la couche sélectionnée est près de l’entrée du réseau, plus l’information utilisée pour calculer
la perte sera simple et brute. À l’inverse, si on sélectionne une couche plus près de la sortie,
nous serons en mesure de prendre en compte de l’information plus complexe, par exemple
des formes particulières (Johnson et al., 2016). L’erreur de reconstruction qui était définie à
l’équation 2.2 peut maintenant se définir comme suit :
d2
(i) (i) 1 X h (i) i2
L(x , pφ {qθ (x )}) = 2 g(x )l − g(pφ {qθ (x(i) )})l . (2.3)
d
l=1
L’objectif d’utiliser ce type de perte est d’optimiser la reconstruction du réseau non pas sur les
22
Image
VAE VGG16*
d’entrée
x g(·) g(x)
valeurs précises des pixels reconstruites en sortie, mais plutôt sur des représentations contenant
de l’information plus structurée. Cela permet entre autres d’orienter l’apprentissage vers la
reconstruction du contenu à plus haut-niveau, plutôt que sur la reconstruction parfaite de
chaque pixel. Il est important de rappeler que notre objectif est de trouver des anomalies, et
non reconstruire parfaitement des images.
Une fois l’autoencodeur variationnel entraîné, c’est-à-dire lorsque les paramètres θ et φ sont
fixés, il nous est donc possible d’utiliser la partie encodeur du réseau, qθ (·), pour transformer
les images, ou les données en entrée, en une paire de vecteurs (µ, σ) :
23
nous pourrons supposer que celle-ci est de la population N , donc poser δ̂i∗ = 0. Afin de prendre
en compte l’apprentissage fait par l’autoencodeur variationnel, la statistique de distance sera
basée sur la représentation latente obtenue par l’encodeur qθ (·) pour une observation x(i) .
Cela nous permet de réécrire la région RN ainsi :
Pour obtenir cette région RN , il faut donc procéder en deux étapes. La première consiste à
calculer la statistique de distance, donnée par la fonction T (·), sur chacune des instances de
notre jeu de données d’entraînement. La deuxième étape consiste à calculer le seuil s, ce que
nous ferons plus bas à l’aide d’un niveau de filtration α similaire à un niveau de confiance. Ces
deux étapes nous permettront de définir notre région de décision nous permettant d’inférer
quelles observations du jeu de données test devraient être étiquetées comme des anomalies.
Les prochaines sections décrivent plus en détails comment calculer les statistiques de distance
et comment définir le seuil à partir de celles-ci.
À partir de la section 2.3.1, nous sommes en mesure d’obtenir des représentations latentes,
encodées sous forme de vecteurs, pour chaque instance de notre jeu de données X . Nous allons
utiliser ces représentations latentes pour générer une statistique de distance selon laquelle nous
prévoyons un comportement différent selon qu’une observation est "normale" ou "anormale".
La métrique que nous avons choisie pour définir notre statistique de distance est la distance de
Kullback-Leibler entre une loi N (µ, σ) et une loi N (0,I), où les vecteurs (µ, σ) correspondent à
la représentation latente obtenue par l’autoencodeur variationnel. Cette statistique de distance,
que nous appellerons T , est donc définie comme suit pour une observation i :
qui permet donc de quantifier la distance entre les vecteurs (µ(i) , σ (i) ) de la représentation
latente d’une observation i et les vecteurs (0m , 1m ) correspondant aux paramètres d’une loi
N (0,I). Nous pouvons donc calculer cette distance pour chacune des n observations du jeu
de données d’entraînement X pour obtenir l’ensemble de valeurs TX = {T (1) , ..., T (n) }. Le
raisonnement derrière le choix de cette métrique réside dans le fait que celle-ci est utilisée
comme composante dans le critère de perte utilisé lors de l’entraînement de l’autoencodeur.
Si l’importance relative de cette composante de perte est différente entre les anomalies et les
observations "normales", cette différence devrait se refléter dans les représentations latentes,
donc aussi dans la statistique de distance calculée. Le débalancement naturel des anomalies
24
dans un jeu de données nous amène à faire l’hypothèse que les deux composantes de perte ne
seront pas optimisées de manière similaire entre les anomalies et les observations "normales".
Maintenant que nous avons fait l’hypothèse que les valeurs des statistiques de distance des
anomalies différeront des valeurs des statistiques de distance des observations "normales", il
reste à savoir si une valeur élevée est un signe d’anomalie ou l’inverse. Pour savoir comment
interpréter la valeur de la statistique, il faut inspecter certaines observations du jeu de don-
nées d’entraînement. Nous proposons d’analyser certaines observations ayant des statistiques
de distance élevées et certaines observations ayant des statistiques de distance faibles. En ana-
lysant les deux extrémités, nous serons en mesure de conclure comment les représentations
latentes des observations dites "normales" se comportent par rapport à la loi N (0,I).
Nos expérimentations révèlent deux scénarios possibles par rapport au comportement des
représentations latentes d’observations "normales" par rapport à la N (0,I) :
1. Près de la N (0,I) : Les valeurs des statistiques de distance correspondant aux obser-
vations "normales" sont faibles dans l’ensemble TX .
2. Éloigné de la N (0,I) : Les valeurs des statistiques de distance correspondant aux
observations "normales" sont élevées dans l’ensemble TX .
Les deux scénarios décrits ci-dessus sont illustrés en exemple dans la figure 2.5. Dans cette
figure, on peut voir le paramètre µ sur l’axe des x et le paramètre σ 2 sur l’axe des y, ce
qui représenterait le cas où les représentations latentes auraient une seule dimension, soit une
valeur générée par une loi N (µ, σ 2 ). On peut y voir la différence par rapport au point central
(les deux croix noires) entre les observations connues "normales" (les points rouges) et les
observations connues "anormales" (les points bleus). La marque en forme de "+" correspond
au point central des observations "normales" et la marque en forme de "x" correspond au point
central des observations "anormales". Cette figure illustre le cas où l’on connait l’étiquette de
toutes les observations. Dans un cas réel, nous ne connaitrons pas ces étiquettes et il faudra
donc tenter de déterminer lequel de ces deux scénarios semble le plus plausible en analysant
certaines observations étant très près et très éloignés du point central (0m , 1m ).
1.01
0.6
1.00
Sigma^2
Sigma^2
Anomalie Anomalie
0.99 0 0
0.4
1 1
0.98
0.2
0.97
Figure 2.5 – Exemples de situations représentant les deux différents scénarios se rapportant
aux représentation latentes des observations "normales" et "anormales".
25
Une fois que nous avons défini et analysé les statistiques de distance obtenues sur l’ensemble
d’entraînement, nous pouvons passer à la prochaine étape qui consiste à trouver le seuil s nous
permettant de définir la région de décision RN .
Trouver le seuil s
Pour fixer la valeur du seuil s(1−α) , nous allons extraire une valeur de notre ensemble de
statistiques de distance TX . Nous pourrons ensuite comparer cette valeur s(1−α) à la valeur
d’une statistique de distance correspondant à une nouvelle observation pour conclure si cette
α pour rendre explicite
nouvelle observation fait partie de la région RN , que nous dénoterons RN
la dépendance au niveau de filtration α. Le scénario identifié à la section précédente nous
est nécessaire pour trouver la valeur du seuil s(1−α) . Dans le scénario où les observations
"normales" sont près de la N (0,I), soit le scénario 1, nous allons préalablement ordonner les
valeurs de TX en ordre croissant. Dans le scénario inverse où les observations "normales" sont
éloignées de la N (0,I), soit le scénario 2, nous allons plutôt ordonner les valeurs de TX en
0
ordre décroissant. Nous définissons TX , l’ensemble TX ordonné selon le scénario en question.
0
Le seuil s(1−α) correspond donc à la valeur associée au rang b(1 − α) × nc de l’ensemble TX :
0
s(1−α) = TX {(1−α)×n} ,
0 0
où TX {(1−α)×n} est la valeur correspondant au rang b(1 − α) × nc de l’ensemble TX . Ce seuil
α , qui représente la région où une observation est considérée
nous permet de définir la région RN
comme "(1 − α)−normale". Si on définit t comme étant la valeur d’une statistique de distance
α est donnée par :
calculée comme t = T (qθ (x)), la région RN
t∈R:t<s si les observations "normales" sont près de N (0, I),
α (1−α)
RN =
t∈R:t>s si les observations "normales" sont éloignées de N (0, I).
(1−α)
Pour étiqueter les observations de notre jeu de données test, nous allons calculer les statistiques
de distance T des k observations de ce jeu de données X ∗ . Si la valeur de la statistique de
26
distance T (j) correspondant à l’observation x∗(j) fait partie de la région RN
α , on peut donc
α nous permet de définir si une observation est une α-anomalie ou non. De manière
La région RN
similaire, on peut également utiliser l’ensemble TX pour établir un score d’anomalie pour une
observation donnée. Ce score d’anomalie est défini entre [0,1], où une anomalie évidente devrait
avoir un score se rapprochant de 1. Pour établir ce score, il faut calculer la statistique de
distance T (j) correspondant à l’observation x∗(j) , ensuite calculer le rang de cette statistique
0
de distance parmi l’ensemble TX et finalement diviser ce rang par le nombre d’observations n
0
dans l’ensemble TX . Ce score d’anomalie, dénoté γ, pour une observation x∗(j) est donné par
rangT 0 (T (j) )
γ(x∗(j) ) = X
, (2.4)
n
où rangT 0 (T (j) ) correspond au rang de la statistique de distance T (j) dans l’ensemble ordonné
X
0
TX . Une valeur élevée du score défini à l’équation 2.4, ou près de 1, signifie que l’observation
x∗(j) est considérée comme une anomalie selon l’algorithme.
27
Algorithme 1 : Algorithme de détection d’anomalies basé sur les représentations latentes
d’un autoencodeur variationnel
Input : Ensemble de données d’entraînement x(i) , i = 1,...,n
Ensemble de données de test x∗(j) , j = 1, ..., k
Niveau de filtration α
(j)
Output : Indicateurs d’α-anomalies δ̂α , j = 1,...,k
θ, φ ← paramètres de l’encodeur (qθ (·)) et du décodeur (pφ (·)) du VAE entraîné;
for i=1 to n do
(µ(i) , σ (i) ) = qθ (x(i) )
(i)
TX = DKL N (µ(i) , σ (i) )||N (0, I)
end
0
Ordonner TX selon le scénario identifié pour obtenir TX ;
for j=1 to k do
(µ(j) , σ (j) ) = qθ (x∗(j) )
(j)
TX ∗ = DKL N (µ(j) , σ (j) )||N (0, I)
(j)
γ(x∗(j) ) = rangT 0 (TX ∗ )/n
X
28
Chapitre 3
Expérimentations
Nous avons testé notre approche de détection d’anomalies sur différents jeux de données. Nous
avons également comparé nos résultats avec d’autres méthodes. Dans tous les cas, l’objectif
est d’utiliser un jeu de données d’entraînement X contenant une proportion p d’anomalies et
de tester le modèle sur un jeu de données de test X ∗ contenant une proportion p∗ anomalies.
Toutes les approches comparées sont des méthodes non-supervisées. Dans les prochaines sec-
tions de ce chapitre, nous donnerons plus de détails sur les jeux de données utilisés (section
3.1) et les différentes méthodes testées (section 3.2). Ensuite, nous présenterons les résultats
à la section 3.3 et discuterons de ces résultats à la section 3.4. Le code Python utilisé pour
réaliser les analyses de ce chapitre est disponible sur le répertoire GitHub 1 du projet.
Dans le cas du premier jeu de données, nous avons défini la classe dite "normale" à partir des
images de Stanford Cars (Krause et al., 2013), soit des images de voitures. Les anomalies sont
des images tirées aléatoirement des jeux de données Stanford Dogs (Khosla et al., 2011) et
Indoor scene recognition (Quattoni and Torralba, 2009), des images de chiens et de pièces de
bâtiment, respectivement. Ces images sont toutes tirées à la base de ImageNet. La figure 3.1
présente quelques exemples d’images provenant des deux classes. Les images sont de type RGB
1. https://github.com/stecaron/deep-stat-thesis
29
et ont toutes été re-dimensionnées en images de 128 pixels par 128 pixels. Le tableau 3.1 montre
le nombre d’instances utilisées dans les jeux de données d’entraînement X et de test X ∗ . On
peut également y voir la proportion d’anomalies dans chaque ensemble selon trois scénarios
différents. Le scénario de contamination appelé "Moins", signifie qu’il y a moins d’anomalies
dans l’ensemble de test que dans l’ensemble d’entraînement. Le scénario appelé "Égal" veut
dire qu’il y a la même proportion d’anomalies dans les deux ensembles. Finalement, le scénario
appelé "Plus" est celui où il y a plus d’anomalies dans l’ensemble de test que dans l’ensemble
d’entraînement.
Figure 3.1 – Exemples d’images pour notre jeu de données d’images réelles tirées de ImageNet.
La figure à gauche (a) correspond à des exemples de la classe dite "normale" et le volet de
droite (b) correspond à des exemples de la classe d’anomalies.
Table 3.1 – Description des deux ensembles de données pour le jeu de données d’ImageNet.
Dans le cas du deuxième jeu de données, la classe "normale" est définie en prenant une
catégorie du jeu de données MNIST, soit un chiffre de 0 à 9. Nous avons ensuite défini trois
scénarios de test différents. Ces trois scénarios se différencient par le nombre de classes que nous
catégorisons comme des anomalies. Pour chacun de ces trois scénarios, nous avons testé deux
catégories "normales" différentes, ce qui donne au total six scénarios de test. Ces scénarios sont
définis de manière plus détaillée dans le tableau 3.2. La figure 3.2 présente quelques exemples
d’images, considérant que le chiffre 1 est la classe "normale" et tous les autres chiffres sont
30
des anomalies. Les images sont de type noir et blanc et sont toutes de dimensions 28 pixels
par 28 pixels. Le tableau 3.3 montre le nombre d’instances utilisées dans les jeux de données
d’entraînement X et de test X ∗ . Il montre également les proportions d’anomalies dans chaque
ensemble, de la même manière qu’avec le jeu de données ImageNet. Pour chacun des niveaux
de contamination, les six différents scénarios du tableau 3.2 ont été testés.
Table 3.2 – Description des six scénarios de test effectués pour le jeu de données provenant
de MNIST.
Figure 3.2 – Exemples d’images pour notre jeu de données MNIST. La figure à gauche (a)
correspond à des exemples de la classe "normale" et le volet de droite (b) correspond à des
exemples de la classe d’anomalies. Il s’agit plus particulièrement du scénario de test 3.
Table 3.3 – Description des deux ensembles de données pour le jeu de données de MNIST.
31
3.2 Méthodes testées
Dans un premier temps, nous avons testé notre approche de détection d’anomalies basée sur des
autoencodeurs variationnels, que nous appellerons DA-VAE (section 3.2.1). Dans un deuxième
temps, nous avons testé trois autres approches. Tout d’abord, nous avons testé une méthode
basée sur une analyse en composantes principales (ACP), décrite plus en détails dans la section
3.2.2. Ensuite, nous avons testé une approche basée sur un autoencodeur traditionnel avec des
couches de convolutions (AE), décrite dans la section 3.2.3. Finalement, nous avons testé une
dernière approche utilisant le même autoencodeur variationnel que dans l’approche DA-VAE,
mais en appliquant l’algorithme de détection d’anomalies Isolation Forest (Liu et al., 2008)
sur les représentations latentes (ISOF-VAE). Cette méthode est décrite plus en détails dans la
section 3.2.4. Ces quatre différentes approches et leurs détails d’entraînement sont approfondis
dans les prochaines sous-sections.
Dans le cas du jeu de données provenant de ImageNet, nous avons défini quatre couches de
convolution pour l’encodeur et quatre couches de convolution transposée, ou de déconvolution,
pour le décodeur. Chaque couche de convolution est suivie d’une normalisation par mini-lot
(batch normalization) et d’une fonction d’activation de type ReLU. Juste avant de définir
les couches de vecteurs latents µ et σ, le résultat de la dernière couche de convolution de
l’encodeur, de dimensions (512 × 16 × 16), est aplati en un vecteur de longueur 131 072. Les
couches de vecteurs latents µ et σ sont ensuite obtenues via une couche linéaire. La couche
latente possède 25 dimensions. Nous avons entraîné le réseau sur 25 itérations complètes des
données tout en ayant 130 observations par mini-lot. Ces mini-lots sont des sous-ensembles
du jeu de données d’entraînement utilisés pour calculer les pertes sur lesquelles on calcule
les dérivés permettant de mettre à jour les paramètres de l’autoencodeur à chaque itération
d’entraînement. Ces sous-ensembles sont définis aléatoirement. L’algorithme d’optimisation est
celui de Adam (?) et le taux d’apprentissage est de 0.001. Finalement, le niveau de filtration
α appliqué sur le jeu de données de test est le même que la proportion de contamination dans
le jeu de données de test. La figure 3.3 présente en détails les différentes couches de l’encodeur
et du décodeur.
Pour le jeu de données provenant de MNIST, nous avons défini trois couches de convolution
pour l’encodeur et 3 couches de convolution transposée pour le décodeur. Nous avons fait
le choix de mettre moins de couches que dans le cas du jeu de données ImageNet en raison
32
µ
Linéaire
1×25
Linéaire
1×25
Figure 3.3 – Architecture du modèle DA-VAE pour le jeu de données ImageNet. Les blocs
représentent les couches du réseau. Les blocs jaunes représentent les couches où il n’y a pas
de paramètres à optimiser. Les blocs verts sont des couches de convolution ou déconvolution
et les blocs gris sont des couches linéaires.
de la complexité moins importante des données. Chaque couche de convolution est suivie
d’une fonction d’activation de type ReLU. Chaque couche de convolution de l’encodeur est
également suivie d’un max pooling de dimensions 2 × 2. Juste avant de définir les couches
de vecteurs latents µ et σ, le résultat de la dernière couche de convolution de l’encodeur, de
dimensions (64 × 4 × 4), est aplati en un vecteur de longueur 1024. Les couches de vecteurs
latents µ et σ sont ensuite obtenues via une couche linéaire. La couche latente possède 25
dimensions. Nous avons entraîné le réseau pendant 75 itérations complètes des données tout
en ayant 256 observations par mini-lot. L’algorithme d’optimisation est celui de Adam et le
taux d’apprentissage est de 0.001. Finalement, le niveau de filtration α appliqué sur le jeu de
données de test est le même que la proportion de contamination dans l’ensemble de données
de test. La figure 3.4 présente en détails les différentes couches de l’encodeur et du décodeur.
Horaire du paramètre β
Dans les deux expériences, nous avons traité le paramètre β d’une manière particulière. En
effet, étant donné que nous utilisons des β-VAE, nous devons définir un paramètre β qui donne
plus ou moins d’importance à la composante de perte associée au critère de Kulback-Leibler
(voir section 1.3.1). Dans notre cas, nous n’avons pas conservé ce paramètre β fixe tout au long
de l’entraînement. Pour l’entraînement des deux différents jeux de données, nous avons donc
mis en place un horaire du paramètre β selon l’itération d’entraînement. Cet horaire n’est pas
33
µ
Linéaire
1×25
Conv-2D + Conv-2D + Conv-2D +
Entrée 0-padding Flatten z
Max-pooling Max-pooling Max-pooling
1×28×28 32×8×8 1×1024 σ 1×25
16×14×14 32×7×7 64×4×4
Linéaire
1×25
Figure 3.4 – Architecture du modèle DA-VAE pour le jeu de données provenant de MNIST.
Les blocs représentent les couches du réseau. Les blocs jaunes représentent les couches où
il n’y a pas de paramètres à optimiser. Les blocs verts sont des couches de convolution ou
déconvolution et les blocs gris sont des couches linéaires.
le même selon le jeu de données et a été choisi en se basant sur la section 3.1 de l’article de
Bowman et al. (2015). Ce qui est proposé dans cet article est de commencer l’entraînement
en attribuant un poids de zéro à la perte de KL. Pendant les premières itérations, le réseau
va donc optimiser ses paramètres en fonction de la composante de reconstruction seulement.
Par la suite, on augmente le paramètre β pour régulariser le modèle et ainsi rapprocher les
paramètres µ et σ de ceux de la N (0,I). Le tableau 3.4 présente les paramètres β utilisés
selon l’itération d’entraînement et le jeu de données.
Table 3.4 – Horaire des paramètres β pour le jeu de données provenant de ImageNet et le
jeu de données provenant de MNIST.
L’intuition derrière l’horaire établi est de contrôler le modèle dans les premières itérations pour
éviter d’accorder trop d’importance, et ce trop rapidement, à la composante de régularisation.
Cela pourrait avoir comme conséquence de nuire au reste de l’optimisation et à l’apprentissage
de la composante de reconstruction.
34
3.2.2 Détails sur la méthode ACP
Une première approche testée pour comparer nos résultats consiste à effectuer une analyse en
composantes principales (ACP). L’objectif premier de cette technique non-supervisée est de
réduire la dimension d’un ensemble de données en conservant le plus d’information possible.
Cela permet d’ailleurs de représenter les données dans un espace plus simple. Il est aussi
possible de reconstruire ces représentations dans les dimensions originales, tel que vu à la sous-
section 1.1.3, et ainsi de calculer un score d’anomalie basé sur la capacité de bien reconstruire.
Dans cette méthode, les valeurs et vecteurs propres de la matrice de covariance des variables
centrées et standardisées,
1 T
ˆ
var(X) = X X,
n
nous permettent d’obtenir une projection de cette matrice dans un espace à plus petites
dimensions. La matrice de vecteurs propres V est de dimensions p × k, où p correspond au
nombre de variables de la matrice X et k correspond au nombre de composantes principales
conservées dans l’espace réduit. La représentation en dimension réduite, soit Z, est obtenue
par le produit de XV. Finalement, la reconstruction dans l’espace original, X̂, est donnée par
X̂ = ZVT = XVT V.
Étant donné que nos données sont des images, ou des matrices en plusieurs dimensions, nous
avons aplati chacune des entrées pour obtenir des vecteurs. Dans le cas des images en couleur
provenant d’ImageNet, nous avons d’abord aplati chacun des canaux RGB. Ensuite, nous
avons fait une analyse en composantes principales sur chaque canal RGB séparément. Chaque
canal image est de dimensions 1 × 128 × 128, ce qui veut dire que nous obtenons trois vecteurs
de longueur 16 384. Pour les images provenant de MNIST, les images sont de dimensions
1 × 28 × 28, ce qui nous donne des vecteurs de longueur 784.
Pour trouver les anomalies, nous avons utilisé l’erreur de reconstruction entre les données
originales (x∗(j) )kj=1 et leur reconstruction (x̂∗(j) )kj=1 basée uniquement sur un certain nombre
de composantes principales. Dans nos expériences, ce nombre de composantes principales a été
établi afin d’obtenir une projection conservant approximativement 80% de la variance originale
des données. Nous avons utilisé l’erreur quadratique moyenne comme erreur de reconstruction.
Une observation x∗(j) est considérée comme une anomalie au niveau de filtration α (une α-
anomalie) si
35
où l(x∗(j) , x̂∗(j) ) correspond à l’erreur de reconstruction pour l’observation i du jeu de don-
nées test X ∗ et t1−α {L(X , X̂ )} correspond au percentile 1 − α de l’ensemble des erreurs de
reconstruction sur le jeu de données d’entraînement X . Dans le cas de l’ACP appliquée sur
ImageNet, nous avons calculé l’erreur de reconstruction sur chaque canal indépendamment
pour ensuite prendre la moyenne des trois erreurs de reconstruction. Le niveau de filtration
α choisi est le même que la proportion de contamination dans l’ensemble de données de test,
puisqu’il s’agit effectivement de la proportion des observations à "filtrer". Nous avons choisi
cela afin de mettre toutes les méthodes comparatives sur le même pied d’égalité. Nous avons
donc fixé cette même valeur de α pour les deux autres méthodes comparatives. De plus, nous
avons choisi α égal à la vraie proportion de contamination du jeu de données test afin de
comparer les méthodes dans une situation plus simple.
Pour le jeu de données ImageNet, nous avons conservé le nombre de composantes principales
nous permettant de conserver exactement 80 % de la variabilité pour chaque canal RGB. Ce
nombre de composantes principales peut donc varier légèrement selon le canal et l’échantillon-
nage du jeu de données et prend des valeurs entre 90 et 110. Pour le jeu de données MINST,
nous avons toujours conservé les 30 premières composantes principales, ce qui nous permet de
conserver approximativement 80 % de la variabilité.
Nous avons utilisé l’erreur quadratique moyenne comme erreur de reconstruction. Les anoma-
lies du jeu de données test X ∗ sont donc prédites de façon similaire à ce qui est présenté à
l’équation 3.1. Comme pour les autres méthodes, le niveau de filtration α choisi est le même
que la proportion de contamination dans le jeu de données de test.
36
remise. De plus, il est également possible de tirer au hasard un certains nombre de variables
pour entraîner chacun des arbres. Ce processus est très similaire à ce qui est fait en apprentis-
sage supervisé avec les forêts aléatoires (Breiman, 2001). L’hypothèse de base de cet algorithme
quant aux anomalies est fondée autour du fait qu’elles sont peu nombreuses et possèdent des
caractéristiques différentes des observations "normales". Sachant cette hypothèse, ces anoma-
lies sont susceptibles d’être isolées dans les premières séparations des arbres de décisions. Pour
déterminer si une observation est isolée, on calcule le nombre de nœuds à parcourir dans l’arbre
pour atteindre cette observation. Plus ce chemin est petit, plus l’observation risque d’être une
anomalie.
Afin d’obtenir un score d’anomalie comparable à notre niveau de filtration α, nous avons légè-
rement transformé le score d’anomalie calculé par l’algorithme. Pour une observation donnée,
le score d’anomalie S calculé par l’algorithme est obtenu en prenant la moyenne du nombre
de nœuds parcourus dans chacun des arbres de la forêt pour atteindre cette observation. Plus
ce score est petit, plus l’observation est susceptible d’être isolée et d’être considérée "anor-
male". Pour être en mesure de comparer ce score avec notre niveau de filtration, nous avons
d’abord calculé ce score pour chacune des n observations de notre jeu de données d’entraî-
nement, ce que nous appelons l’ensemble SX = {S (1) , ..., S (n) }. Nous définissons également
0
SX comme l’ensemble SX ordonné en ordre croissant. Ensuite, nous avons défini notre propre
score d’anomalie S ∗ (·) pour une observation du jeu de donnée de test x∗(j) comme suit,
rangS 0 (S (j) )
∗ ∗(j) X
S (x )= ,
n
où rangS 0 (S (j) ) correspond au rang du score S (j) de l’observation x∗(j) dans l’ensemble or-
X
0
donné SX . Ce score S ∗ (x∗(j) ), peut être comparé à notre niveau de filtration α. Ce niveau de
filtration choisi est le même que la proportion de contamination dans le jeu de données de
test.
Nous avons utilisé les mêmes hyperparamètres de l’algorithme Isolation Forest dans les ex-
périences réalisées sur ImageNet et celles réalisées sur MNIST. Dans les deux cas, le nombre
d’arbres est égal à 100. Le nombre d’observations échantillonnées dans chaque arbre est de
256. Finalement, toutes les variables, ou les dimensions latentes, peuvent être utilisées pour
entraîner chacun des arbres.
3.3 Résultats
Pour comparer les différentes méthodes, nous avons utilisé trois métriques différentes. La
première est l’aire sous la courbe ROC. Cette métrique nous permet de faire abstraction du
seuil de filtration α. Ensuite, nous avons également choisi les métriques de précision et de
37
rappel, pour lesquelles nous devons fixer la proportion α d’observations "filtrées". Nous avons
entraîné et testé les algorithmes à 20 reprises, ce qui nous permet de calculer une moyenne
et une mesure de dispersion, soit l’écart-type, autour de chacune des métriques. Pour les 20
réplications, l’échantillonnage des jeux de données de test et d’entraînement est refait. La
variabilité des résultats entre les 20 réplications est expliquée par trois composantes :
La première composante, soit l’échantillonnage des jeux de données, affecte les quatre différents
algorithmes. La deuxième composante, soit l’initialisation des paramètres et l’optimisation
par descente du gradient, n’affecte que les méthodes reliées à des réseaux de neurones : DA-
VAE(3.2.1), AE (3.2.3) et ISOF-VAE (3.2.4). La composante stochastique dans l’optimisation
par descente du gradient est reliée au fait que le jeu de données d’entraînement est divisé en
sous-ensembles, aussi appelés mini-lots, qui sont définis aléatoirement. L’optimisation globale
du réseau de neurones peut donc emprunter des chemins légèrement différents avec une même
initialisation. Finalement, la troisième composante concerne seulement les deux méthodes
utilisant l’autoencodeur variationnel : DA-VAE et ISOF-VAE. Comme il a été expliqué à la
section 1.3, la représentation latente de l’autoencodeur variationnel est obtenue en combinant
les paramètres des couches µ et σ du modèle ainsi que la simulation d’une loi N (0,I). Nous
ne faisons qu’une présentation brute des résultats dans cette sous-section et nous en faisons
l’analyse et les discutons à la sous-section 3.4.
38
méthode n’apparait en gras, cela veut dire qu’aucune des quatre méthodes ne s’est montrée
significativement supérieure aux trois autres. Dans la figure 3.5, on peut voir plus en détails
la distribution des résultats obtenus sur les 20 réplications via des graphiques en boîtes et
moustaches.
Table 3.5 – Résultats selon les métriques d’aire sous la courbe ROC, de précision et de rappel
pour les différentes expérimentations concernant le jeu de données ImageNet (moyennes sur
les 20 réplications ± un écart-type). Les résultats en gras sont significativement supérieurs
aux trois autres.
3.3.2 MNIST
Le tableau 3.6 synthétise les résultats obtenus sur le jeu de données MNIST pour la métrique
d’aire sous la courbe ROC. Les résultats sont présentés par scénario de contamination et
par scénario de test (voir tableau 3.2 pour plus de détails sur les scénarios de test). Les
résultats pour les métriques de précision et de rappel sont présentés de la même manière
dans les tableaux 3.7 et 3.8 respectivement. Nous avons mis en gras les méthodes qui sont
significativement meilleures que toutes les autres selon le test expliqué à la sous-section 3.3.1.
Dans les figures 3.6, 3.7 et 3.8, on peut voir plus en détails la distribution des résultats obtenus
pour les trois différentes métriques sur les 20 réplications grâce à des graphiques en boîtes et
moustaches.
39
Moins Égal Plus
1.0
0.8
0.6
0.4
0.2
ACP AE ISOF−VAE DA−VAE ACP AE ISOF−VAE DA−VAE ACP AE ISOF−VAE DA−VAE
Méthode
0.6
Précision
0.4
0.2
0.0
0.75
0.50
Rappel
0.25
0.00
Figure 3.5 – Graphiques en boîtes et moustaches illustrant les résultats sur les 20 réplications
de chacune des approches et scénarios de contamination pour l’expérience avec les données
ImageNet. Les trois sous-figures concernent une métrique différente.
40
Table 3.6 – Résultats des aires sous la courbe ROC des différentes approches selon le scénario
de contamination et le scénario de test appliqué sur le jeu de données MNIST (moyennes sur
les 20 réplications ± un écart-type). Les résultats en gras sont significativement supérieurs
aux trois autres.
1.0
1.000
0.975 0.9
Moins
Moins
0.950 0.8
0.925
0.7
0.900
0.6
1.00 1.0
Aire sous la courbe ROC
0.99
0.8
0.98
Égal
Égal
0.97 0.6
0.96
0.4
0.95
1.00 1.0
0.99
0.9
Plus
Plus
0.98
0.97 0.8
0.96
1 2 3 4 5 6
Scénario de test
Figure 3.6 – Graphiques en boîtes et moustaches illustrant les résultats sur les 20 réplica-
tions de chacune des approches, des scénarios de test et des scénarios de contamination pour
l’expérience avec les données MNIST. Toutes les figures présentent les résultats en aire sous
la courbe ROC.
41
Table 3.7 – Résultats des précisions selon la quantité de contamination et le scénario de test
sur le jeu de données MNIST. La valeur de α dépend du scénario de contamination. Pour le
scénario "Moins" α = 0.01, pour le scénario "Égal" α = 0.05 et finalement pour le scénario
"Plus" α = 0.1 (moyennes sur les 20 réplications ± un écart-type). Les résultats en gras sont
significativement supérieurs aux trois autres.
1.00
0.6
0.75
Moins
Moins
0.4
0.50
0.25 0.2
0.00 0.0
0.9
0.6
0.8
Précision
Égal
0.6
0.2
0.5
0.0
0.5
0.60
0.4
Plus
Plus
0.55
0.3
0.50
0.2
1 2 3 4 5 6
Scénario de test
Figure 3.7 – Graphiques en boîtes et moustaches illustrant les résultats sur les 20 réplica-
tions de chacune des approches, des scénarios de test et des scénarios de contamination pour
l’expérience avec les données MNIST. Toutes les figures présentent les résultats en précision.
42
Table 3.8 – Résultats des rappels selon la quantité de contamination et le scénario de test
sur le jeu de données MNIST. La valeur de α dépend du scénario de contamination. Pour le
scénario "Moins" α = 0.01, pour le scénario "Égal" α = 0.05 et finalement pour le scénario
"Plus" α = 0.1 (moyennes sur les 20 réplications ± un écart-type). Les résultats en gras sont
significativement supérieurs aux trois autres.
0.5
0.4 0.3
0.3
Moins
Moins
0.2
0.2
0.1
0.1
0.0 0.0
1.0 0.8
0.6
0.8
Rappel
Égal
Égal
0.4
0.6
0.2
0.4
1.00 1.0
0.8
0.95
Plus
Plus
0.6
0.90 0.4
0.2
1 2 3 4 5 6
Scénario de test
Figure 3.8 – Graphiques en boîtes et moustaches illustrant les résultats sur les 20 réplica-
tions de chacune des approches, des scénarios de test et des scénarios de contamination pour
l’expérience avec les données MNIST. Toutes les figures présentent les résultats en rappel.
43
3.4 Discussion et interprétation des résultats
Dans les prochaines sous-sections, nous discuterons des résultats obtenus par les différentes
méthodes sur les deux jeux de données. Nous irons également plus en profondeur dans l’analyse
de la méthode DA-VAE en regardant le comportement de la perte en entraînement ainsi que la
composition des représentations latentes produites par le modèle. Finalement, nous étudierons
l’impact du niveau de contamination sur les résultats et la pertinence du choix du niveau de
filtration α.
Notre approche DA-VAE est celle qui est la plus performante selon les métriques moyennes
analysées. En tenant compte du test de Mann-Whitney, nous sommes en mesure de conclure
que la méthode DA-VAE est même significativement supérieure à ISOF-VAE en aire sous la
courbe ROC, et ce, pour les trois scénarios de contamination. Pour ce qui est des résultats
en précision, les deux méthodes ne sont pas significativement différentes. Pour la métrique de
rappel, la méthode DA-VAE est significativement supérieure dans deux des trois scénarios de
contamination. On remarque également que les performances en aire sous la courbe ROC de
la méthode DA-VAE demeurent supérieures, et ce, pour les trois scénarios de contamination.
Dans le cas d’ISOF-VAE, les performances moyennes en aire sous la courbe ROC passent de
0.886 pour le scénario "Moins" à 0.811 pour le scénario "Plus". La variabilité des résultats
de notre approche DA-VAE est également inférieure à celle obtenue avec ISOF-VAE pour
les trois métriques. En analysant davantage les résultats sur les trois différents scénarios de
contamination, on peut remarquer que pour toutes les approches, le scénario de contamination
"Moins" est celui qui témoigne de la plus grande volatilité dans ses performances en test. Cela
était prévisible sachant qu’il n’y a que très peu d’anomalies, soit 1%, dans le jeu de données de
test. Dans les trois sous-figures de la figure 3.9, on peut voir les scores d’anomalie prédits pour
chacune des observations du jeu de données test en fonction de si l’observation est "anormale"
ou non, et ce, pour les 3 scénarios de contamination. Chacun des points correspond à une
observation. Les observations sont ordonnées en ordre croissant selon l’inverse de leur score
d’anomalie, soit 1 − γ. Ce score d’anomalie est défini à l’équation 2.4. En d’autres mots, plus
une observation est située à gauche sur l’axe des x, plus elle est "anormale" selon le modèle
44
DA-VAE. Les points de couleur violette sont des observations que nous connaissons comme
"normales" alors que les points jaunes sont des observations que nous connaissons comme
"anormales". Le trait horizontal rouge correspond à la valeur de notre niveau de filtration α.
Avec ce niveau de filtration, les observations sous la droite rouge sont considérées "anormales"
alors que celles au-dessus sont considérées comme "normales" selon le modèle. La ligne verte
correspond simplement à un trait partant de l’origine (0,0) et allant jusqu’au point (1,1) et
nous servira de point de référence pour comparer différents scénarios de contamination. Pour
chaque sous-figure, nous présentons une vue complète des observations du jeu de données de
test ainsi qu’une vue rapprochée sur les observations situées plus à gauche de l’axe des x.
Jeu de données test avec 1% de contamination Jeu de données test avec 5% de contamination
1.00 1.00
0.75 0.75
)
)
0.50 0.50
Score (1
Score (1
0.25 0.25
0.00 0.00
0 200 400 600 800 1000 0 200 400 600 800 1000
0.10
Score (1
Score (1
0.1
0.05
0.0 0.00
0 25 50 75 100 125 150 175 200 0 25 50 75 100 125 150 175 200
0.50
Score (1
0.25
0.00
0 200 400 600 800 1000
Vue rapprochée
0.20
0.15
)
0.10
Score (1
0.05
0.00
0 25 50 75 100 125 150 175 200
Figure 3.9 – Graphiques illustrant les scores d’anomalies selon le scénario de contamination
pour le modèle DA-VAE appliqué sur le jeu de données ImageNet. Les points violets sont
des observations que nous connaissons comme "normales" alors que les points jaunes sont
des observations que nous connaissons comme "anormales". Dans tous les cas, le niveau de
filtration α est défini comme le niveau de contamination dans le jeu de données de test et
est indiqué par la droite rouge horizontale. Pour chaque sous-figure, nous présentons une
vue complète des observations du jeu de données de test ainsi qu’une vue rapprochée sur les
observations situées plus à gauche de l’axe des x.
Dans les trois sous-figures à la figure 3.9, on peut voir que les observations "anormales", soit
les points jaunes, sont principalement regroupées à gauche de l’axe des x, ce qui est le compor-
tement souhaité. De plus, on peut remarquer que dans les trois différents scénarios, les points
les plus à gauche ne se retrouvent pas à la même position par rapport à la droite verte. Dans le
45
scénario "Égal", l’ensemble des points est relativement bien aligné avec la courbe verte. Cette
observation peut s’expliquer par le fait que les deux ensembles de données, X et X ∗ , possèdent
la même proportion d’anomalies. Dans le scénario "Moins", on peut observer une masse plus
importante de points au-dessus de la courbe verte dans les premières observations. Cela est
dû au fait que l’ensemble de test possède moins d’anomalies que l’ensemble d’entraînement, ce
qui fait en sorte que davantage d’observations obtiennent des scores d’anomalie plus faibles.
Finalement, dans le scénario "Plus", on observe qu’une masse de points se situent sous la
courbe verte dans les premières observations. À l’inverse du scénario "Moins", l’ensemble de
test possède ici davantage d’anomalies, en proportion, que l’ensemble d’entraînement, ce qui
fait en sorte que davantage d’observations obtiennent des scores d’anomalies élevés. Cette ana-
lyse nous permet de valider visuellement que l’approche s’adapte bien à différentes proportions
de contamination dans les jeux de données de test et d’entraînement.
Dans la sous-section précédente, nous avons mentionné que les approches basées sur la recons-
truction, soit ACP et AE, sont beaucoup moins performantes que les deux autres approches.
D’ailleurs, on remarque que la méthode ACP obtient des aires sous la courbe ROC sous 0.5
pour tous les scénarios de contamination. En théorie, nous aurions donc pu, pour cette mé-
thode, obtenir de meilleurs résultats en calculant notre score d’anomalie comme l’inverse du
score actuel ! Actuellement, notre prémisse de base est que les images étant les moins bien re-
construites sont potentiellement des anomalies. À l’inverse, les images les mieux reconstruites
sont potentiellement des images "normales". Nous avons fait cette hypothèse puisque les ano-
malies sont peu fréquentes dans nos jeux de données, ce qui devrait faire en sorte que les
paramètres appris par le modèle soient davantage représentés par les images "normales". En
analysant les résultats en aire sous la courbe ROC obtenus par l’ACP, nous concluons que ce
sont plutôt les anomalies qui sont mieux reconstruites que les images "normales". Ceci s’ex-
plique peut-être par le fait que l’ACP cherche des représentations qui conservent la plus grande
proportion possible de variabilité dans les données, et que les anomalies contribuent habituelle-
ment beaucoup à la variabilité. Pour s’en convaincre, nous avons regardé des exemples d’images
les mieux reconstruites sur l’ensemble d’entraînement. On peut voir quelques exemples à la
figure 3.10a. Dans le même ordre d’idées, la figure 3.10b illustre quelques exemples d’images
qui sont moins bien reconstruites.
46
(a) Exemples d’images bien reconstruites
Figure 3.10 – Exemples d’images qui sont bien reconstruites (a) et mal reconstruites (b) selon
la méthode ACP appliquée au jeu de données d’entraînement d’ImageNet.
En analysant la figure 3.10, on remarque que les images bien reconstruites sont relative-
ment "simples", mais d’allure très variable. Ces images, que l’on peut voir à la figure 3.10a,
47
montrent des voitures avec une vue relativement éloignée. Les arrière-plans sont également
plutôt simples, avec des couleurs assez unies, mais très variables d’une image à l’autre. À
l’inverse, les images les moins biens reconstruites (figure 3.10b) sont plus "complexes". Par
exemple, on voit les voitures de très près, avec beaucoup de détails. Aussi, les arrière-plans sont
beaucoup plus complexes, avec différentes couleurs et formes. Au final, on pourrait conclure
que la méthode basée sur l’ACP discrimine sur la complexité de l’image et cherche à préser-
ver la variabilité plutôt que se concentrer sur le contenu global (voitures versus autres). La
méthode AE performe un peu mieux que l’ACP, mais elle obtient tout de même des aires
sous la courbe ROC inférieures à 0.6, et ce, pour les trois scénarios de contamination. On
pourrait penser que l’autoencodeur, avec la perte orientée sur le contenu, perceptual loss, gère
un peu mieux ces différents éléments (vues, couleurs, arrière-plan, etc), mais cela n’est pas
suffisant pour obtenir des performances optimales. Au final, les méthodes basées sur l’erreur
de reconstruction nous apparaissent moins pertinentes lorsque nous devons faire la détection
d’anomalies dans des images de complexités et de styles différents.
Dans la section 2.3.2, nous avons mentionné qu’il fallait analyser les statistiques de distance
afin de savoir si une statistique de distance élevée est signe d’anomalie ou de "normalité". Pour
ce faire, il suffit de visualiser un échantillon d’images de notre jeu de données d’entraînement
ayant des statistiques de distance élevées et un autre échantillon d’images ayant des statistiques
de distance faibles. Dans la figure 3.11, on peut voir quelques exemples provenant de ces
échantillons. On remarque assez rapidement que les observations ayant des statistiques de
distance faibles proviennent de notre classe "anormale". À l’inverse, les observations ayant
des statistiques de distance élevées proviennent de notre classe "normale", soit des images
de voitures. On remarque que les voitures de la figure 3.11 sont presque toutes des voitures
rouges. Il est possible que les représentations latentes de ce type de voitures soient situées
dans un espace similaire et le plus éloigné de la N (0,I). Nous avons voulu valider si la couleur
de la voiture avait un impact significatif dans la prise de décision. Pour ce faire, nous avons
pré-sélectionné un échantillon d’images de voitures de différentes couleurs et avons calculé
le score d’anomalie pour ces images. À la figure 3.12, on peut voir que les voitures rouges
obtiennent des scores d’anomalie plutôt élevés, même une avec un score sous la valeur du seuil
de filtration α. Cela nous permet de confirmer que ce n’est pas que la couleur de la voiture
qui a un impact.
De cette manière, il est possible de conclure que nous nous retrouvons dans le scénario où les
représentations latentes des observations "normales" sont plus éloignées de la N (0,I) (voir les
deux scénarios décrits à 2.3.2). À la figure 3.13, on peut confirmer cette observation alors qu’on
voit que les valeurs moyennes des µ et σ des observations "normales" sont plus éloignées de
la N (0,I). Dans cette figure, on calcule pour chaque observation du jeu de données d’entraî-
48
(a) Statistiques de distance faible (b) Statistiques de distance élevées
Figure 3.11 – Échantillons d’images provenant du jeu de données d’entraînement ayant des
statistiques de distance faibles (a) et élevées (b) pour le scénario "Plus" du jeu de données
ImageNet.
(1 ) = 0.82 (1 ) = 0.75 (1 ) = 0.69 (1 ) = 0.71 (1 ) = 0.16 (1 ) = 0.77 (1 ) = 0.66 (1 ) = 0.11 (1 ) = 0.96 (1 ) = 0.26
(1 ) = 0.59 (1 ) = 0.91 (1 ) = 0.56 (1 ) = 0.36 (1 ) = 0.29 (1 ) = 0.75 (1 ) = 0.93 (1 ) = 0.1 (1 ) = 0.37 (1 ) = 0.03
Figure 3.12 – Échantillons d’images pré-sélectionnées avec l’inverse de leur score d’anomalie
(1−γ). Le score a été calculé selon le modèle DA-VAE du scénario "Plus" sur le jeu de données
ImageNet.
nement, la valeur moyenne sur les 25 dimensions latentes des vecteurs µ et σ. La différence
est beaucoup plus évidente pour le vecteur latent σ que pour µ. Pour µ, les observations
"normales" sont légèrement plus centrées à 0, mais les observations "anormales" s’éloignent
moins de la valeur centrée de 0. À la figure 3.14, nous avons réalisé une analyse en composantes
principales sur les vecteurs µ et σ et avons conservé les deux premières composantes princi-
pales. Cela nous permet d’obtenir une visualisation en deux dimensions des représentations
latentes des observations "normales" et "anormales". On peut voir que les deux groupes sont
relativement bien séparés sur les deux premières composantes principales. On peut également
voir la projection en deux dimensions du point (0m , 1m ), soit le carré noir. On remarque que
les anomalies (points bleus) semblent légèrement plus près du carré noir que les observations
"normales". Il faut rappeler que la projection en deux dimensions conserve approximativement
50% de la variabilité totale des représentations latentes.
49
3
Anomalie
Densité
0
1
Anomalie
Densité
0
1
Figure 3.13 – Moyenne des µ et σ des représentations latentes du jeu de données d’entraîne-
ment sur le jeu de données ImageNet. La densité rouge correspond à la densité des observations
"normales" et la densité bleue aux observations "anormales".
Dans la section 3.2.1, nous avons présenté l’horaire de l’hyperparamètre β utilisé selon l’ité-
ration d’entraînement de l’autoencodeur variationnel. Cet hyperparamètre, utilisé dans les
méthodes ISOF-VAE et DA-VAE, donne plus ou moins d’importance à la composante de
perte associée au critère de Kullback-Leibler. Cette sous-section a simplement comme objectif
de faire un compte-rendu de la composition de la perte en entraînement afin de faciliter la
reproductibilité de notre approche. En guise de rappel, notre objectif avec l’horaire de l’hy-
perparamètre β était de mettre l’accent sur la composante de reconstruction (β = 0) dans les
premières itérations pour ensuite augmenter la régularisation en augmentant l’hyperparamètre
β pendant quelques itérations. La figure 3.15 montre la composition de notre perte totale au
fil des itérations d’entraînement. La figure illustre le pourcentage de la perte provenant du
50
2
2e CP (variance expliquée : 4.31 %)
0
Anomalie
0
1
−2
−4
−10 0 10 20
1er CP (variance expliquée : 45.5 %)
Figure 3.14 – Graphique des deux premières composantes principales calculées à partir des
vecteurs µ et σ du jeu de données d’entraînement de ImageNet appliqué sur le scénario de
contamination "Plus". Les points rouges sont des observations "normales" et les points bleus
sont des observations "anormales". Le carré noir correspond à la projection en deux dimensions
du point (0m , 1m ).
51
6.0%
Pourcentage perte KLD
4.0%
2.0%
0.0%
0 5 10 15
Itération (ou epoch)
Figure 3.15 – Pourcentage du critère de Kullback-Leibler dans la perte totale selon l’itéra-
tion d’entraînement et le scénario de contamination. Ces résultats sont tirés du scénario de
contamination "Plus" pour le jeu de données ImageNet.
Génération d’images
Comme mentionné dans la section 1.3, les autoencodeurs variationnels ont la particularité
d’avoir une représentation latente continue. En effet, cela est dû au fait que le vecteur latent z
est obtenu en combinant une simulation d’une loi N (0,I) avec les vecteurs µ et σ appris par
le modèle (voir équation 1.14). Étant donné la composante de perte de Kullback-Leibler appli-
quée dans l’optimisation des paramètres, ces deux vecteurs devraient s’approcher des vecteurs
(0m , 1m ) où m correspond à la longueur de la représentation latente. Après l’entraînement de
l’autoencodeur, il est possible de valider le comportement du décodeur par rapport à une si-
mulation N (0,I). La figure 3.16 montre des exemples d’images générées à partir de simulations
de loi N (0,I) et reconstruites par la partie décodeur du DA-VAE. Pour ce faire, nous avons
simulé des observations de loi N (0,I) à m = 25 dimensions, soit la dimension latente de notre
autoencodeur variationnel entraîné. Par la suite, nous avons donné ces simulations en argu-
ment à notre fonction de décodeur pφ (·) où les paramètres de cette fonction représentés par
φ sont déjà ajustés. Cela nous permet d’obtenir de nouvelles images générées de toute pièce.
Ces images illustrent bien qu’une représentation latente provenant d’une loi N (0,I) donne un
résultat qui s’apparente à une voiture ou aux caractéristiques fréquentes d’une voiture (roues,
phares, pare-brise).
52
Figure 3.16 – Exemples d’images générées par le modèle DA-VAE en utilisant seulement la
partie décodeur de l’autoencodeur ainsi que des simulations provenant d’une loi N (0,I).
donnent des résultats performants avec des aires sous la courbe généralement supérieures à
0.85, et même parfois très près de 1. Cette observation vient témoigner du fait qu’étant donné la
nature plus simple des données, il est probablement plus facile de faire la détection d’anomalies.
En regardant de plus près les résultats des quatre approches, on remarque que notre approche
DA-VAE est rarement meilleure que les méthodes AE ou ACP en aire sous la courbe ROC
moyenne. La variabilité autour de la métrique est aussi légèrement plus élevée pour l’approche
DA-VAE. Par contre, les résultats sont généralement près des meilleures approches. De plus, le
test de Mann-Whitney ne nous permet pas de conclure que les autres méthodes sont meilleures
que DA-VAE. Notre approche montre également les meilleurs résultats en aire sous la courbe
ROC pour le scénario de test 6, et ce, pour les trois scénarios de contamination différents.
Le scénario de test 6 est celui qui considère le chiffre "6" comme "normal" et tous les autres
comme la classe "anormale". Étant donné la nature plus simple des images, les méthodes basées
sur la reconstruction (ACP et AE) semblent être celles qui fonctionnement généralement le
mieux. On pourrait donc croire que l’utilisation de la représentation latente dans les méthodes
ISOF-VAE et DA-VAE n’amène pas autant de valeur ajoutée que dans le cas d’images réelles
comme ImageNet. En faisant l’analyse des métriques de précision et de rappel (tableaux 3.7
et 3.8), on peut tirer essentiellement les mêmes conclusions quant aux performances relatives
des différentes approches. Nous ferons l’analyse plus détaillée de ces méthodes dans la sous-
section 3.4.2. Encore une fois, les méthodes basées sur la reconstruction semblent légèrement
supérieures. Toutefois, l’approche DA-VAE n’est pas significativement inférieure aux autres,
même en précision et rappel.
Pour illustrer les résultats du modèle selon différents scénarios de contamination, il est possible
de réutiliser les mêmes figures que celles décrites à la figure 3.9. Dans la figure 3.17, on peut
y voir ces figures générées pour le scénario de test 3 (voir tableau 3.2 pour un rappel des
scénarios de test).
53
Jeu de données test avec 1% de contamination Jeu de données test avec 5% de contamination
1.00 1.00
0.75 0.75
)
)
0.50 0.50
Score (1
Score (1
0.25 0.25
0.00 0.00
0 100 200 300 400 500 600 700 800 0 100 200 300 400 500 600 700 800
)
)
0.15
Score (1
Score (1
0.1 0.10
0.05
0.0 0.00
0 20 40 60 80 100 120 140 160 0 20 40 60 80 100 120 140 160
0.50
Score (1
0.25
0.00
0 100 200 300 400 500 600 700 800
Vue rapprochée
0.20
0.15
)
0.10
Score (1
0.05
0.00
0 20 40 60 80 100 120 140 160
Figure 3.17 – Graphiques illustrant les scores d’anomalies selon le scénario de contamination
pour le modèle DA-VAE appliqué sur le scénario de test 1 de MNIST. Les points violets
sont des observations que nous connaissons comme "normales" alors que les points jaunes
sont des observations que nous connaissons comme "anormales". Dans tous les cas, le niveau
de filtration α est défini comme le niveau de contamination dans le jeu de données de test
et est indiqué par la ligne rouge horizontale. Pour chaque sous-figure, nous présentons une
vue complète des observations du jeu de données de test ainsi qu’une vue rapprochée sur les
observations situées plus à gauche de l’axe des x.
Dans les trois sous-figures à la figure 3.17, on peut voir que les observations "anormales",
soit les points jaunes, sont principalement regroupées à gauche de l’axe des x, ce qui est le
comportement souhaité. On remarque aussi que la segmentation est plus évidente que dans
le cas de la figure 3.9, ce qui nous permet de confirmer que la détection d’anomalies est plus
performante sur ce scénario de test du jeu de données MNIST que sur le jeu de données Ima-
geNet. Finalement, on peut également remarquer la disposition des observations par rapport à
la courbe verte. On peut tirer les mêmes constats que dans la section 3.4.1, mais en ajoutant
le fait que les positions des premières observations par rapport à la courbe verte sont encore
plus prononcées dans le cas du jeu de données MNIST.
Les graphiques de la figure 3.17 sont intéressants puisqu’ils pourraient servir d’outil pour esti-
mer la proportion d’anomalies dans le jeu de données test par rapport à la proportion présente
dans le jeu de données d’entraînement. Dans la réalité, nous ne pourrions pas savoir quels ob-
54
servations sont des anomalies et lesquelles sont "normales". Par contre, avec la disposition de
la courbe, nous pourrions savoir si le jeu de données de test contient, en proportion, moins,
autant ou plus d’anomalies que le jeu de données d’entraînement. Dans le cas où le jeu de
données de test contiendrait une proportion d’anomalies plus faible que le jeu de données
d’entraînement, le début de la courbe devrait s’éloigner de la droite y = x et s’approcher de
l’axe des y. Dans le cas où le jeu de données de test contiendrait une proportion d’anomalies
similaire au jeu de données d’entraînement, la courbe serait alignée avec la droite. Finalement,
dans le cas où le jeu de données de test contiendrait une proportion d’anomalies plus élevée
que le jeu de données d’entraînement, le début de la courbe devrait s’éloigner de la droite
y = x et s’approcher de l’axe des x.
En portant attention au niveau de filtration α dans les trois différentes sous-figures de la figure
3.17, on remarque que celui-ci semble être efficace dans le scénario de contamination "Égal".
Dans les deux autres scénarios, ce seuil ne semble pas être le niveau optimal. Toutefois, l’avan-
tage avec cette approche de filtration est qu’il est facile d’obtenir plus ou moins d’anomalies
en modulant la valeur de α.
Dans la sous-section 3.4.1, nous avions conclu que les méthodes basées sur la reconstruction
ne permettaient pas d’obtenir de bonnes performances sur des images réelles. Dans le cas du
jeu de données MNIST, les performances de ces méthodes sont généralement supérieures à
celles basées sur la représentation latente. Pour se convaincre de ces résultats, la figure 3.18a
montre des exemples d’images du jeu de données d’entraînement ayant de petites erreurs de
reconstruction. Ces exemples proviennent de la méthode ACP et du scénario de test 6. Dans le
même ordre d’idées, la figure 3.18b montre des images provenant de la même approche, mais
ayant plutôt des erreurs de reconstruction élevées.
55
(a) Exemples d’images bien reconstruites
Figure 3.18 – Exemples d’images qui sont bien reconstruites (a) et mal reconstruites (b) selon
la méthode ACP appliquée sur le jeu de données d’entraînement de MNIST.
La figure 3.18 confirme en quelque sorte les bons résultats obtenus par la méthode ACP. On
voit que la prémisse de base, qui dit que les images de la "normale" seront bien reconstruites,
56
est validée. En comparaison avec le jeu de données ImageNet, on remarque que la classe "anor-
male" est beaucoup plus similaire à la classe "normale" dans le cas de MNIST. En effet, la
complexité et la variabilité des images est sensiblement la même. On pourrait dire que les
images des deux classes proviennent de la même source, ce qui n’était pas nécessairement le
cas avec notre jeu de données ImageNet. Ainsi, on peut conclure que les méthodes basées sur
la reconstruction sont performantes en détection d’anomalies lorsque les observations "anor-
males" montrent un niveau de complexité et de variabilité similaire aux images "normales".
Dans la section 3.4.1, nous avons fait l’analyse des représentations latentes par l’entremise
des statistiques de distance et d’échantillons d’images. Cela nous a permis de conclure que les
images "normales" avaient des statistiques de distance élevées alors que les anomalies avaient
des statistiques de distance faibles. Il faut donc refaire cette analyse, mais dans le cas de
MNIST. Dans la figure 3.19, on peut voir quelques-uns des échantillons d’images du scénario
de test 3 qui nous aident à tirer notre conclusion. Cette fois-ci, on remarque que les observations
ayant des statistiques de distance faibles proviennent de notre classe "normale", soit le chiffre
"1". À l’inverse, les observations ayant des statistiques de distance élevées proviennent de notre
classe "anormale", soit tous les autres chiffres. C’est d’ailleurs le cas pour les six différents
scénarios de test.
Figure 3.19 – Échantillons d’images provenant du jeu de données d’entraînement ayant des
statistiques de distance faibles (a) et élevées (b) pour le scénario de test 3 ("Plus") du jeu de
données MNIST.
De cette manière, il est possible de conclure que nous nous retrouvons plutôt dans le premier
scénario décrit à la sous-section 2.3.2, soit celui où les représentations latentes des observations
"normales" sont plus près de la N (0,I). C’est donc le scénario inverse par rapport aux expé-
rimentations faites sur ImageNet. On peut d’ailleurs confirmer cette conclusion en regardant
la figure 3.20, où l’on peut voir que les vecteurs µ et σ moyens des observations "normales"
sont plus près des paramètres de moyenne et d’écart-type de la N (0,I).
57
300
200 Anomalie
Densité
0
1
100
200
Anomalie
Densité
0
1
100
Figure 3.20 – Moyenne des µ et σ des représentations latentes du jeu de données d’entraîne-
ment sur le jeu de données MNIST. La densité rouge correspond à la densité des observations
"normales" et la densité bleue aux observations "anormales".
Dans la figure 3.21, on peut voir le résultat d’une analyse en composantes principales appliquée
sur les vecteurs µ et σ. Cette figure nous permet de visualiser en deux dimensions les repré-
sentations latentes apprises sur le jeu de données d’entraînement du scénario de test 3 et du
scénario de contamination "Plus". Si on compare avec la figure 3.14 qui fait référence au jeu de
données ImageNet, la séparation des anomalies et des observations "normales" est beaucoup
moins évidente. Cependant, les deux premières composantes principales n’expliquent même
pas 25% de la variabilité totale de la représentation latente. En se basant sur cette projection,
les "anomalies" semblent être plus éloignées du carré noir, qui représente la projection dans
cet espace du point (0m , 1m ). Cette conclusion concorde avec l’analyse de la figure 3.20. Étant
donné que l’analyse en composantes principales ne permet pas de voir clairement la séparation
des anomalies et des observations "normales" dans un espace en deux dimensions, nous avons
exploré une autre avenue afin d’obtenir cette visualisation. Pour ce faire, nous avons fait un
58
20
15
2e CP (variance expliquée : 9 %)
10
Anomalie
0
1
−5
−5 0 5
1er CP (variance expliquée : 13.17 %)
Figure 3.21 – Graphique des deux premières composantes principales réalisé sur les vecteurs
µ et σ du jeu de données d’entraînement MNIST appliqué sur le scénario de test 3 et le
scénario de contamination "Plus". Les points rouges sont des observations "normales" et les
points bleus sont des observations "anormales". Le carré noir correspond à la projection en
deux dimensions du point (0m , 1m ).
nouvel entraînement de la méthode DA-VAE, mais cette fois-ci avec seulement deux dimen-
sions latentes (au lieu de 25). Cette configuration nous permettra de visualiser les vecteurs
µ et σ dans un espace à deux dimensions sans avoir à faire de réduction de dimensionnalité.
Dans la figure 3.22, on peut désormais voir de manière plus évidente que les représentations
latentes des observations "normales" sont plus près du point (0m , 1m ).
59
1.01
0.01
1.00
0.00
0.99
µ2
σ2
0.98
−0.01
0.97
−0.010 −0.005 0.000 0.005 0.010 0.97 0.98 0.99 1.00 1.01
µ1 σ1
Anomalie 0 1 Anomalie 0 1
Figure 3.22 – Distribution des vecteurs µ et σ pour le modèle DA-VAE entraîné avec un
espace latent à deux dimensions sur le scénario de test 3 et le scénario de contamination "Égal"
du jeu de données MNIST. Les points rouges sont des observations "normales" et les points
bleus sont des observations "anormales".
Dans la figure 3.22, nous avons utilisé comme exemple un entraînement réalisé sur le scénario de
test 3 avec le scénario de contamination "Égal". Afin de pouvoir mieux observer la distribution
des points, nous avons conservé seulement 500 observations, choisies aléatoirement, du jeu de
données d’entraînement. Comme nous l’avions remarqué dans la figure 3.20, les deux classes
semblent mieux séparées selon le vecteur latent σ plutôt que selon le vecteur latent µ.
Dans la figure 3.23, on peut voir la composition de la perte à chacune des itérations de l’en-
traînement. On peut voir que la proportion de la composante de perte de Kullback-Leibler suit
le même patron qu’à la figure 3.15. Cependant, la proportion atteint un maximum beaucoup
plus élevé que dans le cas du jeu de données provenant de ImageNet. Encore une fois, il est
rassurant de voir que la composition réelle de la perte soit cohérente avec notre horaire établi
pour l’hyperparamètre β.
60
75%
Pourcentage perte KLD
50%
25%
0%
0 20 40 60
Itération (ou epoch)
Figure 3.23 – Pourcentage du critère de Kullback-Leibler dans la perte totale selon l’itération
d’entraînement et le scénario de contamination. Ces résultats sont tirés du scénario de test 3,
où le chiffre "1" est considéré comme la classe "normale" et tous les autres sont considérés
dans la classe "anormale" pour l’expérience avec les données MNIST.
61
Conclusion
La détection d’anomalies est une tâche qui comporte généralement plusieurs défis en mo-
délisation et en analyse de données. Ces défis, dont entre autres l’absence d’étiquettes pour
l’entraînement, ont été mentionnés et décrits brièvement dans le chapitre d’Introduction. Notre
objectif était de proposer une méthodologie qui permet d’identifier les images d’un jeu de don-
nées qui dévient de la normalité et qui s’apparentent donc à des anomalies. Nous souhaitions
faire cette détection d’anomalies de manière non supervisée tout en simplifiant l’établissement
du seuil nous permettant de catégoriser si une observation est "normale" ou "anormale".
Suite aux expérimentations réalisées et présentées dans le chapitre 3, nous sommes en mesure
de conclure que notre approche produit des résultats performants autant sur des jeux de
données d’images réelles que d’images simples. La valeur ajoutée de notre approche par rapport
à d’autres méthodes est toutefois beaucoup plus évidente dans le cas d’images réelles. En effet,
les performances obtenues par notre approche sur des images simples, comme celles de MNIST,
ne sont généralement pas significativement meilleures ou pires que d’autres approches. En
revanche, les performances en aire sous la courbe ROC, en précision et en rappel obtenues
sur des images réelles plus complexes, comme celles d’ImageNet, sont supérieures aux autres
approches comparatives. Ces bonnes performances nous laissent croire que nous avons rempli
notre objectif d’être en mesure de détecter des anomalies dans un ensemble d’images. De plus,
la mise en place de notre niveau de filtration α nous permet d’avoir un seuil simple et intuitif
à établir. Bien que nous ayons réussi à remplir ces objectifs, nous aurions toutefois préféré y
arriver sans avoir d’étapes manuelles, comme déterminer le scénario décrivant le comportement
des observations "normales" et "anormales" à l’intérieur de l’espace latent.
62
Le facteur principal expliquant les bonnes performances obtenues sur des images réelles est fort
probablement l’utilisation d’un autoencodeur variationnel. En effet, cet algorithme d’appren-
tissage profond permet de représenter des données complexes dans une forme latente beaucoup
plus simple et permet aussi de bien identifier des observations "normales". Un des avantages
de notre approche est que les performances en détection d’anomalies demeurent supérieures
dans plusieurs scénarios différents : différentes complexités d’images, différentes proportions
de contamination, etc. Un des points faibles de notre approche est que l’autoencodeur varia-
tionnel est un algorithme relativement complexe avec plusieurs hyperparamètres. En effet, il
faut déterminer entre autres le nombre de couches de l’autoencodeur, la taille des filtres, les
fonctions d’activation, la taille de la dimension latente, etc. C’est d’ailleurs un point com-
mun à la majorité des approches basées sur des réseaux de neurones. Ensuite, un autre point
faible de notre approche est que l’on doit réaliser une étape manuelle, après l’entraînement de
l’autoencodeur, où l’on doit inspecter certaines observations pour voir si les représentations
latentes des observations "normales" sont plus près ou plus éloignées de notre point de réfé-
rence, en l’occurrence la loi N (0,I). Cette étape fait en sorte que notre méthodologie n’est pas
pleinement automatique.
À la lumière de nos résultats, notre approche pourrait être utilisée pour plusieurs applications
ou situations réelles où l’on cherche à identifier des images "anormales". Prenons par exemple
une situation où l’on dispose d’un ensemble d’images propres pour lequel on sait qu’il n’y a pas
d’anomalie ou de défectuosité. Supposons que dans le futur, on prévoit recevoir de nouvelles
images qui sont supposées représenter la même chose que notre ensemble d’images propres,
mais dont certaines de ces nouvelles images sont défectueuses où représentent quelque chose
de complètement différent. Nous ne connaissons pas d’avance à quoi ces images défectueuses
pourraient ressembler et n’avons aucun exemple d’image de la sorte sur lesquelles nous pour-
rions faire un apprentissage. Notre approche permettrait donc de déterminer lesquelles de ces
nouvelles images sont potentiellement défectueuses ou ne semblent pas représenter la même
chose que notre ensemble d’images a priori. On pourrait également penser à des exemples
d’applications où l’on cherche à nettoyer un jeu de données d’images. En effet, on pourrait
commencer par valider et confirmer un sous-ensemble d’images propres dans notre jeu de
données complet. Ensuite, on pourrait utiliser ce sous-ensemble comme jeu de données d’en-
traînement pour notre approche. Finalement, on pourrait utiliser le reste du jeu de données
comme jeu de données de test et ainsi valider si des images "anormales" font partie de notre
ensemble global. Cela reviendrait donc à utiliser notre approche comme technique de net-
toyage de données. Dans ce mémoire, nous avons mis l’accent sur des exemples d’applications
impliquant des images, mais il serait possible d’appliquer notre approche dans un contexte de
données tabulaires où l’on sait que la majorité des observations sont "normales". On pourrait
par exemple penser à des applications en finances où l’on cherche à trouver des transactions
financières "anormales" à partir de plusieurs caractéristiques complexes.
63
Dans le futur, il serait intéressant de voir si des variations de l’autoencodeur variationnel
pourraient donner de meilleurs résultats en détection d’anomalies. Parmi les possibilités de
variations, il serait intéressant de voir si une autre loi que la N (0,I) pourrait être utilisée
comme loi a priori pour régulariser la représentation latente et définir une statistique de
distance sur cette nouvelle représentation latente. L’objectif serait d’explorer d’autres lois qui
pourraient mieux discriminer des observations "normales" d’un petit groupe d’observations
"anormales". Ensuite, il serait pertinent de voir s’il est possible de mieux contrôler les deux
composantes de perte de l’autoencodeur variationnel. De ce fait, nous avons remarqué que
ces deux composantes ont parfois des échelles très différentes, ce qui affecte l’entraînement de
l’autoencodeur et la composition de la représentation latente. Dans ce mémoire, nous avons
fait plusieurs essais et avons utilisé l’hyperparamètre β pour modifier la pondération des deux
composantes de perte. Cette approche requiert donc plusieurs cycles d’essais et erreurs, ce qui
n’est pas optimal. Finalement, il serait également intéressant de voir s’il est possible de faire
en sorte que les représentations latentes des anomalies se comportent toujours de la même
manière par rapport à un point de référence, soit la distribution N (0,I) dans notre cas, et
ce peu importe l’échantillon. En effet, nous avons remarqué que selon la nature des données,
les représentations latentes des anomalies se retrouvaient dans certains cas plus près de la
N (0,I) et dans certains cas plus éloignées de la N (0,I). Ce constat ajoute une étape manuelle
pour mettre en place notre méthodologie, ce qui rend l’approche moins automatique et plus
difficile à appliquer dans la pratique, et possiblement moins généralisable. Il serait pertinent
de voir si un point de référence autre que la N (0,I) pourrait améliorer la méthode. Au final,
nous pouvons conclure que l’autoencodeur variationnel possède des propriétés intéressantes,
via l’apprentissage d’une représentation latente, pour faire de la détection d’anomalies sur des
données complexes comme des images, avec un potentiel intéressant d’application.
64
Bibliographie
Amodei, D., Olah, C., Steinhardt, J., Christiano, P., Schulman, J., and Mané, D. (2016).
Concrete problems in ai safety. arXiv preprint arXiv :1606.06565.
An, J. and Cho, S. (2015). Variational autoencoder based anomaly detection using recons-
truction probability. Special Lecture on IE, 2(1) :1–18.
Bowman, S. R., Vilnis, L., Vinyals, O., Dai, A. M., Jozefowicz, R., and Bengio, S. (2015).
Generating sentences from a continuous space. arXiv preprint arXiv :1511.06349.
Chalapathy, R., Menon, A. K., and Chawla, S. (2018). Anomaly detection using one-class
neural networks. arXiv preprint arXiv :1802.06360.
Chandola, V., Banerjee, A., and Kumar, V. (2009). Anomaly detection : A survey. ACM
Computing Surveys (CSUR), 41(3) :1–58.
Deng, J., Dong, W., Socher, R., Li, L.-J., Li, K., and Fei-Fei, L. (2009). Imagenet : A large-scale
hierarchical image database. In 2009 IEEE Conference on Computer Vision and Pattern
Recognition, pages 248–255.
Feng, X., Zhang, Y., and Glass, J. (2014). Speech feature denoising and dereverberation via
deep autoencoders for noisy reverberant speech recognition. In 2014 IEEE international
conference on acoustics, speech and signal processing (ICASSP), pages 1759–1763.
Goodfellow, I., Bengio, Y., and Courville, A. (2016). Deep Learning. MIT Press. http:
//www.deeplearningbook.org.
He, K., Zhang, X., Ren, S., and Sun, J. (2015). Deep residual learning for image recognition.
CoRR, abs/1512.03385.
65
Higgins, I., Matthey, L., Pal, A., Burgess, C., Glorot, X., Botvinick, M., Mohamed, S., and
Lerchner, A. (2017). beta-vae : Learning basic visual concepts with a constrained variational
framework. In 2017 ICLR.
Johnson, J., Alahi, A., and Fei-Fei, L. (2016). Perceptual losses for real-time style transfer and
super-resolution. In European Conference on Computer Vision, pages 694–711. Springer.
Khosla, A., Jayadevaprakash, N., Yao, B., and Fei-Fei, L. (2011). Novel dataset for fine-grained
image categorization. In 2011 IEEE First Workshop on Fine-Grained Visual Categorization,
Conference on Computer Vision and Pattern Recognition, Colorado Springs, CO.
Krause, J., Stark, M., Deng, J., and Fei-Fei, L. (2013). 3d object representations for fine-
grained categorization. In 2013 IEEE 4th International Workshop on 3D Representation
and Recognition (3dRR-13), Sydney, Australia.
Krizhevsky, A. and Hinton, G. E. (2011). Using very deep autoencoders for content-based
image retrieval. In 2011 ESANN, volume 1, page 2. Citeseer.
LeCun, Y., Cortes, C., and Burges, C. (2010). Mnist handwritten digit database. ATT Labs
[Online]. Available : http ://yann.lecun.com/exdb/mnist, 2.
Liu, F. T., Ting, K. M., and Zhou, Z. (2008). Isolation forest. In 2008 IEEE Eighth Interna-
tional Conference on Data Mining, pages 413–422. Pisa, Italy.
Mann, H. B. and Whitney, D. R. (1947). On a test of whether one of two random variables is
stochastically larger than the other. Annals of Mathematical Statistics, 18(1) :50–60.
Quattoni, A. and Torralba, A. (2009). Recognizing indoor scenes. In 2009 IEEE Conference
on Computer Vision and Pattern Recognition, pages 413–420.
Ren, J., Liu, P. J., Fertig, E., Snoek, J., Poplin, R., DePristo, M. A., Dillon, J. V., and
Lakshminarayanan, B. (2019). Likelihood ratios for out-of-distribution detection. arXiv
preprint arXiv :1906.02845.
Rumelhart, D. E., Hinton, G. E., and Williams, R. J. (1986). Parallel distributed proces-
sing : Explorations in the microstructure of cognition, vol. 1. chapter Learning Internal
Representations by Error Propagation, pages 318–362. MIT Press, Cambridge, MA, USA.
Simonyan, K. and Zisserman, A. (2014). Very deep convolutional networks for large-scale
image recognition. CoRR, abs/1409.1556.
66
Zimek, A. and Schubert, E. (2017). Outlier Detection. Springer, New York.
67