Telechargé par Town of Photography

Rapport de Stage de Fin dEtudes

publicité
Rapport de Stage de Fin d’Etudes
Présenté par :
Mahamadou Klanan Diarra
Parcours Ingénierie mathématique
Majeure Ingénierie Mathématique Pour l’Entreprise
06 mai - 31 octobre, 2019
Machine learning pour le diagnostic
des éoliennes offshore
INSA ROUEN, Laboratoire d’Informatique, de
Traitement de l’Information et des Systèmes
(LITIS)
Directeur de stage : Prof. Gilles Gasso
Sorbonne Université - Paris 6
Table des matières
1 Introduction
2
2 Contexte du stage
2.1 Siemens Gamesa . . . . . . . . . . .
2.2 Environnement de travail . . . . . . .
2.3 Éolienne : histoire et fonctionnement
2.4 Formulation du problème . . . . . . .
.
.
.
.
4
4
4
5
8
3 Déroulement du stage
3.1 Problématique du stage . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2 Bibliographie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3 Implémentation & Test . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10
10
10
11
4 Études des modèles
4.1 Préambule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2 Kernel change detection . . . . . . . . . . . . . . . . . . . . . . . .
4.2.1 One class svm . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2.2 Algorithme du kernel change detection . . . . . . . . . . . .
4.3 Discrépance moyenne maximale (maximum mean dicrepancy MMD)
4.3.1 MMD dans un espace de Hilbert à noyau reproduisant . . .
.
.
.
.
.
.
12
12
13
14
17
20
21
.
.
.
.
.
.
.
24
24
26
26
28
28
29
32
.
.
.
.
.
.
.
.
5 Évaluation
5.1 Données . . . . . . . . . . . . . . . . . .
5.1.1 Feature extraction . . . . . . . .
5.2 Test sur des lois de probabilités . . . . .
5.3 Test sur des données simulées d’éoliennes
5.3.1 Pré-traitement des données . . .
5.3.2 Stratégie de mise en œuvre . . . .
5.3.3 Résultats . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
6 Conclusion
37
A Annexes
39
1
Table des figures
1.1
La part de l’éolien dans la production d’électricité en France en 2017 et
dans le monde en 2016. Ces représentations sont issues du site internet
d’EDF. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2
2.1
Moulin-cabine à corps mobile. Robert Philippe (1982)[2] . . . . . . . .
6
2.2
Différentes parties d’une éolienne[3] . . . . . . . . . . . . . . . . . . . . .
7
2.3
A droite la nacelle d’une éolienne onshore. Sa particularité est qu’elle munie
de boite de vitesses car le générateur plus petit est placé à l’intérieur de la
nacelle contrairement à une éolienne offshore dotée d’un plus gros générateur
placé entre le rotor et la nacelle. Les éoliennes offshore de Siemens Gamesa
ne sont pas munies de boites de vitesses . . . . . . . . . . . . . . . . . . .
4.1
8
Illustration du transfert des données non linéairement séparable via la
fonction Φ(·) aussi appelée feature map . . . . . . . . . . . . . . . . . . .
13
4.2
Illustration du OC-SVM . . . . . . . . . . . . . . . . . . . . . . . . . . .
14
4.3
Les données sont telles que k(xi , xi ) = c. Trouver l’hyperplan est équivalent
à trouver la sphère de rayon minimale qui entoure une certaine proportion
des données. Cette illustration est extraite du livre Learning with kernels
(voir référence [1], p. 234)
4.4
. . . . . . . . . . . . . . . . . . . . . . . . . .
Influence des paramètres ν et γ sur la région estimée par le OC-SVM. Les
points rouge sont en dehors de la région et sont jugés atypiques . . . . .
4.5
16
17
Principe de la fenêtre glissante, on veut tester la présence d’un changement
à partir de xt . Cette illustration est extraite du papier An online kernel
change detection algorithm. (voir référence [2], p. 3) . . . . . . . . .
2
18
4.6
Illustration du OC-SVM correspond aux deux fenêtres d’observations. Cette
illustration est extraite du papier An online kernel change detection
algorithm. (voir référence [2], p. 8) . . . . . . . . . . . . . . . . . . . . .
5.2
Accélérations de la nacelle et des pales. Cet exemple simule un changement
de vitesse du vent. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.1
19
24
Vibration latérale de la pale. Cette vibration entraîne celle de la nacelle
lorsque la pale est aligné suivant l’axe de l’éolienne. . . . . . . . . . . . .
25
5.3
Fréquences des pales . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
25
5.4
Données simulées . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
27
5.5
Graphiques des tests réalises sur des simulations de différentes lois de
probabilités comparées à la loi normale centrée réduite . . . . . . . . . .
5.6
Pré-traitement : la figure de gauche représente les signaux d’entrées, celle
de droite les signaux de sorties . . . . . . . . . . . . . . . . . . . . . . . .
5.7
27
29
Illustration de la stratégie de détection : les rectangles représentent les
spectrogrammes des 3 pales, At,N , Bt,N et Ct,N représentent les sous matrices
de N colonnes prélevées sur les spectrogrammes respectivement à l’itération t. 30
5.8
Les Spectrogrammes des signaux pré-traités . . . . . . . . . . . . . . . .
5.9
KCD : le graphique de gauche représente les comparaisons des pales deux
à deux, celui de droite la moyenne . . . . . . . . . . . . . . . . . . . . . .
31
31
5.10 MMD : le graphique de gauche représente les comparaisons des pales deux
à deux, celui de droite la moyenne . . . . . . . . . . . . . . . . . . . . . .
32
5.11 Accélérations et fréquences des pales, défaut sur la pale B à partir de 5400.0.
Le défaut s’amplifie progressivement. . . . . . . . . . . . . . . . . . . . .
34
5.12 Signaux pré-traités à gauche, spectrogrammes à droite . . . . . . . . . .
34
5.13 KCD à gauche, MMD à droite. La ligne rouge représente le seuil. . . . . .
34
5.14 Accélérations et fréquences, défaut : 11000 . . . . . . . . . . . . . . . . .
35
5.15 Spectrogrammes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
35
5.16 Gauche : KCD, droite : MMD . . . . . . . . . . . . . . . . . . . . . . .
35
3
5.17 Accélérations et fréquences test 3, défaut : 5400 . . . . . . . . . . . . . .
36
5.18 Spectrogrammes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
36
5.19 Gauche : KCD, droite : MMD . . . . . . . . . . . . . . . . . . . . . . .
36
1
Exemple d’utilisation, les points noirs sont tirés d’une distribution normale
centrée et réduite, les points violets quant à eux sont d’une distribution
normale de moyenne (1,1) mais de même variance. La mesure calculée est
affichée en bas du graphe. . . . . . . . . . . . . . . . . . . . . . . . . . .
4
44
Résumé
La détection de pannes sur les éoliennes est un défi majeur pour les contrôleurs de ces dispositifs. En effet la problématique a suscité de nombreux travaux et bon nombre d’approches
tant statistiques que purement mécaniques ont été développées. Cet engouement pour les
dispositifs éoliens est d’une part dû au paradoxe entre le besoin croissant d’énergies et
les défis écologiques auxquels nous faisons face et d’autre part le coût de maintenance de
ces dispositifs et la difficulté d’accès aux zones d’implantations. L’objectif de ce travail
est d’implémenter des modèles de machine learning qui permettent de diagnostiquer la
présence ou non de défauts sur les éoliennes offshore.
Remerciements
Avant d’aller plus loin dans ce rapport, il m’est très agréable d’exprimer ma reconnaissance
envers les personnes qui m’ont apporté leur soutien que ce soit technique et moral dans
l’élaboration de ce travail.
Je présente mes profonds respect et reconnaissance au Prof. Gilles Gasso, mon
directeur de stage, de m’avoir permis de travailler sur un sujet aussi passionnant, pour son
enseignement et le temps qu’il m’a consacré. Je tiens également à ajouter que chacune de
nos réunions était pour moi un réel plaisir, et ne faisait que m’encourager à approfondir
mes connaissances en machine learning.
Mes sincères remerciements vont également à tout le personnel du LITIS particulièrement à mon voisin de bureau Dr. Mathieu Bourgais pour ces conseils et tout le temps
qu’il m’a consacré.
Mes respects à toute l’équipe de Siemens Gamesa pour leur accueil très chaleureux,
particulièrement mon contact au sein de l’équipe Mr. Panousis Panagiotis pour sa
gentillesse et son enseignement.
Un merci très spécial aux enseignants de la Sorbonne Université, des personnes
qui m’ont transmis leur savoir au cours de ces deux dernières années. J’estime leur
travail au plus haut point. Un très grand merci aux responsables du majeur Ingénierie
Mathématique Pour l’Entreprise ainsi que mes sincères salutations à mes camarades
de promotions.
Je ne saurai conclure cette partie sans une pensée envers ma famille et mes amis, qui,
à travers leur soutien omniprésent me permettent d’aller de l’avant et faire du mieux.
1
Introduction
85.2% de la consommation d’énergie dans le monde serait de nature fossile[1] . Compte
tenu des enjeux écologiques, on s’oriente de plus en plus vers des moyens de production
d’énergies renouvelables. Parmi les différents moyens de production d’énergies vertes entre
autres le solaire, l’hydraulique, la biomasse.., l’éolien occupe une place importante.
(a)
(b)
Figure 1.1 – La part de l’éolien dans la production d’électricité en France en 2017 et
dans le monde en 2016. Ces représentations sont issues du site internet d’EDF.
La production d’énergie éolien dépend intrinsèquement de la force du vent mais aussi
du système de contrôle mis en œuvre sur ces dispositifs. Ce système de contrôle, outre
maintenir la production à un niveau optimal, doit permettre de détecter des pannes le
plus rapidement possible et mettre le dispositif hors service pour éviter une détérioration
complète du matériel. D’ou l’objet de ce projet qui vise à mener une investigation des
modèles de détection par les méthodes du machine learning en vue d’une intégration
dans le système de contrôle.
2
Dans le premier chapitre nous posons le contexte du stage, décrivons l’environnement
de travail, donnons en bref un historique et le principe de fonctionnement d’une éolienne
pour finir par une formalisation du problème. Au second nous donnons un récapitulatif
des différentes étapes du stage. Les chapitres 3 et 4 de ce rapport s’attellent à décrire
les modèles étudiés, la stratégie de détection mise en œuvre et à présenter les résultats
obtenus. Nous finissons évidemment par une conclusion et d’éventuelles perspectives.
3
Contexte du stage
2.1
Siemens Gamesa
Siemens Gamesa est une société européenne fondée en 2017 suite à la fusion de Siemens
Wind Power et de Gamesa. Avec plus de 40 ans d’expérience Siemens Gamesa est l’un
des principaux fournisseurs mondiaux de produits, solutions et services dans le domaine de
l’énergie éolienne. Siemens Gamesa c’est plus de 90.6 GW installés, 23000 employés et
9.1 Mrd euro de chiffre d’affaire. Le département R&D de la section Load & control
de Siemens Gamesa France a ses locaux dans l’un des bâtiments de l’INSA de Rouen.
C’est une équipe constituée de 10 chercheurs dont les études portent sur les phénomènes
aérodynamiques, étude des charges qui s’exerce sur les éoliennes, sur l’amélioration du
système de contrôle des dispositifs éoliens.
2.2
Environnement de travail
Ce stage intervient dans le cadre d’un projet R&D qui vise à intégrer des modèles
de machine learning dans le contrôle des éoliennes offshore. Le travail s’est tenu au
sein du Laboratoire d’Informatique, de Traitement de l’Information et des
Systèmes (LITIS) sous la direction du Prof. Gilles Gasso. Le champ d’application
des études menés au LITIS est très vaste et utilise en grande partie les technologies de
l’intelligence artificielle et aussi les méthodes multi-agents. Ma mission au sein de
cette entité consistait dans un premier temps à comprendre le sujet, faire une bibliographie
4
des méthodes de traitement existantes, en implémenter quelques unes et étudier leurs
performances.
2.3
Éolienne : histoire et fonctionnement
Les éoliennes sont ce qu’on nomme des aérogénérateurs c’est à dire des dispositifs
convertissant l’intensité du vent en énergie électrique. Les éoliennes sont inspirées des
moulins à vent (voir image 2.1) apparus au VII siècle en Perse. On doit la première
éolienne génératrice d’électricité à l’inventeur américain Charles Francis Brush qui
construisit en 1888 une éolienne dotée de 144 pales pour alimenter sa maison en électricité.
La première éolienne industrielle est due au danois Poul La Cour en 1891.
Une éolienne est composée de plusieurs parties essentielles : le mat qui est une tige
verticale de hauteur variable selon le type d’éolienne et la capacité de production ; le
mat est solidement ancré sur une structure stable (fondation), la nacelle est fixée au
sommet du mat et contient les composantes mécaniques et électroniques nécessaires au
fonctionnement de l’éolienne, la nacelle peut tourner dans le plan horizontal pour se mettre
face au vent, le rotor correspond au nez rotatif de la nacelle sur lequel est fixé les pales
au nombre de trois généralement. Pour ce qui est du fonctionnement, sous l’effet du vent
les pales se mettent en mouvement circulaire entraînant le rotor qui à son tour met en
mouvement un aimant autour ou dans une bobine. C’est une explication très brève du
fonctionnement de l’éolienne, car en effet, la nacelle contient bon nombre de composantes
mécaniques qui interviennent dans le processus et il y a tout un système de contrôle
qui coordonne en réalité ces mouvements.
5
Figure 2.1 – Moulin-cabine à corps mobile. Robert Philippe (1982)[2]
6
Figure 2.2 – Différentes parties d’une éolienne[3]
7
Figure 2.3 – A droite la nacelle d’une éolienne onshore. Sa particularité est qu’elle
munie de boite de vitesses car le générateur plus petit est placé à l’intérieur de la nacelle
contrairement à une éolienne offshore dotée d’un plus gros générateur placé entre le rotor
et la nacelle. Les éoliennes offshore de Siemens Gamesa ne sont pas munies de boites de
vitesses
2.4
Formulation du problème
Le système de contrôle permet un monitoring de l’éolienne basé essentiellement sur
du traitement (physique) du signal dans le sens où la méthode consiste à déterminer les
fréquences de vibration des pales et à calculer l’écart entre ces fréquences. Formellement,
soit FA , FB et FC les fréquences des trois pales. L’hypothèse de cette méthode est qu’en
fonctionnement normal, les trois pales ont des fonctionnements semblables vu que leurs
matériaux sont les mêmes (masse et raideur) et qu’elles sont soumises au même mouvement.
En cas de défauts, fissure sur une pale par exemple, la fréquence de cette dernière change.
Considérons les signaux suivants :















dif f FA = FA − 0.5 ∗ (FB + FC )
dif f FB = FB − 0.5 ∗ (FA + FC )
dif f FC = FC − 0.5 ∗ (FA + FB )
8
(2.1)
Ces trois éléments doivent être stables autour de 0. Si l’un de ces signaux est en dehors
d’un certain intervalle définie par [−ψ, ψ] avec ψ > 0, on est face à un défaut sur l’une
des pales.
Les méthodes présentées dans ce rapport partent d’une formulation différente. Considérons un processus (machine qui remplit des sachets de café, voix de personnes participant
à un débat...) qui génère des données au cours du temps x0 , x1 , · · · , xt . La détection de
′
changements ou de défauts à l’instant t dans un tel processus se formule sous forme d’un
test d’hypothèse comme suit : xt,1 = (x0 , ..., xt′ −1 ) ∼ P et xt,2 = (xt′ , ..., xt ) ∼ Q







H0 : P ∼ Q
(2.2)
H1 : P ≁ Q
P et Q sont deux lois de distributions inconnues en pratique. L’hypothèse H0 étant qu’il
n’y a aucun changement dans le processus, les données sont distribuées de la même
′
manière avant et après l’instant t . Le problème se ramène à trouver une statistique de
test T (xt,1 , xt,2 ) et un seuil η > 0 telle que :







H0 : T (xt,1 , xt,2 ) ≤ η (Pas de changement)
′
H1 : T (xt,1 , xt,2 ) > η (changement détecté à t )
(2.3)
Dans ce rapport nous présenterons deux méthodes qui partent de cette formulation :
Kernel Change Detection et Maximun Mean Discrepancy.
9
Déroulement du stage
Dans ce chapitre nous décrivons les différentes phases de déroulement du stage. Ce
travail s’est déroulé au sein du LITIS (Laboratoire d’Informatique, de Traitement de
l’Information et des Systèmes) sur un projet R&D de Siemens Gamesa de ce fait en étroite
collaboration avec l’équipe de recherche Load & control de l’entreprise.
3.1
Problématique du stage
La première étape du stage a consisté à comprendre la problématique et ma mission.
Au fur à mesure des différentes réunion avec mon directeur de stage et l’expert métier,
ma mission s’est précisée et mes connaissances sur le dispositif éolien se sont accrues
considérablement.
En effet, c’était une étape constituée de plusieurs réunions d’explication : du problème, de ma mission, du dispositif éolien. C’était également une étape d’intégration, de
présentation : à l’équipe de Siemens Gamesa, aux personnels du LITIS, mes voisins de
bureau.
3.2
Bibliographie
Ma mission étant définie, l’étape suivante consistait à identifier des méthodes. Il
s’agissait de faire une bibliographie des modèles de détection par machine learning, deux
méthodes ont été suggérés par mon directeur de stage : Kernel change detection et le
10
Discrépance moyenne maximale (Maximum mean discrepancy). Ces méthodes
ont été choisies pour leurs natures non paramétriques, non supervisées et également pour
leurs bonnes propriétés théoriques. Il existe bien évidemment d’autres approches qui
peuvent être paramétriques et/ou supervisés [8].
3.3
Implémentation & Test
La phase d’implémentation a occupé la grande partie de la durée du stage. Il a fallu
d’abord installer Python et les packages de base pour commencer (numpy, pandas,
matplotlib, sklearn) le reste des packages nécessaires a été installé au fur à mesure des
besoins. Deux classes ont été codées Kernel_Change_Detection que nous avons fait hérité
de la classe OneClassSVM (OC-SVM) de la bibliothèque sklearn.svm ce qui facilite
son initialisation, maximum_mean_discrepancy, ainsi qu’un module de fonctions utiles.
Le test des modèles implémentés a été réalisé sur des données simulées de lois de
probabilités (Normale, Laplace) avant de passer aux données simulées d’éoliennes.
11
Études des modèles
Dans ce chapitre nous détaillons les modèles de détection implémentés tout au long
de ce projet. Nous commençons par introduire la notion d’espace de Hilbert à noyau
reproduisant, nous décrivons ensuite le premier modèle Kernel Change Detection
(KCD) où nous parlerons du one class support vector machine (OC-SVM) et
détaillons les calculs qui conduisent à la statistique de test proposée par cette méthode
nommée : mesure de dissimilarité. On conclut le chapitre avec la seconde méthode la
discrépance moyenne maximale (Maximum Mean Discrepancy : MMD).
4.1
Préambule
Definition. [Bernhard Schökopf and Aexander J. Smola, 2001 [1]]
Soient X un ensemble non vide et H l’espace de Hilbert des fonctions f : X −→ R. H
est un espace de Hilbert à noyau reproduisant, muni d’un produit scalaire h·, ·i induisant
une norme (kf kH =
q
hf, f i), s’il existe une fonction (noyau) k : X × X −→ R avec les
propriétés suivantes :
1. reproduction : hf, k(x, ·)i = f (x), ∀f ∈ H
2. k engendre H : H = vect{k(x, ·)|x ∈ X }
De cette définition on tire en particulier : k(x, ·) : X −→ R ; hk(x, ·), k(y, ·) = k(x, y)
H est entièrement déterminé par k, à chaque noyau correspond un espace de Hilbert
12
Figure 4.1 – Illustration du transfert des données non linéairement séparable via la
fonction Φ(·) aussi appelée feature map
(reproducing kernel Hilbert space RKHS) :
′
′
′
hk(x, ·), k (y, ·) = k(x, y) = k (y, x) = k (x, y). Notons Φ(x) = k(x, ·).
La notion d’espace de Hilbert à noyau reproduisant est énormément utilisée en apprentissage automatique en particulier dans les algorithmes de type SVM (support vector
machine). L’idée consiste à transférer les données dans un espace de dimension plus grande
(dim(H) >> dim(X )) voir même infinie (espace de fonctions) de sorte que le problème soit
facile à résoudre. L’exemple classique est celui de la classification, qui cherche un hyperplan
{ω ∈ X , ω0 ∈ R|hω, xi + ω0 = 0} qui sépare efficacement les données dans le cas de la
classification binaire. Dans le cas de problème non linéairement séparable, ils sont transférées dans un espace de Hilbert à noyau reproduisant (voir figure 4.1) via le feature map
Φ : X −→ H. L’hyperplan à déterminer est alors {W ∈ H, W0 ∈ R|hW, Φ(x)i + W0 = 0}.
Les propriétés de cet espace font que la résolution du problème ne dépendra plus de la
dimension de l’espace en question (k(x, y) = hΦ(x), Φ(y)i).
4.2
Kernel change detection
Dans cette section nous présenterons la méthode KCD proposée par Desobry et al.
(2004). La méthode s’appuie sur l’algorithme du One Class SVM décrit ci-dessous.
13
4.2.1
One class svm
Soit X = (x1 , · · · , xn ) ⊂ X où n est le nombre d’observations, X l’espace des observations (input space). H est un espace de Hilbert à noyau reproduisant (feature space)
et k(·, ·) le noyau associé. On définit Φ : X −→ H tel que : k(x1 , x2 ) = hΦ(x1 ), Φ(x2 )i.
Des exemples de fonction noyau sont :
— le noyau linéaire (linear kernel) : k(x1 , x2 ) = hx1 , x2 i
— le noyau polynomial d’ordre d : k(x1 , x2 ) = (hx1 , x2 i + c)d avec c ≥ 0
−x2 k
— le noyau gaussien (RBF kernel) : k(x1 , x2 ) = exp − kx12γ
2
2
Le One class svm (OC-SVM) est un algorithme de classification non supervisé qui trace
le contour d’un certain niveau λ de la distribution des données (i.e. {x ∈ X /f (x) = λ})
où f est la densité (inconnue) de distribution des données, l’ensemble {x ∈ X /f (x) ≥ λ}
constitue notre classe unique (one class) et toute observation en dehors est considérée
comme aberrante.
Figure 4.2 – Illustration du OC-SVM
Le principe de l’algorithme consiste à projeter les données sur la surface d’un hypersphère de rayon fixé grâce à l’astuce du noyau (kernel trick) et à trouver l’hyperplan optimal qui sépare les données mappées du centre de l’hypersphère. On peut
14
donc supposer sans perte de généralité (quitte à normaliser) que le noyau est tel que
k(x1 , x1 ) = hΦ(x1 ), Φ(x1 )iH = kΦ(x1 )k2H = 1 c’est le cas du noyau gaussien par exemple.
Formellement il s’agit de trouver l’hyperplan {Φ(x) ∈ H : hω, Φ(x)iH − ρ = 0} avec ω ∈ H
et ρ > 0 de sorte que hω, Φ(x)iH − ρ ≥ 0 pour une certaine proportion des données.
Pour ce faire il y a lieu de résoudre le problème d’optimisation :
min
ω∈H,ρ>0,ξ∈Rn
n
1 X
1
ξi − ρ
kωk2 +
2
νn i=1
sous la contrainte :
hω, Φ(x)iH ≥ ρ − ξi ,
∀i = 1, · · · , n
où les ξi sont des variables d’écart (slack variable) et 0 < ν ≤ 1 la constante de
relaxation qui contrôle l’influence des erreurs ( n1
La fonction de décision :
i=1 ξi ).
Pn
f (x) = sgn(hω, Φ(x)iH − ρ)
Le lagrangien du problème avec comme multiplicateurs αi , βi > 0, i = 1, · · · , n est donné
par :
X
X
1
1 X
βi ξi
L(ω, ρ, ξ, α, β) = kωk2 +
αi (hω, Φ(x)iH − ρ + ξi ) −
ξi − ρ −
2
νn i
i
i
La réécriture du problème sous les conditions KKT donne le problème dual :
minn
α∈R
X
αi αj k(xi , xj )
i,j
sous les contraintes :
0 ≤ αi ≤
X
1
;
αi = 1
νn
i
Les paramètres de l’hyperplan sont donnés par : ω =
15
P
i
αi Φ(xi ), ρ =
P
i
αi k(xi , xj )
Figure 4.3 – Les données sont telles que k(xi , xi ) = c. Trouver l’hyperplan est équivalent
à trouver la sphère de rayon minimale qui entoure une certaine proportion des données.
Cette illustration est extraite du livre Learning with kernels (voir référence [1], p. 234)
.
Autre formulation
Une formulation équivalente du OC-SVM, plus accessible, consiste à chercher la
sphère de rayon minimal R qui englobe les données (voir figure 4.3). Formellement le
problème se pose comme suit :
minR∈R,c∈H,ξ∈Rn R2 +
1
νn
Pn
i=1 ξi ,
0<ν≤1
Sous la contrainte : kΦ(xi ) − ckH ≤ R2 − ξi , ξi ≥ 0, i = 1, · · · , n
Le dual,
minα∈Rn
P
i,j
αi αj k(xi , xj ) −
P
sous les contraintes 0 ≤ αi ≤
i
αi k(xi , xi ), i, j = 1, · · · , n
1
;
νn
P
i
αi = 1
Pour k(xi , xi ) = cte on retrouve la formulation précédente du dual du OC-SVM.
Choix du noyau
Le noyau gaussien (rbf kernel) est le meilleur choix pour ce algorithme. En effet il
n’y a pas lieu de le normaliser. Il se pose alors le problème du choix des paramètres γ et ν
16
qui sont cruciaux pour un meilleur résultat comme on peut le voir sur la figure ci-dessous.
Figure 4.4 – Influence des paramètres ν et γ sur la région estimée par le OC-SVM. Les
points rouge sont en dehors de la région et sont jugés atypiques
Pour de petites valeurs de ν le nombre de points en dehors de la région estimée par le
OC-SVM diminue et inversement. L’influence de γ sur la région estimée est également
remarquable, de grandes valeurs causent un problème de sur-apprentissage et inversement
les petites valeurs causent un problème de sous-apprentissage. Différents travaux ont traité
du sujet [3], [4], ce n’est pas l’objet de ce présent travail.
4.2.2
Algorithme du kernel change detection
Dans cette section nous décrivons l’algorithme de la méthode KCD qui s’appuie sur
le OC-SVM pour proposer une statistique qui reflète le degré de ressemblance entre les
contours estimés sur deux séries d’observations. L’algorithme utilise le principe de fenêtre
glissante sur les données.
17
Figure 4.5 – Principe de la fenêtre glissante, on veut tester la présence d’un changement
à partir de xt . Cette illustration est extraite du papier An online kernel change
detection algorithm. (voir référence [2], p. 3)
.
La procédure est la suivante : on prends deux fenêtres de taille m1 et m2 d’échantillons
respectifs xt,1 et xt,2 , on calcule la dissimilarité entre les contours estimés sur ces deux
séries d’observations. Cette mesure sera comparée à un seuil η et la décision devient :







H0 : D(xt,1 , xt,2 ) ≤ η (Pas de changement)
H1 : D(xt,1 , xt,2 ) > η (changement detecté à t)
Mesure de dissimilarité
Le calcul de cette mesure se base sur des arguments de géométrie dans le feature space
(H) et part de l’idée suivante : si deux échantillons xt,1 = (x1 , · · · , xn ) et xt,2 = (y1 , · · · , yn )
sont issus d’une même distribution les contours estimés sur ces deux échantillons doivent
être similaires, donc une valeur qui prétend refléter leur dissimilarité doit être proche de 0
et inversement.
Soient xt,1 et xt,2 nos deux fenêtres précédentes, (ωt,i , ρt,i ) les coefficients des hyperplans
respectifs, pt,i l’intersection de l’hyperplan et l’hypersphère, ct,i l’intersection de la normale
à l’hyperplan passant par le centre O et l’hypersphère, et,
ρt,i
kωt,i k
la distance entre l’hyperplan
et centre O de l’hypersphère i = 1, 2. Ces notions sont illustrées sur la figure 4.6.
18
Figure 4.6 – Illustration du OC-SVM correspond aux deux fenêtres d’observations. Cette
illustration est extraite du papier An online kernel change detection algorithm.
(voir référence [2], p. 8)
.
La mesure de dissimilarité s’exprime comme suit :
⌢
ct,1 ct,2
D(xt,1 , xt,2 ) = ⌢
⌢
ct,1 pt,1 + ct,2 pt,2
⌢
\
Oct,2 ), le produit
ct,1 ct,2 désigne la longueur de l’arc (i.e. l’angle entre ct,1 et ct,2 : ct,1
scalaire ente ct,1 et ct,2 s’exprime en fonction de ce dernier :
\
hct,1 , ct,2 i = kct,1 kH kct,2 kH cos(ct,1
Oct,2 )
en notant que ct,i =
ωt,i
kωt,i kH
=⇒ kct,i kH = 1 on obtient ;
\
hct,1 , ct,2 i = cos(ct,1
Oct,2 )
\
=⇒ ct,1
Oct,2 = arccos(hct,1 , ct,2 i)
hωt,1 , ωt,2 i
= arccos
kωt,1 kH kωt,2 kH
19
!
des conditions KKT on a : ωt,i =
P
i
αi Φ(xi ) ;
T
αt,1
k(xt,1 , xt,2 )αt,2
hωt,1 , ωt,2 i
q
=q
T
T
kωt,1 kH kωt,2 kH
αt,1
k(xt,1 , xt,1 )αt,1 αt,2
k(xt,2 , xt,2 )αt,2
⌢
Un calcule similaire nous donne l’expression de ct,i pt,i , i = 1, 2 :
⌢
ct,i pt,i

= arccos  q
ρt,i
T
αt,i
k(xt,i , xt,i )αt,i


Théorème. [Desobry et al., 2004 [2]]
Soit x = (x1 , · · · , xn ) un échantillon i.i.d selon la loi p(·) une mesure de probabilité de
moyenne µ, définie sur X . Soit k(·, ·) un noyau tel que :
k(x, y) = exp(−λkx − ykX )
avec λ > 0
Alors avec probabilité 1 le centre c donné par le OC-SVM sur x converge vers µ = Φ(µ)
quand n −→ ∞.
4.3
Discrépance moyenne maximale (maximum mean
dicrepancy MMD)
Dans cette section nous présentons la seconde méthode implémentée pour la détection
de changement. Nous verrons l’intérêt de l’espace de Hilbert à noyau reproduisant dans
l’étude de ce problème, définissons la mesure de discrépance et son estimateur.
Definition. Discrépance moyenne maximale
Soient F la classe des fonctions f : X −→ R. p et q deux mesures de probabilité et x ∼ p,
20
y ∼ q. La discrépance moyenne maximale entre p et q est définie par :
M M D[F, p, q] = sup (Ep [f (x)] − Eq [f (y)])
f ∈F
Soit X = (x1 , · · · , xn ) et Y = (y1 , · · · , yn ) deux échantillons i.i.d respectivement selon p
et q. Un estimateur sans biais est donné par :
1X
1X
M M D[F, X, Y ] = sup
f (xi ) −
f (yi )
n i
n i
f ∈F
!
4.3.1
MMD dans un espace de Hilbert à noyau reproduisant
Dans cette section nous présentons la discrépance moyenne maximale en considérant
F comme la boule unité d’un espace de Hilbert à noyau reproduisant {f | kf kH ≤ 1} :
M M D[F, p, q] = sup (Ep [f (x)] − Eq [f (y)])
kf kH ≤1
Le développement des calculs requiert l’introduction d’un élément crucial noté µp . A
chaque mesure de probabilité p définie sur X est associée un unique élément de H µp tel
que Ep [f ] = hf, µp i sous les conditions :







Ep [f ] =
Z
f (x)p(x)dx =
Z
k(·, ·) mesurable
(4.1)
q
Ep [ k(x, x)] < ∞
f (x)hp, k(x, ·)idx =
Z
f (x)hp, k(x, ·)idx =
En d’autre termes, on a que : µp = Ep [k(x, ·)].
Lemme. Arthur Gretton et al. (2012)
21
Z
f (x)Ep [k(x, ·)]dx
Sous les conditions énoncées ci-dessus en 4.1 on a :
"
#2
sup (Ep [f (x)] − Eq [f (y)])
kf kH ≤1
= kµp − µq k2H
En effet :
2
MMD =
=
"
"
#2
sup (Ep [f (x)] − Eq [f (y)])
kf kH ≤1
#2
sup hµp − µq , f i
kf kH ≤1
= kµp − µq k2H
Estimateur
Dans cette section nous donnons l’estimateur du MMD. En se plaçant dans la boule
unité de H un RKHS, nous avons exprimé M M D[F, p, q]2 avec p et q deux mesures de
probabilité définies sur X comme kµp − µq k2H . Les propriétés de H permettent d’écrire
[Arthur Gretton et al. (2012)] :
M M D[F, p, q]2 = kµp − µq k2H
= hµp , µp iH + hµq , µq iH − 2hµp , µq iH
′
′
= Ep,p [k(x, x )] + Eq,q [k(y, y )] − 2Ep,q [k(x, y)]
′
′
avec x, x ∼ p et y, y ∼ q. Il s’en déduit un estimateur sans biais avec X = (x1 , · · · , xn )
i.i.d selon p et Y = (y1 , · · · , yn ) i.i.d selon q :
M M D[F, X, Y ]2 =
n
X
1
h(xi , xj , yi , yj )
n(n − 1) i6=j
où h(xi , xj , yi , yj ) = k(xi , xj ) + k(yi , yj ) − k(xi , yj ) − k(xj , yi ).
— Le MMD est un test de distribution sur deux échantillons et le problème de la
22
détection de changement peut se formuler sous forme d’un test d’hypothèses voir
2.2. Pour employer le MMD en détection on utilise là encore le principe de la
fenêtre glissante (voir figure 4.5).
23
Évaluation
Dans ce chapitre nous présentons les résultats des tests réalisés sur des données simulées
et des données d’éoliennes. Nous présenterons la stratégie mise en œuvre pour adapter les
modèles à notre cas d’étude. Mais avant quelques mots sur les données dont on dispose.
5.1
Données
Pour ce projet nous avons travaillé sur les accélérations des pales de l’éolienne. L’intensité du vent soumet les pales à des vibrations latérales (voir figure 5.1). Les pales dans
leur mouvement entraînent la nacelle et par le biais d’un capteur les accélérations de la
nacelle sont enregistrées.
(a) Accélération de la nacelle
(b) Accélérations des trois pales A, B et C
Figure 5.2 – Accélérations de la nacelle et des pales. Cet exemple simule un changement
de vitesse du vent.
L’accélération de la nacelle est démodulée pour extraire celles des pales selon l’expression : xt = ut ∗ cos(ψt + αt ) où ψt représente l’angle azimutal de la pale c’est à dire l’angle
24
Figure 5.1 – Vibration latérale de la pale. Cette vibration entraîne celle de la nacelle
lorsque la pale est aligné suivant l’axe de l’éolienne.
entre la position de la pale à l’instant t et sa position initiale. αt représente l’angle et la
position initiale de la pale et l’axe vertical de l’éolienne.
Après filtrage des accélérations par une boucle à verrouillage de phase (PLL : phaselocked loop) on obtient les fréquences de vibration des pales (figure 5.3).
Figure 5.3 – Fréquences des pales
25
5.1.1
Feature extraction
Pour extraire la caractéristique (feature) que nous exploitons, nous utilisons la transformée de Fourier à court terme (short-time Fourier transform (stft)) des accélérations
des pales. L’intérêt de cette transformée de Fourier est qu’elle conserve, contrairement à la
transformée de Fourier classique, le séquencement temporel du signal ce qui nous permet
d’apprécier l’énergie instantanée des fréquences qui le compose. La méthode consiste à
calculer la transformée de Fourier classique sur des fenêtres locales du signal d’entré. Le
stft[4] est définie par :
Xm (ω) =
∞
X
x(n)w(n − mR)e−jωn
n=−∞
Où
x(·) : désigne le signal d’entré
w(·) : la fonction qui détermine la fenêtre locale, à analyser, du signal
R : la taille du saut entre deux fenêtres consécutives. Plus précisément le calcul fonctionne
selon le principe de la fenêtre glissante. Soit N la taille de la fenêtre et M le chevauchement
entre deux fenêtres consécutives, alors R = N − M .
Pour extraire cette caractéristique nous utilisons la fonction stft de la bibliothèque
scipy.signal de python.
5.2
Test sur des lois de probabilités
Dans un premier temps nous comparons la loi N (0, 1) à d’autres lois (normale de
moyenne et/ou de variance différentes, Laplace) (voir figure 5.4). Sur la figure 5.5b sont
reportées les valeurs des statistiques de test des deux modèles implémentés. On distingue
très clairement le cas sans changement (courbe bleue) des cas avec un changement (voir
figure 5.5b).
26
Figure 5.4 – Données simulées
(a) Kernel change detection
(b) Discrepance moyenne maximale
Figure 5.5 – Graphiques des tests réalises sur des simulations de différentes lois de
probabilités comparées à la loi normale centrée réduite
Remarquez sur la figure 5.5b qu’on arrive à bien distinguer, pour les deux modèles,
le cas sans changement (loi normale centrée réduite contre elle même, courbe bleue) des
autres cas. Ce qui traduit la capacité des modèles implémentés à, effectivement, détecter
des changements.
27
5.3
Test sur des données simulées d’éoliennes
Dans cette section nous présentons les résultats obtenus sur des données simulées
d’éoliennes. Nous disposons de 4 cas tests dont 3 simulent des pannes. Mais avant quelques
mots sur la stratégie mise en œuvre pour adapter les modèles étudiés à notre cas d’étude.
5.3.1
Pré-traitement des données
Les signaux sur les lesquels nous travaillons sont composés de plusieurs fréquences
qui sont mises en évidence à travers la Transformée de Fourier à temps court.
Cependant pour une meilleure efficacité et éviter que le défaut ne soit noyé dans multitude
de fréquences, on s’intéresse juste à une petite bande de fréquence qui contient les
fréquences réelles des pales. Pour ce faire nous utilisons un filtre passe-bande. Les
signaux résultants sont centrés et réduits pour accroître leur amplitude donc l’énergie des
fréquences qui les composent.
28
Figure 5.6 – Pré-traitement : la figure de gauche représente les signaux d’entrées, celle
de droite les signaux de sorties
5.3.2
Stratégie de mise en œuvre
Les méthodes (KCD & MMD) sont conçues pour détecter des changements sur un
signal en utilisant le principe de la fenêtre glissante (figure 4.5). Cette stratégie n’est
pas adaptée à notre cas, en effet, l’accélération, sujette aux fluctuations du vent varie
constamment. En outre, nous ne cherchons pas à détecter un changement sur l’accélération
d’une pale mais à détecter une différence significative entre les accélérations des pales
(figure 5.7).
29
Figure 5.7 – Illustration de la stratégie de détection : les rectangles représentent les
spectrogrammes des 3 pales, At,N , Bt,N et Ct,N représentent les sous matrices de N colonnes
prélevées sur les spectrogrammes respectivement à l’itération t.
A l’itération t on prélève 3 sous matrices (At,N , Bt,N et Ct,N ) de N colonnes partant
de t, sur les 3 spectrogrammes respectivement, nous comparons les pales deux à deux
sur la base de ces 3 échantillons prélevés : T (At,N , Bt,N ), T (At,N , Ct,N ) et T (Bt,N , Ct,N ).
Nous utilisons comme mesure de dissimilarité la moyenne :
T̂ (At,N , Bt,N , Ct,N ) =
1
[T (At,N , Bt,N ) + T (At,N , Ct,N ) + T (Bt,N , Ct,N )] .
3
(5.1)
Comme exemple pour illustrer tout ce que nous venons de détailler, prenons le cas
sans défauts (figure 5.6), le pré-traitement conserve la bande de fréquences 0.8 - 0.85
Hz (voir figure 5.8).
30
Figure 5.8 – Les Spectrogrammes des signaux pré-traités
Figure 5.9 – KCD : le graphique de gauche représente les comparaisons des pales deux
à deux, celui de droite la moyenne
31
Figure 5.10 – MMD : le graphique de gauche représente les comparaisons des pales deux
à deux, celui de droite la moyenne
5.3.3
Résultats
Les résultats présentés ici ont été obtenues sur 3 cas test simulant des pannes. Dans
les 3 cas des défauts ont été introduits sur la pale B en changeant sa rigidité. les cas 1
et 3 (figures 5.11 et 5.17) simulent des défauts mineurs qui s’aggravent dans le temps.
Cette situation est simulée en changeant progressivement la rigidité du pale B. Le cas 2
(figure 5.14) simule un défaut brutal. La fréquence d’échantillonnage des signaux d’origine
(accélérations) est de 10 soit une observation tout les
1
10
de seconde.
Les tableaux 5.1 et 5.1 ci-dessous contiennent les données générées suite aux tests
réalisés sur les 3 cas de simulations de pannes sur une éolienne. La colonne stft pour
Short-Time Fourier Transform représente la taille de l’échantillon pris sur le signal pour
constituer une colonne du spectrogramme, elle fait à la taille de la fenêtre (N ) définie
dans la section 5.1.1. Le couple (ν, γ) fixé à (0.1,0.1) sont les paramètres du OC-SVM, ce
choix a été guidé par de multiples essais réalisés sur les mêmes données. Les seuils ont été
fixés post-traitement, en effet le KCD ne présente pas de méthodes de choix du seuil et
pour le MMD, bien qu’il présente des théorèmes de convergence, le choix du seuil dépend
de la taille des données (N colonnes) mais aussi de certaines notions théoriques que nous
32
n’avons pas pu explorer plus en détails (ce point est abordé dans les perspectives). Le
changement commence à l’instant 5400.0 pour les cas 1, 3 et à l’instant 11000 pour le cas 3.
Paramètres
Cas
stft
512
Test 1 1024
256
512
Test 2 1024
256
512
Test 3 1024
256
Seuil
(ν, γ)
N colonnes
0.22
50
0.14 (0.1,0.1)
20
0.275
50
0.16
50
0.11 (0.1,0.1)
20
0.22
50
0.18
50
0.11 (0.1,0.1)
20
0.25
50
KCD
instant de détection retard à la détection
9292.8
3892.8
10393.6
4993.6
9049.6
3649.6
11776.0
776
11827.2
827.2
11772.0
772.0
8960.0
3568.0
9345.6
3945.6
9305.6
3985.6
Table 5.1 – Données générées par le test de la méthode KCD sur les cas test avec
différentes combinaisons de paramètres.
Paramètres
Cas
stft
512
Test 1 1024
256
512
Test 2 1024
256
512
Test 3 1024
256
Seuil
γ
0.005
1
0.005
1
0.005
1
N colonnes
50
50
50
50
50
50
50
50
50
MMD
instant de détection retard à la détection
10316.8
4916.8
9830.4
4430.4
8038.4
2638.0
11750.4
750.4
12288.0
1288.0
11648.0
648.0
10214.4
4814.4
9625.6
4225.6
9689.6
4289.6
Table 5.2 – Données générées par le test de la méthode M M D sur les cas test avec
différentes combinaisons de paramètres.
Remarquez les instants de détection mais également les retards à la détection. Le
retard est plus grand pour les cas 1 et 3, en effet, ces deux cas (figures 5.11 et 5.17)
présentent des défauts initial mineurs qui s’amplifient dans le temps. Le défaut ne sera
détectable que lorsqu’il sera suffisant pour impacter significativement les accélérations des
pales. Contrairement au cas 2 qui présente un défaut brutal détecté rapidement. Cette
observation est valable pour les deux méthodes.
33
Test 1
Figure 5.11 – Accélérations et fréquences des pales, défaut sur la pale B à partir de
5400.0. Le défaut s’amplifie progressivement.
Figure 5.12 – Signaux pré-traités à gauche, spectrogrammes à droite
Figure 5.13 – KCD à gauche, MMD à droite. La ligne rouge représente le seuil.
34
Test 2
Figure 5.14 – Accélérations et fréquences, défaut : 11000
Figure 5.15 – Spectrogrammes
Figure 5.16 – Gauche : KCD, droite : MMD
35
Test 3
Figure 5.17 – Accélérations et fréquences test 3, défaut : 5400
Figure 5.18 – Spectrogrammes
Figure 5.19 – Gauche : KCD, droite : MMD
36
Conclusion
J’ai effectué mon stage de fin d’études d’ingénierie mathématique, à l’INSA Rouen
au sein du laboratoire d’informatique, de traitement de l’information et des systèmes
(litis), sur un projet R&D de Siemens Gamesa, qui vise à identifier des modèles de
machine learning permettant de détecter des changement et les adapter à la détection
de pannes sur les éoliennes offshore. Durant ce stage de 6 mois, les compétences acquises
au cours de ma formation m’ont permis non seulement de comprendre la problématique
formulée scientifiquement et les méthodes mises en œuvre pour y répondre, mais aussi de
pouvoir donner une interprétation des équations et mettre en place un système permettant
d’adapter les méthodes étudiées à notre cas.
Ce stage m’a permis de découvrir le travail en laboratoire, les acteurs, le dialogue
avec les experts métiers. Au cours de ce travail, j’ai acquis des compétences en machine
learning notamment les algorithmes de type SVM et l’utilisation de la fonction noyau.
J’ai aussi acquis des compétences en traitement de signal : le filtrage, la densité spectrale
de puissance.
Au terme de ce travail nous avons pu répondre à la demande qui consistait à implémenter
des modèles de machine learning et les adapter à la détection de pannes sur une éolienne.
Le choix du seuil reste, cependant, arbitraire et nécessite pour un meilleur choix une étude
approfondie de la statistique définie en 5.1, particulièrement pour modèle MMD qui offre
plus de perspectives.
37
Ce qui reste à faire
— Mieux analyser la sensibilité des deux modèles aux différents paramètres (instant
de détection et retard à la détection en fonction des paramètres du modèles),
— Mettre en place une fonction seuil adaptative pour la méthode KCD, par exemple
t−1
ηt = Qt−1
+ λ(Qt−1
− Qt−1
représente la médiane des mesures à l’instant
2
3
1 ), où Q2
t − 1, Qt−1
− Q1t−1 désigne l’écart inter-quartile à t − 1 et λ > 0.5 une constante.
3
Ainsi la mesure calculée à l’instant t (T̂ (At,N , Bt,N , Ct,N )) sera comparée au seuil
ηt ,
— Avec un calibrage adéquat des paramètres, mettre les modèles en streaming (en
continu)),
— Explorer d’autres modèles [8].
38
Annexes
39
Kernel change detection :
K e r n e l C h a n g e D e t e c t i o n ( s e l f , k e r n e l = ’ r b f ’ , d e g r e e = 3 ,gamma = 0 . 1 , c o e f 0 =
0 . 0 , t o l = 1 e −3, nu = 0 . 5 , s h r i n k i n g = True , c a c h e _ s i z e = 2 0 0 , v e r b o s e
= F a l s e , max_iter = −1, random_state = None )
Les paramètres sont ceux du OC-SVM, pour plus d’information suivre le lien.
Pour un utilisateur il y a 4 fonctions essentielles :
TrainingOfData ( s e l f , X, Y = None , Z = None )
ComputeDecisionFunction ( s e l f , xx , yy , c l f _ c l u s t e r 1 , c l f _ c l u s t e r 2 = None ,
c l f _ c l u s t e r 3 = None )
C l u s t e r I n f o ( s e l f , c l f _ c l u s t e r 1 , c l f _ c l u s t e r 2=None )
DissimilarityMeasure ( self , clf_cluster1 , clf_cluster2 )
TrainOfData :
Cette fonction entraîne 1 à 3 modèles en fonction des entrés (X, Y, Z) qui sont les
échantillons d’entraînements. Calcule des OC-SVM pour chaque entrée : X, Y et Z.
40
Exemple :
import D e t e c t i o n T o o l s K i t a s DT
import numpy a s np
cov = [ [ 1 . , 0 ] , [ 0 , 1 . ] ]
X = np . random . m u l t i v a r i a t e _ n o r m a l ( ( 0 , 0 ) , cov , 4 0 0 )
modele = DT. K e r n e l C h a n g e D e t e c t i o n ( nu =0.1)
c l f = modele . TrainingOfData (X)
Y = np . random . m u l t i v a r i a t e _ n o r m a l ( ( 5 , 1 0 ) , cov , 4 0 0 )
modele2 = DT. K e r n e l C h a n g e D e t e c t i o n ( nu =0.1)
c l f , c l f 1 = modele2 . TrainingOfData (X, Y)
ComputeDecisionFunction :
Cette fonction calcule et affiche la frontière de décision du OC-SVM, à utiliser pour
des échantillons d’entraînements 2D.
xx , yy = np . meshgrid ( np . l i n s p a c e ( −5 , 5 ,10 0) , np . l i n s p a c e ( −5 , 5 ,10 0) )
z z = modele . ComputeDecisionFunction ( xx , yy , c l f )
ClusterInfo :
Cette fonction retourne des informations utilisées dans la celle (DissimilarityMeasure)
qui suit. Dans le cas où elle prend en argument un seul classifieur (clf), la fonction retourne
la constante qui intervient dans le problème d’optimisation (intercept) ainsi que la matrice
noyau construite avec les vecteurs supports du classifieur. Dans le cas de deux classifieurs
en entrée (clf1, clf2) elle retourne les coefficients duaux respectifs des deux problèmes
d’optimisations ainsi que la matrice noyau construite avec les vecteurs supports des deux
classifieurs.
rho , k e r n e l _ m a t r i x = modele . C l u s t e r I n f o ( c l f )
41
a_1 , a_2 , K = modele2 . C l u s t e r I n f o ( c l f , c l f 1 )
DissimilarityMeasure :
Celle-ci calcule la mesure introduite par Desobry et al. dans leur article cité plus haut :
measure = modele2 . D i s s i m i l a r i t y M e a s u r e ( c l f , c l f 1 )
42
Exemple complet :
import D e t e c t i o n T o o l s K i t a s DT
import m a t p l o t l i b . p y p l o t a s p l t
import numpy a s np
cov = [ [ 1 . , 0 ] , [ 0 , 1 . ] ]
x = np . random . m u l t i v a r i a t e _ n o r m a l ( ( 0 , 0 ) , cov , 4 0 0 )
y = np . random . m u l t i v a r i a t e _ n o r m a l ( ( 1 , 1 ) , [ [ 1 . , 0 ] , [ 0 , 1 . ] ] , 4 0 0 )
mod = DT. K e r n e l C h a n g e D e t e c t i o n ( nu = 0 . 1 , k e r n e l = ’ r b f ’ , gamma = 0 . 0 7 )
c l f 1 , c l f 2 = mod . TrainingOfData ( x , y )
print ( " diss
: {} " . format (mod . D i s s i m i l a r i t y M e a s u r e ( c l f 1 , c l f 2 ) ) )
xx , yy = np . meshgrid ( np . l i n s p a c e ( −8 , 8 ,10 0) , np . l i n s p a c e ( −8 , 8 ,10 0) )
z z = mod . ComputeDecisionFunction ( xx , yy , c l f 1 )
s s = mod . ComputeDecisionFunction ( xx , yy , c l f 2 )
p l t . c o n t o u r ( xx , yy , zz , l e v e l s = [ 0 ] , l i n e w i d t h s =1, c o l o r s= ’ g r e e n ’ )
p l t . c o n t o u r ( xx , yy , s s , l e v e l s = [ 0 ] , l i n e w i d t h s =1, c o l o r s= ’ g o l d ’ )
p l t . s c a t t e r ( x [ : , 0 ] , x [ : , 1 ] , c= ’ b l a c k ’ , l a b e l = ’ normal 0 , 1 ’ )
p l t . s c a t t e r ( y [ : , 0 ] , y [ : , 1 ] , c= ’ b l u e v i o l e t ’ , l a b e l = ’ normal 1 , 1 ’ )
plt . legend ()
p l t . show ( )
43
Figure 1 – Exemple d’utilisation, les points noirs sont tirés d’une distribution normale
centrée et réduite, les points violets quant à eux sont d’une distribution normale de
moyenne (1,1) mais de même variance. La mesure calculée est affichée en bas du graphe.
Maximum mean discrepancy :
maximun_mean_discrepency ( s e l f , gamma , b l o c k _ s i z e , n_block = 1 )
Cette classe implémente deux approche basées sur le MMD : l’approche présentée
dans ce rapport qui s’adapte mieux à notre cas et une stratégie de détection, basée sur
cette dernière, présentée dans le document [9].
— gamma désigne le paramètre de la fonction noyau utilisée en l’occurrence ici il
s’agit du noyau gaussien.
— block_size désigne la taille de la fenêtre à chaque itération (N colonnes).
— n_block représente le nombre de fenêtre à chaque itération, est fixé à 1 pour
l’approche présentée dans ce rapport.
—
44
mmd_estimator ( s e l f , X, Y) :
prend en entrée X et Y de taille block_size et retourne leur MMD.
import D e t e c t i o n T o o l s K i t a s DT
mod = DT. maximun_mean_discrepency (gamma=1, b l o c k _ s i z e =5, n_block =1)
x = np . a r r a y ( [ 1 , 2 , 3 , 5 , 4 , 6 , 8 ] )
y = np . a r a n g e ( 7 )
p r i n t (mod . mmd_estimator ( x , y ) )
45
Bibliographie
[1] Bernhard Schökopf and Aexander J. Smola, 2001, Leaning with Kernels, Cambridge,
Massachusetts. The MIT Press.
[2] Desobry, F., Davy, M., Doncarli, C., 2005. An online kernel change detection algorithm.
IEEE Trans. Signal Process. 53 (5), 2961– 2974.
[3] Xiao, Y., Wang, H. ,Zhang, L. ,Xu, W., 2014, Two methods of Gaussian kernel
parameters for one class svm and their application to fault detection. ScienceDirect
Knowledge-Based Systems, 59, 75 - 84
[4] Wang, S., Liu, Q., Zhu, E., Porikli, F. and Yin, J., 2018 Hyperparameter selection of
one class support vector machine by self-adaptive data shifting. ScienceDirect Pattern
Recognition, 74, 198 - 211.
[5] Arthur Gretton, Karsten M. Borgwardt, Malte J. Rasch, Bernhard Schölkopf, Alexander Smola, 2012, A Kernel Two-Sample Test. Journal of Machine Learning Research,
13 (Mar), 723 - 773.
[6] Harchaoui, Z., Lévy-Leduc, C., 2007, Seqmentation temporelle de signaux à l’aide
du Lasso. GRETSI, Groupe d’Etudes du Traitement du Signal et des Images,
http ://hdl.handle.net/2042/17527.
[7] Carmeli, C., De Vito, E.,Toigo, A., Umanita, V., 2018, Vector valued reproducing
kernel Hilbertspaces and universality. https ://arxiv.org/pdf/0807.1659t.
[8] Truong, C., Oudre, L., Vayatis, N., 2019, Selective review of offline change point
detection methods.ScienceDirect Signal Processing, 167, 107299.
[9] Li, S., Xie, Y., Dai, H., Song, L., 2018, ScanB-Statistic for Kernel Change-Point
Detection. https ://arxiv.org/abs/1507.01279
46
Téléchargement