IMA3/IMA4 2020/2022 P5 : Différence entre versions

De Wiki de Projets IMA
(Introduction)
(Présentation générale)
Ligne 1 : Ligne 1 :
= <div class="mcwiki-header" style="border-radius: 15px; padding: 15px; font-weight: bold; text-align: center; font-size: 80%; background: #C2E5FF; vertical-align: top; width: 98%;"> '''Présentation générale''' </div> =
+
= <div class="mcwiki-header" style="border-radius: 15px; padding: 15px; font-weight: bold; text-align: center; font-size: 80%; background: #C2E5FF; vertical-align: top; width: 98%;"> '''Introduction et cahier des charges''' </div> =
  
==Contexte==
+
==Introduction==
  
==Introduction==
+
L’objectif de ce projet est la mise en place d’algorithmes de machine Learning afin de diagnostiquer l’état de machines industrielles. Nous travaillerons sur ce projet durant 2 semestres.
 +
Durant le premier semestre, nous avions comme objectifs d’acquérir la maîtrise des différentes librairies primordiales pour traiter les données en machine Learning, ainsi que d’étudier et d’utiliser certains algorithmes basiques (régression linéaire, logistique, Bayes) sur des datasets que nous traiterons nous même.
 +
Pour ce qui est du second semestre, notre objectif était de concrétiser les connaissances acquises durant le premier semestre. Nous avons donc essayé de créer notre propre dataset à l’aide des matériels mis à notre disposition, de la prétraiter et d’y appliquer différents algorithmes de Machine Learning en critiquant les résultats.
  
L’objectif de ce projet est la mise en place d’algorithmes de machine learning afin de diagnostiquer l’état de machines industrielles. Nous travaillons sur ce projet durant 2 semestres. Durant ces 2 premiers semestres, nous avions comme objectifs d’acquérir la maîtrise des différentes librairies primordiales pour traiter les données en machine learning, ainsi que d’étudier et d’utiliser certains algorithmes basiques (régression linéaire, logistique, Bayes) sur des datasets que nous traiterons et récupérerons nous même grâce au matériel mis à notre disposition.
+
Le machine Learning pour la détection de défaut s'inscrit parfaitement dans le contexte scientifique actuel, notamment grâce à l’industrie 4.0.
 +
En effet, cette nouvelle industrie fait apparaître des systèmes communicants (l’IOT : Internet Of Things) interconnectés les uns entre les autres. Ces différents systèmes peuvent êtres nécessaires les uns, les autres afin de réaliser une tâche complexe telle que l'usinage de pièces. Le système devient dès lors potentiellement extrêmement fragile aux pannes.
  
==Répartition des tâches==
+
Le machine Learning a pour but de pouvoir détecter, et localiser les pannes, voir les futures pannes potentielles afin de pouvoir dans un premier temps prévenir un opérateur. Mais il peut aussi potentiellement permettre au système de continuer de tourner, en attendant un technicien. Le machine Learning peut donc aussi permettre à une chaîne de production de continuer de tourner par l’envoie d’un autre robot par exemple, le temps que la panne soit réparée.
  
===Semestre 6===
+
Dans le schéma ci-dessous nous avons un exemple de système de système.
  
Au début, comme le sujet était flou pour une majorité d’entre nous, nous nous sommes documentés tous ensemble sur différents livres à propos du machine learning et avons compris l’importance des librairies associées au machine learning.
+
[[Fichier:intro1.png|500px|thumb|center|Schéma d'un système de systèmes]]
Après s’être suffisamment documenté, 3 d’entre nous devaient réaliser un rapport sur les différentes librairies (Numpy pour Loïc, Pandas pour Tom, Seaborn pour Aymen), celui-ci se devait d’être assez explicite afin que les autres n’ayant pas travaillé sur ces librairies puissent acquérir des connaissances facilement en le lisant, Florian et Antoine, quant à eux, se sont occupées d’implémenter et d’analyser une première méthode de machine learning, la régression linéaire, et d’en effectuer un rapport.
 
Ensuite, une partie d’entre nous s’est intéressée à d’autres algorithmes de machine learning (Bayes pour Loïc et régression logistique pour Antoine) tandis que Florian et Tom se sont intéressées à diverses méthodes de pré-traitement de données (méthode SMOTE pour l’oversampling) à appliquer sur une base de données existantes et Aymen s’est occupé de la partie évaluation de l’efficacité d’un algorithme (avec notamment l’importance de la matrice de confusion).
 
  
===Semestre 7===
+
Il y a deux cas de figure:
Durant ce semestre, certains d’entre nous (Aymen, Loïc et Florian) se sont documentés sur les différentes méthodes pour créer notre propre dataset afin de les mettre en place ultérieurement pendant que d’autres (Tom et Antoine) se renseignaient sur différentes méthodes de pré-traitement des datasets (random,...) afin de les réaliser sur la dataset créée.
+
* Un autre système peut être envoyé pour remplacer le système 4.
 +
* Les systèmes 1 et 2 peuvent permettre à la chaîne de production de continuer de tourner
 +
* La chaîne de production est hors service jusqu'à réparation.
  
==Cahier des charges==
+
==Cahier de charges==
  
 
'''Ressources disponibles :'''
 
'''Ressources disponibles :'''
  
Livres sur le machine learning
+
* Livres sur le machine learning  
 +
* Bases de données (afin d'appliquer divers algorithmes de machine learning) que nous prendrons sur ces sites : [https://www.kaggle.com/datasets] et [https://archive.ics.uci.edu/ml/datasets.php]
 +
* Librairies Python (Scikit-learn, Pandas, Numpy, Seaborn, Matplotlib)
 +
* Google Colab
 +
* Matlab (version étudiante)
 +
 
 +
'''Objectifs poursuivis :'''
 +
 
 +
* Détecter les dysfonctionnements de systèmes mécatroniques (par exemple les robots Khepera, Robotino…), grâce au machine learning.
 +
* Apprendre à implémenter différentes méthodes machine learning .
  
Bases de données (afin d'appliquer divers algorithmes de machine learning) que nous prendrons sur ces sites :
+
'''Profil du public cible :'''
https://www.kaggle.com/datasets
+
* Secteur mécatronique
https://archive.ics.uci.edu/ml/datasets.php
+
* Entreprises disposant d'ingénieurs pour maintenir le système informatique opérationnel
 +
* Entreprises utilisant des machines dans le secteur public.
  
Librairies Python (Scikit-learn, Pandas, Numpy, Seaborn, Matplotlib)
+
'''Analyse des besoins :'''
 +
* L’industrie a de plus en plus besoin du machine learning pour détecter les erreurs des systèmes. En effet, cette technologie devient indispensable pour les industriels, notamment afin d'accroître la productivité et l’efficacité des systèmes industriels.
 +
* Le programme peut ne pas être aussi rapide et optimisé en espace mémoire que d'autres programmes, nous visons l’efficacité de notre algorithme plutôt que la rapidité.
  
'''Objectifs poursuivis :'''
+
= <div class="mcwiki-header" style="border-radius: 15px; padding: 15px; font-weight: bold; text-align: center; font-size: 80%; background: #C2E5FF; vertical-align: top; width: 98%;"> '''Librairies''' </div> =
  
Détecter les dysfonctionnements de systèmes mécatroniques (par exemple les robots Khepera, Robotino…), grâce au machine learning.
+
En Machine Learning, il est très important, voire primordial, de savoir manipuler les différentes librairies mises à notre disposition afin de visualiser, traiter nos différentes dataset ou même appliquer les différents algorithmes de machine Learning.
 +
Durant les premières semaines de notre projet, nous avons donc appris à utiliser ces différentes librairies nécessaires pour le machine Learning, telles que Numpy, Seaborn, Panda, Matplotlib, Scikit-learn... Nous allons dans un premier temps nous intéresser à l'importation des différentes bibliothèques puis résumer les commandes importantes de ces différentes librairies.
  
Apprendre à implémenter différentes méthodes machine learning .
+
Ces différentes librairies ne sont pas incluses de base dans Python, il est donc nécessaire de les ajouter à Python puis à notre programme.
  
'''Profil du public cible :'''
+
Nous avons donc choisi d'utiliser google colab car ces librairies y sont déjà installées (et aussi pratique pour travailler à plusieurs sur un même code).
 +
Puis nous devons importer ces bibliothèques au début de notre programme.
  
Secteur mécatronique
+
Attention : Plusieurs bibliothèques peuvent avoir la même commande mais avec des significations différentes, comme par exemple la commande randint du module numpy et celle du module random et cela peut conduire à des erreurs.
  
Entreprises disposant d'ingénieurs pour maintenir le système informatique opérationnel
 
  
Entreprises utilisant des machines dans tous les secteurs
+
Afin de pallier à ces problèmes nous apporterons nos librairie au début de nos programmes comme suit :
  
'''Analyse des besoins :'''
+
[[Fichier:librairies1.png]]
  
L’industrie a de plus en plus besoin du machine learning pour détecter les erreurs des systèmes. En effet, cette technologie devient indispensable pour les industriels, notamment afin d'accroître la productivité et l’efficacité des systèmes industriels. Notamment dans le cadre de l'industrie 4.0.
+
Ici le np permet de dire que lorsque nous utilisons np.array alors nous utilisons la commande array () contenu dans la bibliothèque Numpy.
  
Le programme peut ne pas être aussi rapide et optimisé en espace mémoire que d'autres programmes, nous visons l’efficacité de notre algorithme plutôt que la rapidité.
+
Ceci nous permettra d’utiliser en simultané différentes librairies, toutes les bibliothèques seront importées selon ce schéma.
 +
Nous allons par la suite, nous intéresser à différentes commandes incluses dans ces librairies.
  
 
==Recherche bibliographique==
 
==Recherche bibliographique==

Version du 19 janvier 2022 à 15:41

Introduction et cahier des charges

Introduction

L’objectif de ce projet est la mise en place d’algorithmes de machine Learning afin de diagnostiquer l’état de machines industrielles. Nous travaillerons sur ce projet durant 2 semestres. Durant le premier semestre, nous avions comme objectifs d’acquérir la maîtrise des différentes librairies primordiales pour traiter les données en machine Learning, ainsi que d’étudier et d’utiliser certains algorithmes basiques (régression linéaire, logistique, Bayes) sur des datasets que nous traiterons nous même. Pour ce qui est du second semestre, notre objectif était de concrétiser les connaissances acquises durant le premier semestre. Nous avons donc essayé de créer notre propre dataset à l’aide des matériels mis à notre disposition, de la prétraiter et d’y appliquer différents algorithmes de Machine Learning en critiquant les résultats.

Le machine Learning pour la détection de défaut s'inscrit parfaitement dans le contexte scientifique actuel, notamment grâce à l’industrie 4.0. En effet, cette nouvelle industrie fait apparaître des systèmes communicants (l’IOT : Internet Of Things) interconnectés les uns entre les autres. Ces différents systèmes peuvent êtres nécessaires les uns, les autres afin de réaliser une tâche complexe telle que l'usinage de pièces. Le système devient dès lors potentiellement extrêmement fragile aux pannes.

Le machine Learning a pour but de pouvoir détecter, et localiser les pannes, voir les futures pannes potentielles afin de pouvoir dans un premier temps prévenir un opérateur. Mais il peut aussi potentiellement permettre au système de continuer de tourner, en attendant un technicien. Le machine Learning peut donc aussi permettre à une chaîne de production de continuer de tourner par l’envoie d’un autre robot par exemple, le temps que la panne soit réparée.

Dans le schéma ci-dessous nous avons un exemple de système de système.

Schéma d'un système de systèmes

Il y a deux cas de figure:

  • Un autre système peut être envoyé pour remplacer le système 4.
  • Les systèmes 1 et 2 peuvent permettre à la chaîne de production de continuer de tourner
  • La chaîne de production est hors service jusqu'à réparation.

Cahier de charges

Ressources disponibles :

  • Livres sur le machine learning
  • Bases de données (afin d'appliquer divers algorithmes de machine learning) que nous prendrons sur ces sites : [1] et [2]
  • Librairies Python (Scikit-learn, Pandas, Numpy, Seaborn, Matplotlib)
  • Google Colab
  • Matlab (version étudiante)

Objectifs poursuivis :

  • Détecter les dysfonctionnements de systèmes mécatroniques (par exemple les robots Khepera, Robotino…), grâce au machine learning.
  • Apprendre à implémenter différentes méthodes machine learning .

Profil du public cible :

  • Secteur mécatronique
  • Entreprises disposant d'ingénieurs pour maintenir le système informatique opérationnel
  • Entreprises utilisant des machines dans le secteur public.

Analyse des besoins :

  • L’industrie a de plus en plus besoin du machine learning pour détecter les erreurs des systèmes. En effet, cette technologie devient indispensable pour les industriels, notamment afin d'accroître la productivité et l’efficacité des systèmes industriels.
  • Le programme peut ne pas être aussi rapide et optimisé en espace mémoire que d'autres programmes, nous visons l’efficacité de notre algorithme plutôt que la rapidité.

Librairies

En Machine Learning, il est très important, voire primordial, de savoir manipuler les différentes librairies mises à notre disposition afin de visualiser, traiter nos différentes dataset ou même appliquer les différents algorithmes de machine Learning. Durant les premières semaines de notre projet, nous avons donc appris à utiliser ces différentes librairies nécessaires pour le machine Learning, telles que Numpy, Seaborn, Panda, Matplotlib, Scikit-learn... Nous allons dans un premier temps nous intéresser à l'importation des différentes bibliothèques puis résumer les commandes importantes de ces différentes librairies.

Ces différentes librairies ne sont pas incluses de base dans Python, il est donc nécessaire de les ajouter à Python puis à notre programme.

Nous avons donc choisi d'utiliser google colab car ces librairies y sont déjà installées (et aussi pratique pour travailler à plusieurs sur un même code). Puis nous devons importer ces bibliothèques au début de notre programme.

Attention : Plusieurs bibliothèques peuvent avoir la même commande mais avec des significations différentes, comme par exemple la commande randint du module numpy et celle du module random et cela peut conduire à des erreurs.


Afin de pallier à ces problèmes nous apporterons nos librairie au début de nos programmes comme suit :

Librairies1.png

Ici le np permet de dire que lorsque nous utilisons np.array alors nous utilisons la commande array () contenu dans la bibliothèque Numpy.

Ceci nous permettra d’utiliser en simultané différentes librairies, toutes les bibliothèques seront importées selon ce schéma. Nous allons par la suite, nous intéresser à différentes commandes incluses dans ces librairies.

Recherche bibliographique

  • Cours de probabilités et statistiques de l’Université Jules Vernes
  • Machine Learning with scikit-learn Quick Start Guide écrit par Kevin Jolly
  • Machine Learning algorithms - Second Edition écrit par Giuseppe Bonaccorso

Rapports et présentation

Librairies

Rapports