Brevet FR3112000A1 — publié le 20211231

PROCEDE D’APPRENTISSAGE POUR LA DETECTION D’ANOMALIES A PARTIR DE JEUX DE DONNEES MULTIVARIABLES ET PROCEDE DE DETECTION D’ANOMALIES ASSOCIE Un aspect de l’invention concerne un procédé d’apprentissage pour la détection d’anomalies sur microcontrôleur comportant une mémoire stockant un nombre prédéfini de catégories et recevant des jeux de données multivariables d’un capteur, comportant les étapes suivantes : Calcul d’une moyenne et d’une matrice de covariance pour un ensemble de jeux de données ; Tant que la matrice de covariance est mal conditionnée : Ajout d’un jeu de données dans l’ensemble et mise à jour de la moyenne et de la matrice de covariance ; Création d’une catégorie associée à la moyenne et à la matrice de covariance dans la mémoire ; Pour chaque catégorie, calcul d’une mesure de distance entre la catégorie et chaque autre catégorie ; Sélection des catégories correspondant à la première mesure de distance minimale et fusion des deux catégories sélectionnées. Figure à publier avec l’abrégé : Figure 1 PROCEDE D’APPRENTISSAGE POUR LA DETECTION D’ANOMALIES A PARTIR DE JEUX DE DONNEES MULTIVARIABLES ET PROCEDE DE DETECTION D’ANOMALIES ASSOCIE DOMAINE TECHNIQUE DE L’INVENTION Le domaine technique de l’invention est celui des procédés de détection d’anomalies et plus particulièrement celui des procédés de détection d’anomalies à partir de jeux de données multivariables, implémentés sur un microcontrôleur. La présente invention concerne un procédé d’apprentissage pour la détection d’anomalies et en particulier un procédé d’apprentissage incrémental pour la détection d’anomalies à partir de jeux de données multivariables, implémenté sur un microcontrôleur. La présente invention concerne également un procédé de détection d’anomalies, un microcontrôleur implémentant le procédé d’apprentissage et/ou le procédé de détection, un dispositif embarquant le microcontrôleur et un produit-programme d’ordinateur. ARRIERE-PLAN TECHNOLOGIQUE DE L’INVENTION Pour détecter des anomalies dans un système monitoré à partir de plusieurs variables via au moins un capteur, par exemple par la température, la pression et l’humidité, il est connu d’utiliser des techniques, par exemple basées sur des réseaux de neurones, permettant d’obtenir des taux de détection élevés. De telles techniques nécessitent souvent l’utilisation de processeurs puissants et d’une quantité importante de ressources mémoire pour être fonctionnelles. Ainsi, ces techniques sont incompatibles avec une implémentation sur microcontrôleur contraint en termes de ressources mémoire mais ayant un haut degré d’intégration grâce à ses dimensions réduites. Il existe donc un besoin de concevoir un algorithme de détection d’anomalies à partir de données multivariables, permettant d’obtenir des performances comparables à celles obtenues avec les autres techniques connues de détection d’anomalies, implémenté sur un microcontrôleur pouvant être embarqué sur n’importe quel dispositif quel que soit son environnement. L’invention offre une solution aux problèmes évoqués précédemment, en permettant de détecter des anomalies à partir de données multivariables grâce à un algorithme implémenté sur un microcontrôleur ayant une haute capacité d’intégration. Un premier aspect de l’invention concerne un procédé d’apprentissage incrémental pour la détection d’anomalies implémenté sur un microcontrôleur comportant au moins une mémoire, le microcontrôleur étant configuré pour recevoir des jeux de données multivariables en provenance d’au moins un capteur, la mémoire étant configurée pour stocker un nombre prédéfini de catégories, une catégorie étant associée à une moyenne et à une matrice de covariance, le procédé comportant les étapes suivantes : Initialisation comportant au moins une sous-étape de création d’une catégorie et de stockage de la catégorie dans la mémoire, de manière que le nombre de catégories créées soit strictement inférieur au nombre prédéfini de catégories ; Pour au moins un ensemble de jeux de données d’apprentissage : Calcul d’une moyenne et d’une matrice de covariance pour l’ensemble de jeux de données d’apprentissage ; Tant qu’une condition selon laquelle la matrice de covariance de l’ensemble de jeux de données d’apprentissage est mal conditionnée est vérifiée, la condition dépendant d’une factorisation LU de la matrice de covariance : Ajout d’un jeu de données dans l’ensemble de jeux de données d’apprentissage et mise à jour de la moyenne et de la matrice de covariance de l’ensemble de jeux de données d’apprentissage ; Création d’une catégorie associée à la moyenne et à la matrice de covariance de l’ensemble de jeux de données d’apprentissage et stockage de la catégorie dans la mémoire ; Pour chaque catégorie stockée dans la mémoire, calcul d’une première mesure de distance entre la catégorie et chaque autre catégorie stockée dans la mémoire à partir des moyennes et matrices de covariance associées ; Sélection des deux catégories correspondant à la première mesure de distance minimale et création d’une unique catégorie par fusion des deux catégories sélectionnées. Grâce à l’invention, une catégorie est créée pour un ensemble de jeux de données d’apprentissage de manière à éviter la création de catégories n’apportant pas de nouvelles informations par rapport aux catégories existantes. Le test de l’obtention d’une matrice de covariance bien conditionnée est réalisé sans calculer la décomposition en valeurs singulières, méthode classiquement utilisée pour tester le bon conditionnement d’une matrice, car cela nécessiterait une quantité importante de calculs incompatible avec les capacités de calcul réduites d’un microcontrôleur. Le test du bon conditionnement de la matrice de covariance est réalisé en utilisant une adaptation de la factorisation LU de cette matrice qui nécessite beaucoup moins de calcul. Pour ne pas dépasser le nombre prédéfini de catégories allouées dans la mémoire du microcontrôleur, dès qu’une nouvelle catégorie est créée dans la mémoire, chaque catégorie est comparée aux autres catégories à l’aide d’une mesure de distance. Les deux catégories les plus proches, c’est-à-dire ayant la mesure de distance la plus faible, sont ensuite fusionnées en une unique catégorie pour libérer de la place dans la mémoire et pouvoir créer de nouvelles catégories plus représentatives des autres jeux de données. Outre les caractéristiques qui viennent d’être évoquées dans le paragraphe précédent, le procédé selon le premier aspect de l’invention peut présenter une ou plusieurs caractéristiques complémentaires parmi les suivantes, considérées individuellement ou selon toutes les combinaisons techniquement possibles. Selon une variante de réalisation, l’étape d’initialisation comporte les sous-étapes suivantes : Tant qu’une condition selon laquelle le nombre de catégories stockées dans la mémoire est strictement inférieur au nombre prédéfini de catégories est vérifiée : Pour un ensemble de jeux de données d’initialisation : Calcul d’une moyenne et d’une matrice de covariance pour l’ensemble de jeux de données d’initialisation ; Tant que la condition selon laquelle la matrice de covariance de l’ensemble de jeux de données d’initialisation est mal conditionnée est vérifiée : Ajout d’un jeu de données dans l’ensemble de jeux de données d’initialisation et mise à jour de la moyenne et de la matrice de covariance de l’ensemble de jeux de données d’initialisation ; Création d’une catégorie associée à la moyenne et à la matrice de covariance de l’ensemble de jeux de données d’initialisation et stockage de la catégorie dans la mémoire. Ainsi, des catégories sont créées tant que le nombre prédéfini de catégories moins un n’est pas atteint, ce qui permet de comparer une nouvelle catégorie créée pendant l’apprentissage avec un maximum d’autres catégories. Selon une variante de réalisation compatible avec les variantes de réalisation précédentes, la première mesure de distance est la distance de Bhattacharyya. Un deuxième aspect de l’invention concerne un procédé de détection d’anomalies implémenté sur un microcontrôleur comportant au moins une mémoire, le microcontrôleur étant configuré pour recevoir des jeux de données multivariables en provenance d’au moins un capteur, la mémoire étant configurée pour stocker un nombre prédéfini de catégories, une catégorie étant associée à une moyenne et à une matrice de covariance, le procédé comportant les étapes du procédé d’apprentissage selon le premier aspect de l’invention suivies des étapes suivantes : Pour chaque jeu de données reçu : Stockage du jeu de données dans la mémoire ; Pour chaque catégorie stockée dans la mémoire, calcul d’une deuxième mesure de distance entre le jeu de données et la catégorie, et sélection de la deuxième mesure de distance minimale ; Si une condition selon laquelle la deuxième mesure de distance minimale est supérieure à un seuil de distance est vérifiée, détection d’une anomalie ; Suppression du jeu de données de la mémoire. Ainsi, le procédé de détection d’anomalies selon le deuxième aspect de l’invention utilise les catégories créées lors du procédé d’apprentissage selon le premier aspect de l’invention pour détecter efficacement les anomalies en mesurant la distance entre le jeu de données et chaque catégorie stockée dans la mémoire. Le jeu de données est considéré comme anormal s’il est trop éloigné des catégories stockées dans la mémoire. Selon une variante de réalisation, la deuxième mesure de distance est la distance de Mahalanobis. Selon une variante de réalisation compatible avec la variante de réalisation précédente, le seuil de distance est obtenu à partir de la distribution du χ² (« khi carrée »). Selon une variante de réalisation compatible avec les variantes de réalisation précédentes, le seuil de distance est pondéré par un facteur de sensibilité. Ainsi, il est possible de régler la sensibilité du procédé aux jeux de données anormaux. Un troisième aspect de l’invention concerne un calculateur configuré pour mettre en œuvre les étapes du procédé d’apprentissage selon le premier aspect de l’invention et/ou les étapes du procédé de détection d’anomalies selon le deuxième aspect de l’invention, comportant un processeur et une mémoire et recevant des jeux de données multivariables en provenance d’au moins un capteur. Selon une variante de réalisation, le calculateur selon l’invention est un microcontrôleur. Un quatrième aspect de l’invention concerne un dispositif embarquant un microcontrôleur selon un troisième aspect de l’invention. Un cinquième aspect de l’invention concerne un produit-programme d’ordinateur comprenant des instructions qui, lorsque le programme est exécuté par un ordinateur, conduisent celui-ci à mettre en œuvre les étapes du procédé d’apprentissage selon le premier aspect de l’invention et/ou les étapes du procédé de détection d’anomalies selon le deuxième aspect de l’invention. L’invention et ses différentes applications seront mieux comprises à la lecture de la description qui suit et à l’examen des figures qui l’accompagnent. BREVE DESCRIPTION DES FIGURES Les figures sont présentées à titre indicatif et nullement limitatif de l’invention. La figure 1 est un schéma synoptique illustrant l’enchaînement des étapes d’un procédé d’apprentissage selon l’invention. La figure 2 est un schéma synoptique illustrant un premier exemple de réalisation d’une étape d’initialisation du procédé d’apprentissage selon l’invention. La figure 3 est un schéma synoptique illustrant l’enchaînement des étapes d’un procédé de détection d’anomalies selon l’invention. La figure 4 est une représentation schématique d’un dispositif embarquant un microcontrôleur selon l’invention. DESCRIPTION DETAILLEE Sauf précision contraire, un même élément apparaissant sur des figures différentes présente une référence unique. Un premier aspect de l’invention concerne un procédé d’apprentissage incrémental pour la détection d’anomalies. On entend par « apprentissage incrémental », un apprentissage réalisé à partir de données reçues au fur et à mesure du temps. Un deuxième aspect de l’invention concerne un procédé de détection d’anomalies, comportant le procédé d’apprentissage selon le premier aspect de l’invention. Le procédé d’apprentissage selon le premier aspect de l’invention et le procédé de détection d‘anomalies selon le deuxième aspect de l’invention sont chacun réalisés à partir de jeux de données multivariables. Un jeu de données multivariable est un jeu de données comportant plusieurs variables, c’est-à-dire plusieurs types de données ou un seul type de données ayant une dimension multiple. Une variable est par exemple une mesure de pression, une mesure de température, une mesure de vibration ou encore une mesure d’humidité. Un jeu de données multivariable peut alors comporter par exemple une mesure de pression, une mesure de température, et une mesure d’humidité. Le jeu de données multivariable comporte alors trois variables. On entend par « détection d’anomalies », l’identification de jeux de données particuliers qui diffèrent de manière significative des jeux de données traités en phase d’apprentissage. La détection d’anomalies est par exemple utilisée pour la supervision de machines industrielles dans le cadre de la maintenance prédictive, pour la détection de surconsommations énergétiques dans un foyer ou encore pour détecter un intrus dans une pièce. Le procédé d’apprentissage selon le premier aspect de l’invention et le procédé de détection d‘anomalies selon le deuxième aspect de l’invention sont chacun implémentés sur un microcontrôleur recevant les jeux de données multivariables d’au moins un capteur. Un troisième aspect de l’invention concerne un microcontrôleur configuré pour implémenter le procédé d’apprentissage selon le premier aspect de l’invention et/ou le procédé de détection selon le deuxième aspect de l’invention. Ainsi, un même microcontrôleur peut être utilisé pour implémenter le procédé d’apprentissage selon le premier aspect de l’invention et le procédé de détection selon le deuxième aspect de l’invention. La montre une représentation schématique d’un microcontrôleur 200 selon le troisième aspect de l’invention. Le microcontrôleur 200 est un circuit intégré comportant au moins un microprocesseur 202 et au moins une mémoire 201. Sur la , le microcontrôleur 200 comporte une unique mémoire 201 et un unique microprocesseur 202. Le microprocesseur 202 a par exemple une fréquence supérieure à 2 MHz. Le microprocesseur 202 est par exemple un microprocesseur de 50 MHz. La mémoire 201 a par exemple une mémoire vive d’au moins 2 kilooctets. La mémoire 201 a par exemple une mémoire vive de 4 kilooctets. On fait l’hypothèse qu’une catégorie suit une distribution gaussienne que l’on peut associer à une moyenne et une matrice de covariance. Le microcontrôleur 200 reçoit les jeux de données multivariables permettant la mise en œuvre du procédé d’apprentissage selon le premier aspect de l’invention et/ou du procédé de détection selon le deuxième aspect de l’invention, d’au moins un capteur 203. Comme les jeux de données sont multivariables, si le microcontrôleur 200 reçoit les jeux de données multivariables d’un unique capteur 203, le capteur 203 est alors capable d‘acquérir des données de différents types. En reprenant l’exemple précédent du jeu de données multivariable comportant trois variables, l’unique capteur 203 est alors capable de réaliser des mesures de pression, des mesures de température, et des mesures d’humidité. Le microcontrôleur peut également recevoir les jeux de données multivariables d’une pluralité de capteurs 203. Chaque capteur 203 peut être capable d’acquérir des données d’un unique type ou de différents types. Sur la , le microcontrôleur reçoit les jeux de données multivariables de trois capteurs 203. En reprenant l’exemple précédent du jeu de données multivariable comportant trois variables, un premier capteur 203 est par exemple capable de réaliser des mesures de pression, un deuxième capteur 203 des mesures de température, et un troisième capteur 203 des mesures d’humidité. Un capteur 203 est par exemple un accéléromètre ayant une fréquence d’échantillonnage donnée et un nombre d’axes qui est par exemple égal à 3. Une mesure comporte alors 3 valeurs, chacune correspond à un axe. Un capteur 203 est par exemple un thermomètre délivrant des mesures de température. Un capteur 203 est par exemple un baromètre délivrant des mesures de pression. Un capteur 203 est par exemple une caméra thermique. Une mesure est par exemple une matrice 8x8 de pixels. Selon un premier mode de réalisation, chaque capteur 203 est connecté au microcontrôleur 200 via un bus de données série, par exemple un bus de données série I2C, SPI, CAN ou UART. Selon un deuxième mode de réalisation, le microcontrôleur 200 reçoit par exemple les jeux de données multivariables de chaque capteur 203 via une connexion filaire, par exemple une liaison Ethernet, ou une connexion sans fil, par exemple une connexion Bluetooth ou Wifi. Sur la , le microcontrôleur 200 est embarqué sur un dispositif 300. Sur la , les capteurs 203 sont également embarqués sur le dispositif 300. Dans ce cas, le dispositif 300 peut être le dispositif pour lequel on veut réaliser la détection d’anomalies. La est un schéma synoptique illustrant l’enchaînement des étapes du procédé 11 d’apprentissage selon le premier aspect de l’invention. Le procédé 11 d’apprentissage est un procédé d’apprentissage incrémental non supervisé réalisé sur les jeux de données multivariables fournis par le ou les capteur(s) 203. On entend par « apprentissage non supervisé », un apprentissage automatique réalisé avec des données non étiquetées, c’est-à-dire des données brutes telles que fournies par le ou les capteur(s) 203. Le procédé 11 d’apprentissage comporte une première étape 111 d’initialisation pendant laquelle au moins une catégorie est créée puis stockée dans la mémoire 201 du microcontrôleur. Lors de la première étape 111, le nombre de catégories créées est strictement inférieur à un nombre prédéfini de catégories, c’est-à-dire inférieur ou égal au nombre prédéfini de catégories moins un. Le nombre prédéfini de catégories est choisie de manière que les capacités de stockage de la mémoire 201 lui permettent de stocker au moins un nombre de catégories égal au nombre prédéfini de catégories. Par exemple, si la mémoire 201 a une mémoire vive de 4 kilooctets lui permettant par exemple de stocker 10 catégories au maximum, le nombre prédéfini de catégories est inférieur ou égal à 10. La est un schéma synoptique illustrant un premier exemple de réalisation de la première étape 111 d’initialisation du procédé 11 d’apprentissage. La première étape 111 illustrée sur la est réalisée tant qu’une condition CN est vérifiée. La condition CN est vérifiée si le nombre de catégories stockées dans la mémoire 201 du microcontrôleur 200 est strictement inférieur au nombre prédéfini de catégories. Par exemple, si le nombre prédéfini de catégories vaut 22, la première étape 111 est réalisée tant que 21 catégories ne sont pas stockées dans la mémoire 201. Si la condition CN n’est pas ou plus vérifiée, la première étape 111 est terminée et l’on passe à une deuxième étape 112 du procédé 11 d’apprentissage. Les sous-étapes de la première étape 111 sont réalisées pour au moins un ensemble de jeux de données multivariables appelé par la suite ensemble de jeux de données d’initialisation. Une première sous-étape 1111 de la première étape 111 consiste à calculer une moyenne et une matrice de covariance pour l’ensemble de jeux de données d’initialisation. Considérons un jeu de données i comportant p variables. Un tel jeu de données i peut être modélisé par un vecteur tel que : Considérons qu’un ensemble de jeux de données comporte n jeux de données et donc n x p variables. L’ensemble de jeux de données peut alors être modélisé par un vecteur tel que : La moyenne m de l’ensemble de jeux de données d’initialisation se calcule alors comme : Pour ne pas avoir besoin de mémoriser tous les jeux de données, la moyenne peut être calculée de manière incrémentale, c’est-à-dire : La matrice de covariance Cov de l’ensemble de jeux de données d’initialisation se calcule alors comme : Avec Cov(Y, Z), la covariance entre une variable Y et une variable Z s’exprimant comme : Pour ne pas avoir besoin de mémoriser tous les jeux de données, la matrice de covariance peut être calculée de manière incrémentale : La matrice de covariance Cov telle que définie est une matrice carrée. Si l’on considère un exemple simple dans lequel chaque jeu de données comporte deux variables et que l’ensemble de jeux de données comporte trois jeux de données, on obtient : Une deuxième sous-étape 1112 de la première étape 111 est réalisée si une condition CS est vérifiée pour la matrice de covariance de l’ensemble de jeux de données d’initialisation. La condition CS pour un ensemble donné est vérifiée si la matrice de covariance de l’ensemble donné est mal conditionnée. On considère par exemple que la condition CS n’est pas vérifiée si la factorisation LU de la matrice de covariance satisfait certaines conditions sur les éléments diagonaux, par exemple si le rapport entre l’élément diagonal minimal et l’élément diagonal maximal est supérieur à un seuil. La décomposition LU de la matrice de covariance Cov peut s’écrire : Avec L une matrice triangulaire inférieure et U une matrice triangulaire supérieure. Le seuil est par exemple compris entre 0.0001 et 0.1. Une matrice carrée est mal conditionnée si sa matrice inverse est sensible aux légères modifications de ses éléments. Ainsi, si la condition CS n’est pas vérifiée pour l’ensemble de jeux de données d’initialisation initial, c’est-à-dire si la matrice de covariance calculée pour l’ensemble de jeux de données d’initialisation initial est bien conditionnée, la deuxième sous-étape 1112 n’est pas réalisée et l’on passe à une troisième sous-étape 1113 de la première étape 111. La deuxième sous-étape 1112 consiste à ajouter un jeu de données dans l’ensemble de jeux de données d’initialisation puis à mettre à jour la moyenne et la matrice de covariance de l’ensemble de jeux de données d’initialisation, c’est-à-dire à recalculer la moyenne et la matrice de covariance pour l’ensemble de jeux de données d’initialisation auquel a été ajouté le jeu de données. Si à la suite de la deuxième sous-étape 1112, la condition CS est toujours vérifiée, on réalise à nouveau la deuxième sous-étape 1112 et ainsi de suite jusqu’à ce que la condition CS ne soit plus vérifiée. Dès que la condition CS n’est plus vérifiée pour l’ensemble de jeux de données d’initialisation auquel a été ajouté au moins un nouveau jeu de données, on passe à la troisième sous-étape 1113. La troisième sous-étape 1113 consiste à créer une catégorie associée à la moyenne et à la matrice de covariance de l’ensemble de jeux de données d’initialisation puis à stocker la catégorie créée dans la mémoire 201 du microcontrôleur 200. La matrice de covariance associée à la catégorie est la matrice de covariance pour laquelle la condition CS n’a pas été vérifiée, c’est-à-dire une matrice de covariance bien conditionnée. La matrice de covariance associée à la catégorie peut être la matrice de covariance calculée pour l’ensemble de jeux de données d’initialisation initial ou pour l’ensemble de jeux de données d’initialisation initial auquel a été ajouté un ou plusieurs jeu(x) de données lors de la deuxième sous-étape 1112. Les sous-étapes de la première étape 111 sont réalisées tant que la condition CN est vérifiée, c’est-à-dire tant qu’il y a un nombre de catégories stockées dans la mémoire 201 strictement inférieur au nombre prédéfini de catégories. Selon un deuxième exemple de réalisation, la première étape 111 d’initialisation peut consister à créer un nombre de catégories strictement inférieur au nombre prédéfini de catégories, en associant une moyenne et une matrice de covariance aléatoires ou prédéterminées à chaque catégorie. Les étapes suivantes du procédé 11 d’apprentissage sont réalisées pour au moins un ensemble de jeux de données multivariables appelé par la suite ensemble de jeux de données d’apprentissage. Une deuxième étape 112 du procédé 11 d’apprentissage consiste à calculer une moyenne et une matrice de covariance pour l’ensemble de jeux de données d’apprentissage. Une troisième étape 113 du procédé 11 d’apprentissage est réalisée si la condition CS est vérifiée pour l’ensemble de jeux de données d’apprentissage, c’est-à-dire si la matrice de covariance associée à l’ensemble de jeux de données d’apprentissage est mal conditionnée. Si la condition CS n’est pas vérifiée pour l’ensemble de jeux de données d’apprentissage initial, c’est-à-dire si la matrice de covariance associée à l’ensemble de jeux de données d’apprentissage est bien conditionnée, la troisième étape 113 n’est pas réalisée et l’on passe à une quatrième étape 114 du procédé 11 d’apprentissage. La troisième étape 113 consiste à ajouter un jeu de données dans l’ensemble de jeux de données d’apprentissage puis à mettre à jour la moyenne et la matrice de covariance de l’ensemble de jeux de données d’apprentissage, c’est-à-dire à recalculer la moyenne et la matrice de covariance pour l’ensemble de jeux de données d’apprentissage auquel a été ajouté le jeu de données. Si à la suite de la troisième étape 113, la condition CS est toujours vérifiée, on réalise à nouveau la troisième étape 113 et ainsi de suite jusqu’à ce que la condition CS ne soit plus vérifiée. Dès que la condition CS n’est plus vérifiée pour l’ensemble de jeux de données d’apprentissage auquel a été ajouté au moins un nouveau jeu de données, on passe à la quatrième étape 114. La quatrième étape 114 consiste à créer une catégorie associée à la moyenne et à la matrice de covariance de l’ensemble de jeux de données d’apprentissage puis à stocker la catégorie créée dans la mémoire 201. La matrice de covariance associée à la catégorie est la matrice de covariance pour laquelle la condition CS n’a pas été vérifiée, c’est-à-dire une matrice de covariance bien conditionnée. La matrice de covariance associée à la catégorie peut être la matrice de covariance calculée pour l’ensemble de jeux de données d’apprentissage initial ou pour l’ensemble de jeux de données d’apprentissage initial auquel a été ajouté un ou plusieurs jeu(x) de données lors de la troisième étape 113. Une cinquième étape 115 consiste ensuite à calculer, pour chaque catégorie stockée dans la mémoire 201, une première mesure de distance entre la catégorie et chaque autre catégorie stockée dans la mémoire 201. Par exemple, si une première catégorie, une deuxième catégorie et une troisième catégorie sont stockées dans la mémoire 201, la cinquième étape 115 consiste à calculer une première mesure de distance entre la première catégorie et la deuxième catégorie, une première mesure de distance entre la première catégorie et la troisième catégorie et une première mesure de distance entre la deuxième catégorie et la troisième catégorie. La première mesure de distance entre une première catégorie associée à une moyenne m 1 et à une matrice de covariance M 1 et une deuxième catégorie associée à une moyenne m 2 et à une matrice de covariance M 2 est par exemple la distance de Bhattacharyya D B se définissant comme : Avec : A T la transposée de la matrice A, A -1 l’inverse de la matrice A, det A le déterminant de la matrice A, ln l’opérateur logarithme népérien et M la matrice se définissant comme : Une sixième étape 116 consiste ensuite à sélectionner les deux catégories pour lesquelles la première mesure de distance minimale a été calculée à la cinquième étape 115, c’est-à-dire la première mesure de distance ayant la valeur la plus faible parmi l’ensemble des premières mesures de distance calculées à la cinquième étape 115, puis à fusionner les deux catégories sélectionnées pour créer une unique catégorie. Pour fusionner une première catégorie associée à n 1 jeux de données, une moyenne m 1 et à une matrice de covariance M 1 et une deuxième catégorie associée à n 2 jeux de données, une moyenne m 2 et à une matrice de covariance M 2 , on crée par exemple une catégorie associée à n jeux de données, une moyenne m et une matrice de covariance M telles que : Les deux catégories fusionnées à la sixième étape 116 peuvent être la catégorie créée à la quatrième étape 114 et une autre catégorie stockée dans la mémoire 201 ou deux catégories stockées dans la mémoire 201 différente de la catégorie créée à la quatrième étape 114. La est un schéma synoptique illustrant l’enchaînement des étapes du procédé 10 de détection d’anomalies selon le deuxième aspect de l’invention. Une fois le procédé 11 d’apprentissage réalisé, les étapes du procédé 10 de détection d’anomalies selon le deuxième aspect de l’invention sont réalisées pour chaque jeu de données reçu par le ou les capteur(s) 203. Sur la , le procédé 11 d’apprentissage est considéré comme une première étape 11 du procédé 10 de détection d‘anomalies. Une deuxième étape 12 du procédé 10 de détection d’anomalies consiste à stocker le jeu de données reçu dans la mémoire 201 du microcontrôleur 200. Une troisième étape 13 du procédé 10 de détection d’anomalies consiste à calculer, pour chaque catégorie stockée dans la mémoire 201, une deuxième mesure de distance entre le jeu de données et la catégorie. Par exemple, si une première catégorie, une deuxième catégorie et une troisième catégorie sont stockées dans la mémoire 201, la troisième étape 13 consiste à calculer une deuxième mesure de distance entre le jeu de données et la première catégorie, une deuxième mesure de distance entre le jeu de données et la deuxième catégorie et une deuxième mesure de distance entre le jeu de données et la troisième catégorie. La deuxième mesure de distance entre un jeu de données modélisé par un vecteur X et une catégorie associée à une moyenne m et à une matrice de covariance M est par exemple la distance de Mahalanobis D M se définissant comme : La troisième étape 13 consiste ensuite à sélectionner la deuxième mesure de distance minimale, c’est-à-dire la deuxième mesure de distance ayant la valeur la plus faible parmi l’ensemble des deuxièmes mesures de distance calculées à la troisième étape 13. Une quatrième étape 14 du procédé 10 de détection d’anomalies est réalisée si une condition CP est vérifiée. La condition CP est vérifiée si la deuxième mesure de distance minimale est supérieure à un seuil de distance. Si la condition CP n’est pas vérifiée, c’est-à-dire si la deuxième mesure de distance minimale est inférieure au seuil de distance, la quatrième étape 14 n’est pas réalisée et l’on passe directement à une cinquième étape 15. Le seuil de distance est par exemple obtenu à partir de la distribution du χ² (« khi carrée ») en choisissant comme degré de liberté le nombre de variables dans le jeu de données. Le seuil de distance est par exemple pondéré par un facteur de sensibilité. Le facteur de sensibilité est par exemple compris entre 0.5 et 1.5. Par défaut, le facteur de sensibilité est fixé à 1. La quatrième étape 14 consiste à détecter une anomalie. La quatrième étape 14 peut par exemple consister dans le déclenchement d’une alarme ou dans l’envoi d’un message d’alerte à un équipement donné. La cinquième étape 15 du procédé 10 de détection d’anomalies consiste à supprimer le jeu de données reçu de la mémoire 201 du microcontrôleur 200. Procédé (11) d’apprentissage incrémental pour la détection d’anomalies implémenté sur un microcontrôleur (200) comportant au moins une mémoire (201), le microcontrôleur (200) étant configuré pour recevoir des jeux de données multivariables en provenance d’au moins un capteur (203), la mémoire (201) étant configurée pour stocker un nombre prédéfini de catégories, une catégorie étant associée à une moyenne et à une matrice de covariance, le procédé (11) étant caractérisé en ce qu’il comporte les étapes suivantes : Initialisation comportant au moins une sous-étape de création d’une catégorie et de stockage de la catégorie dans la mémoire (201), de manière que le nombre de catégories créées soit strictement inférieur au nombre prédéfini de catégories (111) ; Pour au moins un ensemble de jeux de données d’apprentissage : Calcul d’une moyenne et d’une matrice de covariance pour l’ensemble de jeux de données d’apprentissage (112) ; Tant qu’une condition (CS) selon laquelle la matrice de covariance de l’ensemble de jeux de données d’apprentissage est mal conditionnée est vérifiée, la condition (CS) dépendant d’une factorisation LU de la matrice de covariance : Ajout d’un jeu de données dans l’ensemble de jeux de données d’apprentissage et mise à jour de la moyenne et de la matrice de covariance de l’ensemble de jeux de données d’apprentissage (113) ; Création d’une catégorie associée à la moyenne et à la matrice de covariance de l’ensemble de jeux de données d’apprentissage et stockage de la catégorie dans la mémoire (201, 114) ; Pour chaque catégorie stockée dans la mémoire (201), calcul d’une première mesure de distance entre la catégorie et chaque autre catégorie stockée dans la mémoire (201) à partir des moyennes et matrices de covariance associées (115) ; Sélection des deux catégories correspondant à la première mesure de distance minimale et création d’une unique catégorie par fusion des deux catégories sélectionnées (116). Procédé (11) d’apprentissage selon la revendication 1, caractérisé en ce que l’étape (111) d’initialisation comporte les sous-étapes suivantes : Tant qu’une condition (CN) selon laquelle le nombre de catégories stockées dans la mémoire est strictement inférieur au nombre prédéfini de catégories est vérifiée : Pour un ensemble de jeux de données d’initialisation : Calcul d’une moyenne et d’une matrice de covariance pour l’ensemble de jeux de données d’initialisation (1111) ; Tant que la condition (CS) selon laquelle la matrice de covariance de l’ensemble de jeux de données d’initialisation est mal conditionnée est vérifiée : Ajout d’un jeu de données dans l’ensemble de jeux de données d’initialisation et mise à jour de la moyenne et de la matrice de covariance de l’ensemble de jeux de données d’initialisation (1112) ; Création d’une catégorie associée à la moyenne et à la matrice de covariance de l’ensemble de jeux de données d’initialisation et stockage de la catégorie dans la mémoire (201, 1113). Procédé (11) d’apprentissage selon l’une quelconque des revendications précédentes, caractérisé en en ce que la première mesure de distance est la distance de Bhattacharyya. Procédé (10) de détection d’anomalies implémenté sur un microcontrôleur (200) comportant au moins une mémoire (201), le microcontrôleur (200) étant configuré pour recevoir des jeux de données multivariables en provenance d’au moins un capteur (203), la mémoire (201) étant configurée pour stocker un nombre prédéfini de catégories, une catégorie étant associée à une moyenne et à une matrice de covariance, le procédé (10) étant caractérisé en ce qu’il comporte les étapes du procédé (11) d’apprentissage selon l’une quelconque des revendications précédentes suivies des étapes suivantes : Pour chaque jeu de données reçu : Stockage du jeu de données dans la mémoire (201, 12) ; Pour chaque catégorie stockée dans la mémoire (201), calcul d’une deuxième mesure de distance entre le jeu de données et la catégorie, et sélection de la deuxième mesure de distance minimale (13) ; Si une condition (CP) selon laquelle la deuxième mesure de distance minimale est supérieure à un seuil de distance est vérifiée, détection d’une anomalie (14) ; Suppression du jeu de données de la mémoire (201, 15). Procédé (10) de détection d’anomalies selon la revendication 4, caractérisé en ce que la deuxième mesure de distance est la distance de Mahalanobis. Procédé (10) de détection d’anomalies l’une quelconque des revendications 4 ou 5, caractérisé en ce que le seuil de distance est obtenu à partir de la distribution du χ² (« khi carrée »). Procédé (10) de détection d’anomalies l’une quelconque des revendications 4 à 6, caractérisé en ce que le seuil de distance est pondéré par un facteur de sensibilité. Calculateur configuré pour mettre en œuvre les étapes du procédé (11) d’apprentissage selon l’une quelconque des revendications 1 à 3 et/ou les étapes du procédé (10) de détection d’anomalies selon l’une quelconque des revendications 4 à 7, caractérisé en ce qu’il comporte un processeur (202) et une mémoire (201) et qu’il reçoit des jeux de données multivariables en provenance d’au moins un capteur (203). Calculateur selon la revendication 8, caractérisé en ce qu’il est un microcontrôleur (200). Dispositif (300) embarquant un calculateur selon la revendication 8 ou 9. Produit-programme d’ordinateur comprenant des instructions qui, lorsque le programme est exécuté par un ordinateur, conduisent celui-ci à mettre en œuvre les étapes du procédé (11) d’apprentissage selon l’une quelconque des revendications 1 à 3 et/ou les étapes du procédé (10) de détection d’anomalies selon l’une quelconque des revendications 4 à 7.