Présentation générale d’IRSTEA
IRSTEA (Institut National de Recherche en Science et Technologies pour l’Environnement et l’Agriculture) est un établissement public à ca- ractère scientifique et technologique implanté en France et reparti dans
IRSTEA travaille sur les enjeux majeurs d’une agriculture responsable et de l’aménagement des territoires Ce centre de recherche est divisé en trois départements dont les thèmes de recherche sont les Eaux, les Éco- technologies et les Territoires.
Figure 1 – Implantation géographique des diverses centres d’IRSTEA
La stratégie de l’organisation scientifique et technique d’IRSTEA :
• 3 départements de recherche : Eaux, Territoires, Écotechnologies;
— Risques naturels, sanitaires et environnementaux;
— Bio-économie et économie circulaire des bio-ressources et des ef- fluents : des technologies aux acteurs;
— Gestion adaptative des ressources dans les territoires sous contrainte du changement global;
— Biodiversité : dynamique et gestion des écosystèmes et services écosystémiques.
Structure interne
Le centre de Clermont-Ferrand, se compose de 90 agents dont 60 in- génieurs/chercheurs Le centre accueille également chaque année environ
22 doctorants et post-doctorants ainsi que 40 stagiaires de l’enseignement supérieur Il bénéficie d’un budget annuel moyen de 3.56 millions d’euro.
Le centre dispose de deux sites : un pôle scientifique et universitaire si- tué sur le campus des Cézeaux à Aubière (63), et un site de recherche et d’expérimentation (équipé d’une exploitation agricole et d’un atelier de prototypage mécanique) situé à Montoldre (03) Vous trouverez ci-dessous l’organigramme du Centre de Clermont-Ferrand.
Figure 2 – Organigramme de IRSTEA Clermont
Présentation du secteur d’accueil
L’unité de recherche TSCF
IRSTEA est composé actuellement de 19 unités de recherche dontL’unité de recherche (UR) Technologies et Systèmes d’information pour les agrosystèmes (TSCF) Cette unité s’intéresse à la sécurité et aux per- formances des agroéquipements a apporter des solutions concrètes aux besoins d’une agriculture productive et écologiquement responsable Ses activités qui relèvent du département Écotechnologies d’IRSTEA, sont conduites dans le cadre des thốmes de recherche ô INSPIRE ằ et ô MO-TIVE ằ.
L’équipe ROMEA
Au sein de l’unitộ de recherche TSCF, l’ộquipe ô Robotique et Mobi- litộ pour l’Environnement et L’Agriculture ằ (ROMEA) [rộf : 2] conỗoit des systốmes reconfigurables et à autonomie partagộe, afin d’accroợtre les performances et la sécurité des engins œuvrant en milieux naturels, en particulier dans l’agriculture Dirigée par Mr.Roland LENAIN, cette équipe concentre ses recherches sur trois principaux axes :
— La conception de dispositifs de sécurité, de la conception mécanique à la réalisation de dispositifs d’assistance;
— La perception de l’environnement et la modélisation du comporte- ment et de l’interaction d’un robot avec son utilisateur.
— Le développement d’algorithmes avancés de commandes ou d’assis- tance, en prenant en compte les phénomènes perturbateurs et les in- certitudes liées à l’évolution en milieux tout-terrain.
Première partie CHAPITRE : PRÉSENTATION DU PROBLÈME
Les données dans tous les domaines aujourd’hui sont les éléments qui permettent d’avoir connaissance et maợtrise sur tout ce qui nous en- toure Tous les domaines génèrent des données qui sont stockées, traitées, analysộes de multiples faỗons à des fins de prộvisions, des prises de dộci- sions, d’analyse de failles, etc Tout ce lot de finalités passe par la science des données.
La science des données est donc un vaste domaine regroupant plu- sieurs sous-domaines de traitement de données de plusieurs types à savoir les sons, les images, les écritures manuscrites ou numériques, les vidéos.
Ces données sont utilisées dans tous les domaines pour des analyses en vue de connaợtre le passộ, d’ờtre au courant du prộsent et de prộdire l’ave- nir La science des données ou Machine Learning est un vaste domaine qui se résume sur notreFigure 3:
Dans notre cas qui fait référence directe à ce rapport, il s’agit du traite- ment de données provenant des capteurs qui sont sur un robot permettant de recueillir des informations sur le fonctionnement de celui-ci en temps réel Ces données générées font l’objet de ce qui suit dans ce document.
Le travail réalisé ici fut concentré sur l’apprentissage profond (Deep Lear- ning) C’est un sous domaine du Machine Learning qui a montré sa force avec les pratiques statistiques et probabilistes face à toutes sortes de don- nées.
Aujourd’hui, grâce au Deep Learning, l’expression Intelligence Artificielle a trouvé sa définition dans toutes les domaines scientifiques.
Figure 3 – Les embranchements du Machine Learning
L’équipe ROMEA de Clermont-Ferrand, axée sur la conception de robots mobiles à but agricole, possède plusieurs prototypes de robots des- tinộs à plusieurs tõches Ces robots (Maợtre et Suiveur), sont destinộs à suivre un humain dans ses déplacements dans un champ tout en détectant leur position, les éventuels obstacles mais aussi la personne Dans l’exé- cution de leur tâche, les robots renvoient des informations par le biais des plusieurs capteurs positionnés sur les composants du robot notamment :
— L’Inertial Measurement Unit (IMU) Ces capteurs renvoient des signaux numériques qui sont bien iden- tifiés selon les types d’informations Ces informations arrivent en temps rộel et constituent, si elles sont stockộes, une base permettant de connaợtre en temps réel ou différé, les états de fonctionnement, de position , etc.
Dans les multiples tests effectués en prototypage ou en environnement rộel, force est de constater qu’il apparaợt des dộfauts liộs à plusieurs com- posantes du robot, liés à l’impact de l’environnement réel, liés au sol, lié à la détection de la position réelle, etc.
Suite à des analyses et des études menées ne pouvant pas détecter toutes les causes des défauts ou tout l’exactitude des moments ou ceux-ci surviennent, un projet a été mis au point pour la détection des pannes par rapport aux informations recueillies Ces informations appelées ré- sidus(les résidus sont des sorties d’équations de paramètres et de com- mandes du robot), vont permettre, par plusieurs moyens de calculs statis- tiques et probabilistes, de détecter la présence de pannes dans les données.
Cette étude a pour objectif de trouver un ou plusieurs seuils pour lequel, les valeurs se trouvant au-dessus ou en-dessous seraient définies comme données précurseuses de défauts ou non ou des signes de défauts pro- venant d’un composant référencé selon le résidu influencé Il y a eu des résultats appréciables avec quelques cas de défauts suite aux techniques utilisées notamment le filtre de KALMAN, et d’autres cas qui n’ont pas fait l’objet de détection Il fut constaté aussi que certains défauts réels ne faisaient pas actes de diagnostic par le programme existant et que des quelques rares cas de fonctionnement normaux étaient confondus à des cas de pannes.
Plusieurs expériences ont été menées dans le but du diagnostic et de l’isolement des défauts dont l’un était le filtre de KALMAN Le filtre deKalman,Dan Simon[1], est un filtre à réponse impulsionnelle infinie qui estime les états d’un système dynamique à partir d’une série de mesures incomplètes ou bruitées Le filtre de Kalman est utilisé dans une large gamme de domaines technologiques (radar, vision électronique, commu- nication ) C’est un thème majeur de l’automatique et du traitement du signal.
5 Diagnostic de pannes de robots mobiles par "Deep Learning"
Sujet du stage
Le développement des robots mobiles permettant de réaliser des tâches dangereuses, complexes, répétitives et/ou fastidieuses (le déplacement d’un objet lourd d’un point à un autre par exemple) est un sujet prégnant dans les contextes agricoles et industriels Ces robots réalisent des tâches clai- rement identifiées tout en évoluant dans un environnement complexe et dynamique Cependant, dans certaines situations (présence de nombreux obstacles prévus ou imprévus dans le cadre d’une tâche de suivi de trajec- toire, dysfonctionnement d’un composant physique du robot, ), l’intel- ligence embarquée ne permet pas de trouver de solutions permettant de mener à bien les tâches à effectuer.
Dans l’objectif de répondre à ce genre de situation, des travaux de re- cherche sont en cours Leur première ambition est de définir une méthode de diagnostic et d’isolation de tout type de dộfaut pouvant apparaợtre sur un robot C’est dans ce contexte que ce stage s’inscrit Le Deep Learning est une méthode récente d’apprentissage automatique, basée sur des ré- seaux de neurones artificiels Elle permet d’obtenir des résultats probants dans de nombreux domaines comme la reconnaissance des formesY Le- Cun et Al[2], la reconnaissance de parolesN Jaitly et Al[3], la reconnais- sance vocale continue T.N Sainath et Al[4], le diagnostic médical A.M.
Abdel et Al[5], la détection de position S Li, Z.Q Liu et Al[6] ou encore le suivi en ligne des objetsY Chen et Al[7] Certaines de ces applications ont des points communs avec le domaine du diagnostic qui nous intéresse.
C’est pourquoi nous pensons qu’elles pourraient donner des résultats pro- metteurs dans notre domaine.
Travail demandé par le projet
L’objectif final de l’étude est de détecter et isoler une liste prédéfinie de défauts qui pourraient se produire sur un robot mobile L’application de la méthode du Deep Learning sur des résidus générés à partir d’équations régissant la dynamique du robot est le cœur de cette étude Nous aurons à :
— Faire une étude bibliographique sur les différentes architectures exis- tantes de méthodes de l’apprentissage profond;
— Synthétiser les résultats de cette recherche et classer les architectures en fonction de leur capacité à répondre à notre problématique (appli- cation sur des équations de redondance analytique et sur les filtres de Kalman, détection de dépassement de seuils, calculs en temps réel, );
— Appliquer la(les) architecture(s) sélectionnée(s) sur les résidus géné- rés.
— Combiner les résultats de la méthode avec ceux obtenus en utilisant les méthodes de diagnostic à base de modèle.
— Évaluer et valider les résultats théoriques obtenus Ce travail se fera,dans un premier temps, en simulation sousROS, (Gazebo).
Deuxième partie CHAPITRE : ÉTAT DE L’ART
Les recherches que nous avons effectuées pour prendre connais- sance des travaux existants sur le diagnostic de pannes, sur la détection de défauts, sur l’analyse de données par l’intelligence artificielle et sur l’analyses de données capteurs de robots etc Celles-ci nous ont permis au final de cerner les meilleures voies à suivre Ces analyses nous ont permis de comprendre les vrais problèmes qui se posent, les termes les plus per- tinents à employer et aussi l’orientation des solutions à envisager.
Nous avions fait au début de notre état de l’art, des recherches d’ar- ticles avec des mots clés par le biais du moteur de recherche interne a IRS- TEA appeléSherlock, qui sert à la recherche documentaire multi-sources et qui nous a amené à une liste exhaustive de 71 articles toutes catégories confondues.
La liste a ensuite été classé, selon les termes et mots clés ayant servis.
Figure 4 – Première partie des 71 articles de l’état de l’art
Figure 5 – Deuxième partie des 71 articles de l’état de l’art
Figure 6 – Troisième partie des 71 articles de l’état de l’art
Figure 7 – Quatrième partie des 71 articles de l’état de l’art
Suite à ces articles trouvés, lus et analysés, nous avons réduit la liste afin de ne conserver que les articles les plus intéressants, ceux-ci faisant l’objet de notre prise de position sur les solutions envisageables.
Les travaux réalisés sur les 71 articles
Dans la lecture de chaque article, nous recherchons le plus souvent à comprendre le résumé, identifier les mots clés, l’introduction et la conclu- sion afin de recueillir le contexte général, le but et la solution finale Cette faỗon de lire les articles nous a permis de voir ceux parmi lesquels le sujet allait dans le sens de notre recherche mais dont le contenu n’est pas axé sur les mêmes idées que nos attentes Ainsi nous avons restreint la liste à des articles pertinents, des articles qui ont fait l’objet de tests après lecture et ce via des critères comme :
— La date de publication de l’article,
— Les apparitions du nombre de mots clés dans l’article,
— Le modèle utilisé de réseaux de neurones,
Les 16 articles retenus
Dans la phase de sélection des articles les plus pertinents, nous avions retenu une liste de 16 articles qui cadrent parfaitement avec le contexte de notre problématique Ainsi, dans l’étude complète de ces 16 articles, nous avons également fait un classement suivant les paramètres précités de sorte à nous limiter uniquement aux 7 premiers Dans cette classifi- cation, nous avons pris la décision de partir de ces articles pour orienter notre recherche de solution qui malgré les différences de cas de pannes entre les articles et notre problématique, nous serviraient pour avancer.
Les points de sélection et de classification des 7 articles
Nous avons sélectionné de nos 16 articles précédemment retenus, les
7 meilleurs articles suivant une étude et critères bien définis.
— La date de publication de l’article,
— Les types de données utilisées,
— La taille des données utilisés,
— Les résultats obtenus en matière de taux de précision ,
Ces critères précités ont non seulement permis de sélectionner les articles les plus récents, mais aussi les méthodes d’analyses basées sur les réseaux de neurones Nous avons sélectionné et classé les articles les plus avancées qui sont dans l’optique de diagnostic de défauts basés sur des données de types capteurs, des traitements de signaux et des analyses des données provenant du domaine de la robotique.
Les sept articles classés
1 A neural network constructed by deep learning technique and its ap- plication to intelligent fault diagnosis of machines;
2 Fault diagnosis based on deep learning;
3 Fault Detection and Diagnosis Based on KPCA-CDBNs Model;
4 A novel deep autoencoder feature learning method for rotating ma- chinery fault diagnosis;
5 Autoencoder based fault diagnosis for grinding system;
6 Failure diagnosis using deep belief learning based health state classi- fication;
7 Comparison of deep neural network architectures for fault detection in Tennessee Eastman process.
Le tableau de classement des sept articles
Le tableau suivant résume toutes les études menées sur les sept ar- ticles.
Figure 9 – Deuxième partie des 7 articles retenus
Figure 10 – Troisième partie des 7 articles retenus
8 Les modèles réalisés dans les 7 articles retenus
Parmi les articles retenus, les 7 premiers, 5 des travaux ont été réali- sés à l’aide des Autoencodeurs (le premier article est deFeng Jia et Al.[12], le deuxième article est de Chenglin Wen et Al.[13], le quatrième est de Shao, Haidong et Al.[15], le cinquième est de Qu Xing-yu et Al.[16] et le septième est de Gavneet Singh Chadha et Al.[18]) Les deux autres avec le Deep Belief Network (le troisième article est deRongyu Li et Al.[14] et le sixième article est de Prasanna Tamilselvan[17]) Un autre article (Pei Cao et Al.[19]), était basé sur la technique de l’apprentissage par trans- fert (Transfer Learning) et avait la meilleur performance toutefois, nous avons chercher a ne pas l’implémenter car cela ne nous permettra pas de connaợtre la qualitộ de nos donnộes et le modốle robuste qu’il fallait.
Les modèles qui prédominaient dans notre état de l’art furent les Autoen- codeurs, suivi des Deep Belief Network(DBN).
Les Autoencodeurs
Le fonctionnement d’un autoencodeur
Un Autoencodeur apprend à compresser les données de la couche d’entrée en un code court, puis à décompresser ce code pour obtenir un résultat proche des données d’origine Cela oblige l’autoencodeur à s’en- gager dans la réduction de la dimensionnalité, par exemple en apprenant à ignorer le bruit Certaines architectures de réseaux de neurones uti- lisent des couches autoencodeur fragmentées et empilées pour la recon- naissance d’images Le premier autoencodeur peut apprendre à coder des caractéristiques simples telles que les angles, le second à analyser la sor- tie de la première couche, puis à coder des caractéristiques moins locales etc., jusqu’à ce que le codeur final retrouve toute l’entrée dans un code qui correspond à une description de l’entrée.
Un encodeur
Un Encoder, qui est l’ensemble des couches constitutives de la pre- mière symétrie d’un autoencodeur, a pour but d’apprendre par un codage et un compactage des informations en vue de les transmettre à un de- codeur pour que les données d’entrées puissent être reconstruites grâce aux informations compactộes Cette faỗon de compacter, de coder et d’ap- prendre les informations ou encore d’extraire les caractéristiques de l’en- coder est ce qui nous intéresse Nous allons partir de cette phase d’extrac- tion d’informations pour après, classer nos données.
Les réseaux de croyances profondes
La composition d’un réseau de croyance profonde(DBN) 28
Un DBN est un ensemble de réseaux simples, tels que les auto-encodeurs, qui ont été formés par couche dans une procédure non supervisée Les RBM sont les composants des DBN Les DBN composés d’autoencodeurs sont également appelés autoencodeurs empilés,Geoffrey Hinton[9].
Figure 12 – Représentation d’une unité du DBN
Le fonctionnement d’un DBN
Dans la section suivante, les RBM sont utilisés pour expliquer l’idée derrière les DBN.
L’entraợnement d’un DBN se fait en deux ộtapes, qui permettent d’ap- prendre des hiérarchies d’entités et ensuite une étape dite de clustering.
Dans la première étape, l’apprentissage non supervisé génératif est ef- fectué en couches sur les RBM Tout d’abord, un RBM est formé sur les données Deuxièmement, ses unités cachées sont utilisées comme entrées dans une autre RBM.
Ce processus peut être poursuivi pour plusieurs RBM En consé- quence, chaque RBM apprend des fonctionnalités plus complexes Par exemple, dans une application de vision par ordinateur, l’une des pre- mières couches RBM peut apprendre des caractéristiques simples, telles que la reconnaissance des bords Les couches RBM suivantes peuvent ap- prendre un groupe d’autres aspects telle que des formes, tandis que les couches supộrieures peuvent apprendre à reconnaợtre des objets, tels que des visages, etc Au cours de la deuxième étape, un ajustement discrimi- nant utilisant la rétropropagation est effectué sur l’ensemble du DBN pour modifier les poids Grõce au prộ-entraợnement, les poids ont une bonne initialisation, ce qui permet à la rétropropagation d’optimiser rapidement les poids.
Figure 13 – Représentation simple de la machine de Boltzmann
Bien étudiés et comparés sur plusieurs points, un Autoencoder et unDBN sont presque similaires dans leurs fonctionnements La différence réside au niveau du DBN par sa couche de sortie qui est dotée d’un classi- fieur Mais il est aussi important de montrer que les Autoencodeurs sont simples à construire Avec les librairies autour de l’analyse des données aujourd’hui, on a plus de simplicité pour construire un réseaux de neu- rones Les DBN sont des réseaux de neurones typiques comme les couches d’encodage des Autoencodeurs qui ont une couche de sortie avec la fonc- tion d’activation classifieur.
Dans les réseaux de neurones artificiels , la fonction d’activation d’un nœud définit la sortie de ce nœud à partir d’une entrée ou d’un en- semble d’entrées Un circuit de puces informatiques standards peut être vu comme un réseau numérique de fonctions d’activation pouvant être "ON"
(1) ou "OFF" (0), en fonction de l’entrée Ceci est similaire au compor- tement du perceptron linéaire dans les réseaux de neurones Cependant, seul les fonctions d’activation non linéaires permettent à de tels réseaux de calculer des problèmes non triviaux en utilisant seulement un petit nombre de noeuds,Hinkelmann Knut[10].
Notre encodeur fut conỗu simplement vu qu’il s’agissait des donnộes nu- mériques et non d’images, donc pas de conversion ou de pixellisation ni d’ajout de bruits gaussiens Les fonctions d’activation de notre Encodeur se résumaient aux fonctions tanh et relu.
La fonction tanh
La fonction ô tanh ằ ou fonction tangente Hyperbolique a pour ộqua- tion :
Figure 14 – Equation de la fonction TanH
Figure 15 – Représentation de la fonction Tangente hyperbolique
Figure 16 – Equation de la dérivée de la fonction Tangente
C’est une fonction qui varie entre [-1;1],P Baldi et Al[11].
Pour tout X appartenant à ]-∞; 0[, laf onctionY = [−1; 0[;
La fonction tangente hyperbolique passe graduellement d’une va- leur –1 à une valeur 1 Elle peut donc être utilisée pour représenter un phộnomốne de transition progressive, ô douce ằ, entre deux ộtats.
La fonction Relu (Rectified Linear Unit)
La fonction d’activation ReLU est évidemment la fonction d’activa- tion non linéaire la plus utile que nous puissions utiliser Lorsque nous obtenons une entrée positive, la dérivée n’est que de 1, il n’y a donc pas d’effet de compression que nous rencontrions sur les erreurs rétropropa- gées de la fonction sigmọde Des recherches ont montré que les ReLU permettent une formation beaucoup plus rapide pour les grands réseaux.
La plupart des frameworks tels que Tensorflow et Keras simplifient l’uti- lisation de ReLU sur les couches masquées, nous évitant ainsi de les im- plémenter nous-même. f(x) = x + =max(0,x)
Figure 17 – La représentation de la courbe Relu
La fonction ReLU est f(x) = max (0, x) Cela est généralement ap- pliqué élément par élément à la sortie d’une autre fonction, telle qu’un produit matrice-vecteur Dans les utilisations MLP, les unités de redres- sement remplacent toutes les autres fonctions d’activation, à l’exception peut-être de la couche de lecture.
Les ReLU améliorent notamment les réseaux de neurones en accélé- rant la formation Le calcul du gradient est très simple (0 ou 1 en fonction du signe de x) En outre, l’étape de calcul d’une unité ReLU est simple;
Tous les éléments négatifs sont définis sur 0.0, pas d’exponentielle, pas d’opération de multiplication ou de division Les gradients des réseaux tangents logistiques et hyperboliques sont plus petits que la partie po- sitive de ReLU Cela signifie que la partie positive est mise à jour plus rapidement au fur et à mesure que la formation progresse Cependant, cela a un cỏt Le gradient 0 sur le cơté gauche à son propre problème, appelé "neurones morts", dans lequel une mise à jour de gradient définit les valeurs entrantes sur une ReLU de sorte que la sortie soit toujours égale à zéro; Les unités ReLU modifiées telles que ELU (ou Leaky ReLU, ou PReLU, etc.) peuvent minimiser cela.
La fonction Sigmọde
Elle représente la fonction de répartition de la loi logistique Elle est souvent utilisée dans les réseaux de neurones parce qu’elle est dérivable, ce qui est une contrainte pour l’algorithme de rétro-propagation de Wer- bos La forme de la dérivée de sa fonction inverse est extrêmement simple et facile à calculer, ce qui améliore les performances des algorithmes.
Le neurone sigmọde utilise des poids (weights) pour chaque variable d’en- trée ainsi qu’un seuil biais (bias) par neurone. f(x) = 1
Figure 18 – Représentation de la fonction Sigmọde
La fonction sigmọde utilisée ici nous permet de récupérer toutes les sorties de nos modèles Cette fonction permet d’avoir toutes les sorties contrairement à la fonction Softmax qui ne renverrait que le maximum des résultats Ainsi, avec la fonction Sigmọde, nous pourrions définir un seuil selon le taux qui nous indiquerait la présence de panne(s) quand les valeurs sont au dessus du seuil ou pas de panne(s) si les valeurs sont en dessous du seuil.
Les fonctions présentées
Les fonctions d’activations ci-dessus présentées ont fait l’objet de notre travail Ces fonctions ont étés utilisées pour leurs spécificités, leurs fonctionnalités, leurs correspondances à notre vision sur les résultats es- comptés de notre projet.
10 Les points importants entre l’état de l’art et les modèles réali- sés
Les recherches bibliographiques et analyses d’articles suite à notre état de l’art nous a montré plusieurs modèles construits et différentes mé- thodes utilisées Ces travaux sont fait avec des méthodes de traitements d’images avec des modèles comme les réseaux de neurones appelés les Au- toencodeurs (A_E_D) et les réseaux neuronaux appelés les réseaux neu- ronaux à croyances profondes ou Deep Belief Network (DBN).
Les réseaux de neurones pour l’analyse des images se construisent sur les caractéristiques extraites des images Les images ne sont que des combinaisons de lignes et colonnes de pixels qui définissent ce que nous voyons a l’œil nu Les pixels allant de l’ordre de 0 à 255 L’analyse se base sur les variations de couleurs ou du niveau de gris des images défini par les pixels Ainsi, pour traiter ces images converties en pixels par les tech- niques de traitement d’images, ces derniers sont aplatis, transformées en variables après normalisation puis mis en entrée du modèle construit pour le traitement.
Troisième partie CHAPITRE : LA CONSTRUCTION DES MODÈLES
Les types de données utilisées dans notre travail
Dans notre travail, nous nous sommes concentré sur les données nu- mériques que nous recevons des capteurs et les entrons dans notre mo- dèle Nous avons recueillis les données directement sous format numé- rique (float).
Nous avons utilisé les données numériques contrairement aux images utilisées dans l’état de l’art La facilité de calcul, de traitement et de construc- tion des modèles suivant les données numériques nous ont poussé à ne plus revenir sur les images pour la construction des modèles mais uni- quement la visualisation des variables par classes pour voir comment se présente nos données Les données sont générées dans un simulateur GA-ZEBO avec des commandes d’ordre d’angle de rotations, de vitesses four- nies à chaque unités motrices du robot.
Descriptifs de nos variables
Les données provenant des capteurs ainsi que des combinaisons de commandes et de valeurs permettent d’avoir au total 34 variables qui sont :
2 res2 = theta_point + 0.31 * w - (vr - vl) / L;
9 res9 = vr1 - (vg + L * (theta_point + 0.31 * w) / 2)
10 res10 = vr2 - (vg + L * (theta_point + 0.31 * w) / 2)
11 res11 = vl1 - (vg - L * (theta_point + 0.31 * w) / 2)
12 res12 = vl2 - (vg - L * (theta_point + 0.31 * w) / 2)
34 w_list. w: commande de la vitesse angulaire; v: commande de la vitesse linéaire; vr1, vr2: vitesses des roues droites avant et arrière respecitvement; vl1, vl2: vitesses des roues gauches avant et arrière respecitvement, Ces vitesses sont mesurées par les odomètres(encodeurs); theta_point : vitesse angulaire mesurée par le IMU (Unertial Measure- ment Unit, ou centrale inertielle); vr = (vr1+vr2)/2; vl = (vl1+vl2)/2;
L= l’axe entre les deux roues; vg= vitesse linéaire calculée en se basant sur le gps (Vg = delta(position_gps)/delta(t));m_dist: Distance Mahalanobis = yˆ-1*Sˆ-1*y; avec y le résidu de l’ekf, et s sa matrice de covariance; pp1, pp2 : Pose Provider 1 et 2 (fournisseurs de position du robot); pp1= fusion de données des IMU et odomètres; pp2= fusion de données des IMU, odomètres et gps; res_x, res_y, res_theta: x_mesuré (pose provider) - x_prédit (ekf); x_p= v*cos(theta)*(beta_v+1) + cos(theta)*w*beta_w; theta_p= w + v*beta_v2 + w * beta_w2;
Description de nos classes
Notre étude concerne 20 cas de fonctionnement du robot : Ces 20 cas sont définis par 19 cas de pannes et un cas de fonctionnement sans panne.
— classe 0 = normal fonctionnement normal, sans défaut;
— classe 1 = b_fl, la roue de l’avant gauche est bloquée;
— classe 2 = b_fr, la roue de l’avant droite est bloquée;
— classe 3 = b_rl, la roue de l’arrière gauche est bloquée;
— classe 4 = b_rr, la roue de l’arrière droite est bloquée;
— classe 5 = free_fl, la roue de l’avant gauche tourne sans être couplée au moteur (roue folle);
— classe 6 = free_fr, la roue de l’avant droite tourne sans être couplée au moteur (roue folle);
— classe 7 = free_rl, la roue de l’arrière gauche tourne sans être couplée au moteur (roue folle);
— classe 8 = free_rr, la roue de l’arrière droite tourne sans être couplée au moteur (roue folle);
— classe 9 = block_odom, la valeur de la vitesse du robot constatée à partir des encodeurs, est bloquée;
— classe 10 = drift_odom, dérive de la valeur de l’odomètre
— classe 11 = drift_imu, IMU : Inertial Measurement Unit, ou centrale inertielle, ce capteur mesure la dynamique du robot (vitesse angulaire, orientation en 3d(on s’intéresse a l’angle autour de z), accélérations angulaire et linéaire) drift = dérive sur ces valeurs;
— classe 12 = gaussian_imu, ajout de bruit gaussien sur les valeurs de l’IMU;
— classe 13 = drift_gps, dérive des valeurs de la position du robot dans le plan (x,y);
— classe 14 = gaussian_gps, bruit gaussien ajouté aux valeurs gps;
— classe 15 = slide, le robot glisse, mauvaise conditions d’adhérence;
— classe 16 = deg_fl, dégradation de 2cm du rayon de la roue avant gauche ou pneu dégonflement;
— classe 17 = deg_fr, dégradation de 2cm du rayon de la roue avant droite ou pneu dégonflement;
— classe 18 = deg_rl, dégradation de 2cm du rayon de la roue arrière gauche ou pneu dégonflement;
— classe 19 = deg_rr, dégradation de 2cm du rayon de la roue arrière droite ou pneu dégonflement.
La problématique du sujet était de pouvoir construire un ou des mo- dèles de Deep Learning dans le but de diagnostiquer et d’isoler des pannes de robot mobiles Comme décrite précédemment, les pannes mises en exergue sont de 19 types associées au cas de fonctionnement normal, au total 20 classes.
Une notion aujourd’hui qui n’est plus beaucoup mise en exergue est la no- tion de couche cachée La notion de couche cachée perd son importance avec le temps car aujourd’hui on parle d’avantage de couches profondes que de couches cachộes Cette faỗon de dire vient de la maợtrise des trai- tements et des calculs qui sont appliqués sur les données dans chaque couche contrairement au début de l’apprentissage profond ó certains traitements n’étaient pas possibles comme les Dropout sont appliqués au- jourd’hui.
Cette faỗon de faire nous amốnera à construire deux ou plusieurs modốles afin de faire des comparaisons avec plusieurs modèles en fonction des ré- sultats que nous obtiendrons, des types de données, la taille des bases et des fonctions d’activations.
Le modèle basé sur l’encodeur
Le premier réseau est formé par la première partie d’un autoenco- deur simple (Encoder) qui permet de faire l’entraợnement non-supervisộ.
Dans cette formation, le réseau est chargé de stocker les meilleurs poids et biais qu’il se charge de faire varier suivant sa fonction de minimisation d’erreurs.
La construction de l’encodeur
L’encodeur est composé de 4 couches :
— La première couche ou la couche d’entrée est fait de 34 neurones.
Cette couche permet de convertir les données dans la dimension re- quise par le réseau Sur cette couche n’est appliquée aucune fonction;
— La seconde couche de l’Encoder est composée de 500 neurones C’est une couche cachée qui a pour fonctionnalité la fonction d’activation Relu Elle utilise la fonction Relu avec comme entrée les 34 variables selon le nombre de batch-size définit;
— La troisième couche, une couche cachée également, renferme 300 neu- rones et est aussi piloté par la fonction Relu;
— La dernière couche, la couche de sortie à les mêmes nombres de neu- rones comme la couche d’entrée Elle est piloté également par la fonc- tion Relu Nous avons en sortie, des Tensors d’ordre de batch-size et de nombre des 34 Variables;
L’architecture du modèle peut être affectée dans un conteneur qui prend ici le nom autoencodeur. autoencoder = Model(inputs=input-layer, outputs=encoder)
Il peut aussi être visualisé avec la fonction Summary : autoenco- der.summary()
Le modèle classifieur
Les méthodes de classification ont pour but d’identifier les classes auxquelles appartiennent des objets à partir de certains paramètres des- criptifs Elles s’appliquent à un grand nombre d’activités humaines et conviennent en particulier au problème de la prise de décision automati- sée La procédure de classification sera extraite automatiquement à par- tir d’un ensemble d’exemples Un exemple consiste en la description d’un cas avec la classification correspondante Un système d’apprentissage doit alors, à partir de cet ensemble d’exemples, extraire une procédure de clas- sification Il s’agit en effet d’extraire une règle générale à partir des don- nées observées.
La construction du classifieur
Les données que nous utilisons dans notre travail sont des valeurs non linéaires de signaux de capteurs Ce sont des données qui définissent un état donné du robot ou d’un module du robot en temps réel.
La construction de notre Classifieur se repose sur un réseau de classifica- tion supervisée Les Labels des données sont utilisés dans ce réseau pour faire une classification supervisée.
Ce sont des couches qui sont pilotées par la fonction Relu et dont la der- nière couche permet de faire la classification avec la fonction Sigmọde.
— La première couche qui est la couche d’entrée est la couche qui re- ỗoit les donnộes et qui les dimensionne en vue de les envoyer aux couches profondes Cette couche n’a pas de fonction d’activation et aucun traitement ne se fait à ce niveau;
— Les couches profondes avec les fonctions d’activation sur lesquelles sont appliquées des poids et des biais d’ó ces poids et biais changent par l’effet de correction appelée la retropropagation;
— La couche de sortie a comme fonction d’activation, la fonction sig- mọde.
13 Les modèles découlant de l’encodeur et du classifieur
Le modèle encodeur-classifieur
Le modèle construit ici est basé sur une association de deux (2) ré- seaux de neurones La construction de ce modèle est axée sur le modèle numéro 1Feng Jia et Al.[12], des 7 articles que nous avions retenus Dans cet article, le modèle est construit par un autoencodeur complet qui fait suite a un classifieur Malgré que les données utilisées dans cet articles sont des images, nous avons pu utiliser les données flottantes de notre base pour faire le travail Nous avons alors procédé par une méthode al- lant de l’ingénierie vers la recherche en essayant de reproduire le modèle.
Le modèle en soit est l’association de l’Encoder et du Classifieur, ó leClassifieur est un réseau associé à l’Encoder Ceci se fait en appelant le premier réseau créé comme une couche lors de la constitution du second modèle.
Le modèle classifieur
Précédemment, ce modèle a la même architecture que le modèle clas- sifieur décrit Cette architecture a été retenue après plusieurs tests effec- tués Dans la suite de ce rapport, nous montrerons les différents tests qui ont permis de maintenir cette architecture.
La compilation d’un modèle se fait avec une fonction spécifique a la librairie Keras et des fonctions intégrées.
— Fonction Metrics est une fonction utilisée pour juger de la perfor- mance de votre modèle Elle calcule le taux de précision par rapport aux pertes dues à des données mal classées;
— Fonction de perte ou Loss Cette fonction permet de calculer, le taux de données mal classées par rapport a la normale Dans la classifica- tion, l’erreur est calculée comme l’exemple-ci d’une fonction appelée (categorical-crossentropy) Entropie croisée;
— Fonction optimisatrice ou Optimizer : Un optimiseur est l’un des deux arguments nécessaires à la compilation d’un modèleKeras Elle per- met de minimiser le taux de perte en jouant sur les paramètres poids et biais.
L’ajustement du modèle se fait par une méthode fit, propre à Ke- ras La méthode fit() sur un modèle Keras renvoie un objet d’historique.
L’attribut History.history est un dictionnaire enregistrant les valeurs de perte d’entraợnement et de mộtriques aux ộpoques successives, ainsi que les valeurs de pertes et de précisions.
Quatrième partie CHAPITRE : EXPÉRIMENTATIONS ET ANALYSES
16 Études de la qualité des données
Dans cette partie du rapport, nous avons démontré par des tests l’im- portance des données dans la conception des réseaux de neurones Nous avons fait des tests avec nos modốles crộộs Ces modốles ộtaient conỗus sur la base de classifications multi-classes et multi-labels Dans un pre- mier temps, les modốles avaient pour objectif de faire l’entraợnement et la validation sur une base de données constituées de nos 20 classes et sur le résultat, faire des tests sur des nouvelles données Nous aurons alors à identifier les classes qui seront bien prédites pour revoir celles qui ne le sont pas, revoir la qualité de nos données générées ainsi que les données en environnement réel et enfin vérifier la robustesse des modèles crées.
La quantité des données
Les données en notre possession proviennent d’un environnement de simulation sur le logiciel GAZEBO Un logiciel de simulation robo- tique adéquat pour toutes manipulations similaires à un environnement réel Les premières données furent générées avec des commandes (V, W) aléatoires par rapport à chaque base mais comprise entre un minimum et un maximum pour les déplacements possibles ainsi que les cas de pannes possibles Les commandes n’étaient pas similaires dans la génération des bases de chaque cas de pannes Cela fut produit ainsi pour pouvoir cou- vrir une multitude de cas d’exécution comme dans un environnement réel.
Suite à ces donnộes gộnộrộes, nous avons conỗus nos modốles.
La validation croisée de nos bases
Toutes nos bases de données générées se trouvent dans une marge de 25000 à 35000 données de lignes Pour procéder à la construction des modèles, nos avons réunis toutes les bases en une seule et unique base de
20 Classes avec 20000 lignes de données par classe Cette base servira à créer les modèles et le reste servirait à faire des tests.
Pour tous nos modèles, nous procédons à une validation croisée de 90% de la base en donnộes d’entraợnement et le reste, 10%, en donnộes de tests.
17 La création et les tests sur des modèles
La création des modèles
Le modèle Encodeur-Classifieur
Lors de la création de ce modèle, nous avons choisis de mettre un certain nombre de couche et un nombre de neurones Pour savoir le bon nombre de couches ainsi que le bon nombre de neurones par couches, il fallait procéder par plusieurs tests et comparer les résultats suivants :
Pour ce premier modèle créé, nous nous somme arrêté à un nombre de 300 neurones pour la première couche cachée, 200 neurones à la deuxième couche et 100 neurones à la troisième couche cachée La couche d’entrée avait le même nombre de neurones correspondant au nombre de variables ainsi que la couche de sortie.
La couche de classification fut créé avec quatre (3) couches cachées, de 300 neurones à la première couche, 200 neurones et 100 neurones à la dernière couche Ce réseau comprend tout d’abord le réseau de l’enco- deur, ensuite vient s’associer le réseau classifieur et sa couche de sortie avec la fonction Sigmọde.
Le réseau DBN
Le modèle DBN comme décrit plus haut sont des réseaux de neu- rones similaires aux autoencodeurs avec comme sortie une couche de clas- sifieur.
Le modèle créé dans notre travail est réalisé avec une touche apporté en mettant une couche de neurones de fonction d’activation Relu suivie d’une couche Sigmọde Ce modèle est sur la base du premier encodeur.
Le réseau classifieur
Le Classifieur est un réseau de neurones qui fait office de classifica- tion dans le modèle encodeur-classifieur, le même nombre de couche, les mêmes fonctions d’activations ainsi que la fonction Sigmọde.
La fonction sigmọde est utilisée dans le but de prédire une ou plu- sieurs panne(s) car dans un environnement réel, une ou plusieurs cas peuvent survenir au même moment.
Les tests des réseaux
Le test avec le reste des bases non utilisées
Le reste des bases qui représentent entre 5000 et 15000 lignes de don- nées sert dans un premier temps à tester le modèle créé afin de vérifier les quatre (4) critères de résultats cités précédemment Afin de prédire une ou les classe(s), nous avons défini un seuil permettant de définir la présence d’une panne ou non selon la valeur de sortie comparé à ce seuil Le seuil pour le premier test était défini à une valeur de 0,5 (50%) Ce qui définit une erreur quand le taux de valeur à la sortie du neurone en question est supérieur ou égale à 0.5 ou 50%.
Le test sur Gazebo
Le test effectué sur le simulateur permet de vérifier plusieurs élé- ments :
— Le temps de basculement suite à un changement d’état;
La vérification par ces éléments dans les résultats nous amene à plu- sieurs conclusions suite aux erreurs inattendues La confusion de certains cas de pannes comme le gps_gaussian, imu_gaussian, drift_gps, imu_drift, odom_drift, odom_block Les mauvaises détections ainsi que des erreurs non détecté nous ont fait appel sur tout l’ensemble du travail Il fallait alors étudier tous les processus depuis les données, en passant par les modèles pour aboutir aux données de tests.
18 Le diagnostic de la provenance des mauvais résultats
18.1 Études menées sur les données
La base de données d’origine fut soumise au test Afin de trouver les classes qui ne nous arrangent pas dans notre classification, nous avons reparti la grande base en 6 bases différentes suivant le type de défaut au- quel ils correspondent.
— Base_1 : normal, b_rr, b_rl, b_fr, b_fl
— Base_2 : normal, rr_deg, rl_deg, fr_deg, fl_deg
— Base_3 : normal, gps_gaussian, imu_gaussian
— Base_4 : normal, drift_gps, imu_drift, odom_drift, odom_block
— Base_5 : normal, free_fl, free_fr, free_rl, free_rr
Avec nos 6 bases constituées, et partant de l’idée de deux modèles, nous avons construit des modèles en fonction de nos bases Pour chaque base, nous avons 2 modèles qui correspondent Ce qui nous donne un to- tal de 12 modèles reparti en deux.
Nous avons 6 modèles correspondant à chacun de nos modèles définis préalablement L’objectif de cette étape est de pouvoir étiqueter les va- riables appropriées et celles qui ne vont pas dans l’optique d’un bon ré- sultat; aussi pouvoir isoler les classes qui empêchent de bonnes classifi- cations ou la performance des modèles créés.
Nous avons de premier abord, fait une visualisation de notre grande base que nous avons nommé mesDonnees avec Python et les librairies Pan- das etMatplotlib Cette visualisation nous permet de voir les différences et les variations, les ressemblances présentes dans les données selon les variables corrélées ou non Précisons que dans nos variables, certaines variables proviennent des combinaisons de certaines variables qui nous permettaient de ressortir les corrélations de certaines variables que nous jugeons non influentes.
Pour pouvoir détecter les mauvaises classes, nous ferons des comparai- sons sur les résultats et voir quelles sont les classes qui présentent des cas de non compatibilité avec les deux programmes.
Les douze modèles
Le modèle Classifieur
Les modèles issus du Classifier simple.
Le modèle Encodeur_Classifieur
Les modèles issus de l’Encodeur-Classifieur.
Figure 21 – Architecture du classifieur associé a l’encodeur
Explication et comparaison des résultats
La base 1
La première base constituée des classes normal, b_rr, b_rl, b_fr et b_fl, donnent des résultats avec des pourcentages similaires dans les deux modèles comparés Notons que dans cette base, les classes font références à des blocages des roues du robots, un cas de panne bien évident Les pour- centages sont très proches à des différences de peu de taux Ceci montre que les données des classes précitées ont de parfaites variations permet- tant une bonne reconnaissance et une classification nette Ainsi avec un apprentissage supervisée ou non supervisée associée à une classification supervisée, les résultats sont similaires.
Nos variables sont en parfaite harmonie avec nos réseaux de neurones qui sont capables de faire les détections et les isolements parfaitement.
La base 2
La deuxième base composée des classes normal, rr_deg, rl_deg, fr_deg et fl_deg, donne aussi des résultats similaires à des différences minimes pour les classes de la base testée sur les deux modèles Les variables sont significatives et les classes présentes des données parlantes Malgré que la visualisation ne montre pas de net changement a l’œil, les réseaux de neu- rones sont puissants et détectent les différences Nous notons bien-sûr des données mal classées qui sont compréhensibles à cause de la formation des données Déjà au niveau ó ils sont générées, étant chronologiques, les variations au début ne sont pas si parlantes Ce qui prête à confusion avec leurs similarités à d’autres classes.
Toutefois, nous tirons conclusion de l’importance de ces classes dans notre travail et à les garder ou non dans le processus de détection.
La base 3
La troisième base composée des classes normal, gps_gaussian et imu_gaussian, donne un résultat auquel nous ne nous attendions pas Contrairement aux autres bases ó le cas normal est bien détecté, ici, il est confondu plutơt aux classes gps_gaussian et imu_gaussian La compréhension de ce ré- sultat s’appuie sur le fait que contrairement au Deep Learning, d’autres techniques n’ont pu les détecter La conclusion serait de revoir les don- nộes d’entraợnement et de test car les tests effectuộs à cette ộtape sont fais sur les fichiers bag.
La base 4
Cette quatrième base regroupe les classes normal, drift_gps, imu_drift,odom_drift et odom_block relatifs aux des perturbations des capteurs gps,des données de l’imu et de l’odomètre Dans cette base on constate une mauvaise isolement de la classe normal qui est isolée à 18% et le pire est la classe odom_drift qui n’est pas détectée avec le modèle Encoder_Classifier :
00% Le Classifier simple dépasse le E_C dans cette basse de loin ó il dé- tecte mieux que l’Encoder Les comparaisons sont faites sur les deux mo- dèles d’une même base.
Nous constatons que les taux d’isolement ne sont pas si convainquant avec cette base Nous ferons d’autres combinaisons de base pour de meilleurs conclusions.
La base 5
Cette avant dernière base que nous avons, composée des classes nor- mal, free_fl, free_fr, free_rl, et free_rr fait référence aux roues folles du robots Dans les deux modèles les taux de détection et d’isolement sont presque similaires même si nous n’avons pas de bon résultats Les données permettant leurs détections doivent être très sensible, sans commandes moteurs, les roues peuvent quelquefois conserver une certaine vitesse normale dans un deplacement linéaire
La base 6
La sixième base composée de 2 classes dont la classe normal et slide, sont toutes les deux très bien détectées La classe slide contient des don- nées capteurs provenant du glissement des roues, ou de la déviation du robot de sa trajectoire normal du a un glissement(patinage).
Ce défaut est bien détecté avec un taux supérieur à 86%, ce qui est normal vu que les données ne présentent pas trop de différences pour en déduire un sérieux cas de pannes mais elles sont importantes dans l’exécution des taches du robots ou il ne suit pas la bonne trajectoire.
Ces données sont alors importantes pour dans notre travail.
Conclusion tirée de la comparaison et des tests
La comparaison des résultats et des données de tests ainsi que des données de formation nous ont amenés vers une hypothèse : L’inadé- quation des données de tests catégoriquement différentes des données d’entraợnement Nous avons compris que les donnộes sont liộes aux com- mandes de vitesse linéaire (V) et de vitesse angulaire (W) Toutes les don- nộes sont gộnộrộes avec des commandes alộatoires ce qui entraợne la non conformité entre les données au niveau des variables des classes et aussi,entre les données de formations et des données de tests en fichiers bag.
19 La nouvelle base et les nouveaux modèles
Les études menées et les tests effectués nous ont permis de voir les incohérences entre les données et les modèles Pour corriger ces erreurs, de nouvelles bases ont été générées avec les même fichiers de commandes.
Les classes perturbatrices
Le modèle DBN
Figure 22 – Courbe de la fonction de perte du DBN pour 7 classes
Figure 23 – Courbe de la précision du DBN pour 7 classes
Le modèle Encodeur_Classifieur
Figure 25 – Courbe de la fonction de perte de l’E_C pour 7 classes
Figure 26 – Courbe de la fonction de précision de l’E_C pour 7 classes
Classifieur
Figure 28 – Courbe de la fonction de perte du classifieur pour 7 classes
Figure 29 – Courbe de la précision du modèle classifieur pour 7 classes
Figure 30 – Matrice de confusion du modèle classifieur pour 7 classes
Conclusion sur les résultats des trois modèles
Les résultats obtenus avec ces modèles sont parfaits Les tests sont directement effectués sur Gazebo et les détections sont exactes Comme montré dans les matrices de confusions des modèles, les taux de détec- tions sont satisfaisants avec 99,98 % Nous avons fait les tests en temps réel avec des commandes de mêmes normes que les commandes qui ont servis à générer les données des bases.
Nous nous sommes aperỗus que les dộfauts venaient des commandes car suite à d’autres tests réalisés avec les anciens fichiers bag, les résultats étaient mauvais Ce sont bien les commandes qui étaient différentes pour les donnộes d’entraợnement et les donnộes tests et non de la mauvaise for- mation des modèles ou non plus, des mauvaises manipulations du robot lors des tests Alors ayant compris les défauts et les erreurs auxquelles nous étions confrontés, nous pourrions alors générer des nouvelles bases avec nos 20 classes et reconstituer nos modèles.
20 Les modốles conỗus avec la nouvelle base et les rộsultats
Nous avons généré une nouvelle base avec les 20 classes Cette fois- ci, nous avons tenu compte des commandesV et W car presque tous les rộsidus(variables) en dộpendaient Les entraợnements ont ộtộ effectuộs.
Nous montrons sur les figures qui suivent, les taux de pertes, les taux de précisions et les matrices obtenues :
Le modèle DBN
Figure 31 – Courbe de la fonction de perte du DBN pour 20 classes
Figure 32 – Courbe de la précision du modèle DBN pour 20 classes
Figure 33 – Matrice de confusion du modèle DBN pour 20 classes
Le modèle Encodeur_Classifieur
Figure 34 – Courbe de la fonction de perte de l’E_C pour 20 classes
Figure 35 – Courbe de la fonction de précision de l’E_C pour 20 classes
Figure 36 – Matrice de confusion du modèle E_C pour 20 classes
Classifieur
Figure 37 – Courbe de la fonction de perte du classifieur pour 20 classes
Figure 38 – Courbe de la précision du modèle classifieur pour 20 classes
Figure 39 – Matrice de confusion du modèle du classifieur pour 20 classes
Conclusion sur les nouveaux modèles créés
Les nouveaux modèles créés donnent de bon résultats sauf certaines classes Après études, nous avons trouvé que certaines classes groupées séparément et isolées du lot marchaient bien et sont très bien détectées.
Aussi nous ne pouvons donner le meilleur algorithme Certaines classes comme les cas dedrift, de gps et de dégradations, étaient bien classées dans le réseau Encodeur_Classifieur, et que du côté du DBN et du Clas- sifieur simple, nous n’avions pas les mêmes résultats Par contre, toutes les 20 classes réunies, les prédictions ne donnent pas raison à tous les ré- seaux sur toutes les classes La meilleur solution est de gérer séparément les classes si nous voulons conserver tous les cas de pannes ou de les ré- duire pour avoir un seul algorithme sur un nombre réduit de classes bien détectable par un modèle de réseau de neurones spécifiques.
Cinquième partie CHAPITRE : CONCLUSIONS ET PERSPECTIVES
Conclusion
Ce stage aborde le problème du diagnostic de pannes de robot mo- biles :
Nous avons commencé par présenter le problème dans sa forme et les idées autour amenant aux solutions et à leur réalisation.
Dans le processus du travail demandé menant à construire des al- gorithmes de réseaux de neurones pour diagnostiquer les pannes, nous avons effectué des recherches dans le sens de l’existant dans le domaines de la robotique et de l’intelligence artificielle Ce sont ces deux domaines qui ont coiffés notre travail surtout dans le sens des approches de solu- tions.
Le travail concernant des données provenant des capteurs, les com- binaisons de données et d’équations de mesures liées aux modes de fonc- tionnement et aussi à l’environnement, il s’est donc principalement foca- liser sur les types de données qui étaient numériques ou précisément des données de types flottantes.
Les algorithmes conỗus sur base de traitement des donnộes numộ- riques, ont permis aux supports matériels de pouvoir faire les traitements avec des temps relativement moins longs comparativement au temps qu’il aurait fallu pour des données de type images.
Les cas de fonctionnements qui concernaient notre projet ont été définis dans un cadre bien précis Les pannes sont définies suivant des cas de pannes réelles et dont l’intervention est bien particulière Ces cas peuvent être plus ou moins différents dans un autre cadre mais cela reste le même procédé de réalisation, d’analyse et de traitement pour arriver aux solutions Dans notre cadre, les pannes sont axées sur le robot sans tenir compte de l’impact direct et en temps réel de l’environnement Ces pannes visent spécialement les composants du robot.
Nous avons accompli dans ce travail, des comparaisons d’algorithmes de réseaux de neurones Ces comparaisons ont eu pour buts de nous éclai- rer sur nos variables ainsi que sur les modèles Elles nous ont également permis de mener à bien notre travail, de faire de bonnes manipulations du côté des données et aussi du côté des algorithmes et surtout d’avoir des certitudes dans les résultats obtenus.
Après plusieurs tests effectués, après plusieurs normalisations par des critères bien choisis qui ont permis d’avoir de bons modèles et surtout d’avoir les données qu’il faut, nous avons eu des résultats satisfaisants qui peuvent être appliquées dans plusieurs domaines autre que celui de la ro- botique en vue de détecter des pannes ou des anomalies ou également des fraudes en se basant sur des données numériques.
Notons que le but dans notre travail est de diagnostiquer une panne sur une ligne de données ou sur un flux de données d’une certaines lignes de données définies.
Les perspectives
Bien que les résultats soit satisfaisants avec de bonnes détections, nous envisageons en perspectives pouvoir diagnostiquer plusieurs cas de pannes simultanément Notons que nos algorithmes ont cette capacité mais nous avons suivi l’objectif du projet qui était la détection d’un cas de panne et non de plusieurs cas simultanément.
Aussi un second point serait de voir plus loin avec plus de pannes liées à l’environnement direct Cela nous donnera plus de cas de pannes à étudier et plus de travail en tenant compte de plus de paramètres internes comme externe selon l’environnement.
Outre notre satisfaction sur les résultats obtenus, il reste des amé- liorations à faire sur l’ensemble de nos résultats par rapport à nos algo- rithmes et aussi du côté de la gestion de nos données Ces améliorations peuvent nous pousser à des ajouts de variables ou de diminutions de cas de pannes en vue d’élargir la marge des valeurs de nos données et cou- vrir des cas extrêmes de fonctionnements du robots Également revoir nos algorithmes pour prendre plusieurs types de données de différentes commandes avec une marge assez grande et pouvoir mettre en place des modèles qui généralisent au mieux tous les cas de fonctionnement.
[1] (Dan Simon, Optimal State Estimation : Kalman, H Infinity, and Nonlinear Approaches, John Wiley and Sons, Inc 1st Edition, (2006)
[2] Y LeCun, F.J Huang, L Bottou, (2004), Learning methods for generic object recognition with invariance to pose and lighting, in : Proceedings of IEEE Computer Society Conference on Computer Vision and Pattern Recognition, CVPR, vol 2, pp 97–104
[3] (N Jaitly, G Hinton, (2011), Learning a better representation of speech soundwaves using restricted Boltzmann machines, in : Proceedings of IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP), pp 5884–5887.
[4] T.N Sainath, B Kingsbury, G Saon, H Soltau, A.r Mohamed, G Dahl,
B Ramabhadran, (2015), Deep convolutional neural networks for large-scale speech tasks, Neural Network 64, 39–48
[5] A.M Abdel Zaher, A.M Eldeib, 2016, Breast cancer classication using deep belief networks, Exp Syst Appl 46, 139–144
[6] (S Li, Z.Q Liu, A Chan, (2014), Heterogeneous multi-task 16 learning for human pose estimation with deep convolutional neural network, in : Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition Workshops, pp 482–489
[7] Y Chen, X Yang, B Zhong, S Pan, D Chen, H Zhang, (2016), Cnn- tracker : Online discriminative object tracking via deep convolutional neural network, Appl Soft Comput 38, 1088–1098.
[8] (Qu Xing-yu ; Zeng Peng ; Fu Dong-dong ; Xu Chengcheng, (2017), Autoencoder-based fault diagnosis for grinding system, 29th Chinese Control And Decision Conference (CCDC))
[9] Geoffrey Hinton, (2007), NIPS Tutorial on Deep Belief Nets, CanadianInstitute for Advanced Research Department of Computer ScienceUniversity of Toronto, Preliminary version of 2007 NIPS Tutorial
[10] Hinkelmann, Knut, (2016), "Neural Networks, p 7", University of Applied Science North Algorithmes western Switzerland
[11] P Baldi P Sadowski, D Whiteson, (2014), Searching for exotic particles in high-energy physics with deep learning, Nature Communi- cations volume 5, Article number : 4308
[12] Feng Jia, Yaguo Lei , Liang Guo, Jing Lin, Saibo Xing, (2017), A neural network constructed by deep learning technique and its application to intelligent fault diagnosis of machines, Volume 272, 10 January 2018, Pages 619-628
[13] Feiya Lv, Chenglin Wen, Zejing Bao, Meiqin Liu, (2016), Fault diagno- sis based on deep learning, 2016 American Control Conference (ACC)
[14] Rongyu Li, Ling Qin, Jianhua Ni, Xiao jian Yang, (2017), Fault De- tection and Diagnosis Based on KPCACDBNs Model, Project supported by the Natural Science Foundation of the Jiangsu Higher Education Institutions of China (Grant No 12KJB510007
[15] Shao, Haidong, Jiang, Hongkai, Zhao, Huiwei, Wang, Fuan, 2017, A novel deep autoencoder feature learning method for rotating machinery fault diagnosis, H Shao et al / Mechanical Systems and Signal Proces- sing 95 (2017) 187–204
[16] Qu Xing-yu ; Zeng Peng ; Fu Dong-dong ; Xu Chengcheng ; (2017), Autoencoder-based fault diagnosis for grinding system, 29th Chinese Control And Decision Conference (CCDC)
[17] Prasanna Tamilselvan,PingfengWang, (2013), Failure diagnosis using deep belief learning based health state classification, P Tamilselvan, P.
Wang / Reliability Engineering and System Safety 115, 124–135
[18] Gavneet Singh Chadha, Andreas Schwung, (2017), Comparison of deep neural network architectures for fault detection in Tennessee Eastman process, 22nd IEEE International Conference on Emerging Technologies and Factory Automation (ETFA)
[19] Pei Cao ; Shengli Zhang ; Jiong Tang, (2018), Preprocessing-Free GearFault Diagnosis Using Small Datasets With Deep Convolutional NeuralNetwork-Based Transfer Learning, Special volume 6, 2018, P 26241 –26253
CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập - Tự do - Hạnh phúc ĐƠN XIN BẢO VỆ LUẬN VĂN THẠC SĨ DEMANDE DE SOUTENANCE DE MEMOIRE
Kính gửi: Viện Quốc tế Pháp ngữ - Đại học Quốc gia Hà Nội À: L’Institut Francophone International – L’Université Nationale du Vietnam,
Tên tôi là (Je, soussigné): APEDO …….KODZO SITSOFE DEGNON.
Sinh ngày (Date de naissance): 12 / 05 / 1986 , là học viên cao học của Viện Quốc tế Pháp ngữ (étudiant de master de l’Institut Francophone International). Đến nay, tôi đã hoàn thành các môn học và luận văn thạc sĩ với đề tài Mô hình Học sâu cho chuẩn đoán lỗi của robot di động
(Actuellement, j’ai fini tous les cours et le mémoire avec le sujet : Diagnostic de pannes de robots mobiles par ô deep learning ằ
Chuyên ngành (Option de spécialité): Hệ thống thông minh và Đa phương tiện (Système Intelligents et Multimedia)
Mã số chuyên ngành đào tạo (Code de la branche) : 8480201.02 Được sự đồng ý của giáo viên hướng dẫn, tôi làm đơn này đề nghị Viện trưởng Viện Quốc tế Pháp ngữ cho phép tôi bảo vệ luận văn trước Hội đồng đánh giá luận văn thạc sĩ (Après l’accord du directeur de mémoire, j’ écris cette demande pour que le
Directeur de l’Institut Francophone International me permette de soutenir mon mémoire devant le Jury d’évaluation du mémoire).
Tôi xin cam đoan danh dự và chịu trách nhiệm về kết quả nghiên cứu trung thực của luận văn (J’atteste sur l’honneur et la responsabilité du résultat honnête de ce mémoire)
Xin trân trọng cảm ơn (Je vous remercie beaucoup)./.
Hà N ộ i, ngày 29 tháng 11 n ă m 2018 Ý kiến của giáo viên hướng dẫn Avis de l’encardrant PhD Nicolas TRICOT
JE, SOUSSIGNÉ APEDO Kodzo Sitsofe Degnon
THÔNG TIN VỀ LUẬN VĂN THẠC SĨ
1 Họ và tên học viên: APEDO Kodzo Sitsofe Degnon
5 Quyết định công nhận học viên số: 3631 ngày 11/11/2016 của Giám đốc Đại học Quốc gia Hà Nội
6 Các thay đổi trong quá trình đào tạo: Không
7 Tên đề tài luận văn: Mô hình H ọ c sâu cho chu ẩ n đ oán l ỗ i c ủ a robot di độ ng (tiếng Pháp:
Diagnostic de pannes de robots mobiles par "deep learnig")
8 Chuyên ngành: H ệ th ố ng thông minh và Đ a ph ươ ng ti ệ n
9 Mã số chuyên ngành đào tạo: 8480201.02
10 Cán bộ hướng dẫn khoa học:
Nicolas TRICOT, nghiên c ứ u viên, IRSTEA clermont-ferrand, Pháp
11 Tóm tắt các kết quả của luận văn:
Hoạt động đúng của mọi thiết bị điện tử hoặc cơ khí được dựa trên thời gian dài hơn hoặc ngắn hơn tùy thuộc vào tiện ích và việc sử dụng Trong quá trình sử dụng, những lỗi hoặc trục trặc có thể phụ thuộc vào một hoặc nhiều thành phần cùng một lúc Những lỗi này thường được ghi nhận hay không sau sự cố; và việc phát hiện nguyên nhân chính xác thường rất khó khăn Trong luận án này, chúng tôi mô tả cách chúng tôi tiến hành nghiên cứu để chẩn đoán những robot di động thông qua mạng thần kinh Nhờ vào cảm biến trên robot, trong một mô phỏng trên Gazebo, chúng tôi tạo ra 34 biến được coi là cần thiết, cùng xác định trạng thái hoạt động của rô bốt Chúng tôi có tổng cộng
20 trường hợp hoạt động, trong đócó một trường hợp bình thường mà không bị lỗi Thuật toán tìm hiểu đã kích hoạt các đặc tính lúc đầu và đầu ra của bộ mã hóa được đưa vào đầu vào của một Bộ phân loại để có các lớp trong đầu ra Kết quả này mô tả trạng thái của robot theo dữ liệu nhận được Việc phát hiện được thực hiện trong thời gian thực với độ chính xác cao, cho thấy hiệu suất của mô hình được thiết kế.
12 Những hướng nghiên cứu tiếp theo:
Nghiên cứu thư mục trên các kiến trúc hiện có khác nhau của các phương pháp học
Tổng hợp các kết quả của nghiên cứu này và phân loại các kiến trúc theo khả năng của chúng để trả lời vấn đề của chúng ta (ứng dụng vào phương trình dự phòng phân tích và bộ lọc Kalman, phát hiện sự vượt ngưỡng, tính toán thời gian thực, );
Áp dụng (các) kiến trúc được chọn trên phần dư được tạo ra;
Kết hợp các kết quả của phương pháp với các kết quả thu được bằng các phương pháp chẩn đoán dựa trên mô hình;
Đánh giá và xác nhận các kết quả lý thuyết thu được Công việc này sẽ được thực hiện, lúc đầu, trong mô phỏng theo ROS, (Gazebo).
13 Khả năng ứng dụng trong thực tiễn: Áp dụng các mô hình cho tất cả các robot, cảm biến và máy móc công nghiệp.
14 Các công trình đã công bố có liên quan đến luận văn: Chẩn đoán lỗi robot di động với việc học sâu để bảo trì dự đoán (Trong bản nháp)
1 Nom et Prenoms: APEDO Kodzo Sitsofe Degnon
4 Lieu de Naissance: Lomé - TOGO
5 Promotion: 3631 le 11/11/2016 Université National de Hanoi
6 6 Changement dans le processus de formation: NON
7 Sujet du stage: Diagnostic de pannes de robots mobiles par "deep learnig")
8 Programme: Système Intelligent et Mulitimédia
Nicolas TRICOT, chargé de recherche, IRSTEA clermont-ferrand, France
11 Résumé des résultats du stage:
Le bon fonctionnement de tout appareil électronique ou mécanique repose sur une durée plus ou moins longue suivant l’utilité et l’utilisation Au cours de leur utilisation surviennent des pannes ou des dysfonctionnements qui peuvent dépendre d’un ou plusieurs éléments simultanément Ces pannes sont souvent constatées ou pas après dysfonctionnement; et la détection de la cause exacte est souvent difficile Dans ce mémoire, nous décrivons comment nous avons mené nos recherches pour le diagnostic de pannes de robots mobiles grâce aux réseaux de neurones À l’aide des capteurs qui sont sur le robot, dans une simulation sur Gazebo, nous générons 34 variables jugées nécessaires qui, ensemble définissent un état de fonctionnement du robot
Nous avons au total 20 cas de fonctionnements, dont un cas d’état normal sans panne L’algorithme apprend pour avoir les tiré les caractéristiques dans un premier temps et la sortie de l’encodeur est mise en entrée d’un Classifieur pour avoir les classes en sortie Ce résultat décris l’état du robot suite aux donnộes reỗu La dộtection se fait en temps rộel avec une trốs bonne prộcision, montrant la performance du modốle conỗu.
Faire une étude bibliographique sur les différentes architectures existantes de méthodes de l’apprentissage profond ;