O slideshow foi denunciado.
Seu SlideShare está sendo baixado. ×

Rapport-du-projet CNN.docx

Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Próximos SlideShares
Deep learning
Deep learning
Carregando em…3
×

Confira estes a seguir

1 de 9 Anúncio

Mais Conteúdo rRelacionado

Semelhante a Rapport-du-projet CNN.docx (20)

Mais recentes (20)

Anúncio

Rapport-du-projet CNN.docx

  1. 1. Rapport du projet Réalisée par : Khalil ISMAIL Classe : BD-BI 3-2 Introduction : L'intelligence artificielle est l'utilisation de méthodes et de techniques pour simuler l'intelligence humaine, tandis que l'apprentissage automatique est un mécanisme qui permet à un système d'apprendre de l'expérience et de continuer à améliorer ses compétences et sa capacité de prise de décision. Il existe deux catégories d'algorithmes d'apprentissage automatique :supervisés et non supervisés. Dans l'industrie, l'apprentissage automatique est utilisé dans divers domaines tels que le diagnostic médical et le traitement d'image. I. Contexte du projet et travail demandé : Le projet réalisé dans la matière "Intelligence artificielle" consiste à créer un classificateur basé sur un réseau de neurones convolutif (CNN). Ce type de réseau de neurones est une méthode d'apprentissage profond qui permet de classer les 4 catégories d'objets du jeu de données fourni : chats, chiens, chevaux et humains. Le but est de développer un modèle capable de reconnaître ces différentes catégories d'objets en utilisant des techniques d'apprentissage automatique. II. Le réseau de neurones convolutif CNN : 1. La méthode d’apprentissage profond « Deep Learning » : L'apprentissage profond (ou Deep Learning) est un type d'intelligence artificielle dérivé du machine Learning (apprentissage automatique) où la machine est capable d'apprendre par elle-même. Il s'appuie sur un réseau de neurones artificiels inspiré par le cerveau humain, composé de plusieurs couches de neurones, chacune recevant et interprétant les informations de la couche qui la précède. Il existe plusieurs types d'algorithmes utilisés en apprentissage profond, chacun ayant ses propres spécificités et applications.
  2. 2. Les algorithmes les plus couramment utilisés :  les réseaux de neurones convolutifs (CNN)  réseaux de neurones récurrents (RNN)  réseaux de fonction de base radiale (RBFN)  réseaux de mémoire à long et court terme (LSTM)  réseaux adversariaux génératifs (GAN) et machines de Boltzmann restreintes (RBM). Dans notre projet, nous nous intéressons aux réseaux de neurones convolutifs (CNN) pour classer les catégories d'objets fournies dans le Dataset. 2. Le réseau de neurones convolutif : Un « convolutional neural network » (CNN) est un type de réseau neuronal artificiel utilisé dans le domaine de la reconnaissance et le traitement d’images et il est spécifiquement développé pour traiter les données de pixels. Les réseaux de neurones convolutives sont de puissants systèmes de traitement d’images, d’intelligence artificielle qui utilisent un apprentissage approfondi pour effectuer des tâches à la fois génératives et descriptives, en incluant le Machine Vision qui aide à reconnaitre les images et les vidéos. Les CNN ou ConvNets, sont constitués d'une multitude de couches chargées de traiter et d'extraire les caractéristiques des données. Ils sont conçus pour l'analyse et la détection d'objets. Les CNN peuvent donc servir par exemple à reconnaître des images satellites, traiter des images médicales, détecter des anomalies ou prédire des séries chronologiques. III. Environnement de réalisation : 1. Jupyter Notebook :
  3. 3. Jupyter Notebook est une application web qui permet de stocker et d'exécuter du code écritenPython,ainsiquedevisualiserlesrésultatsdel'exécutiondececodesousforme de graphiques, tableaux, etc. Il permetégalementdecréer et departagerdes documents interactifs quicombinent du code, des visualisations, des textes de documentation et des équations. C'est un outil populaire pour les scientifiques, les ingénieurs, les data scientists et les développeurs qui travaillent avec Python, car il permet une collaboration facile, une documentation interactive et une visualisation de données. 2. Le langage python : Python est un langage de programmation populaire pour sa flexibilité et sa facilité d'utilisation. Il est utilisé dans de nombreux domaines, notamment le développement web, le développement d'applications financières et l'automatisation de tâches. Il est également largement utilisé dans le domaine de l'apprentissage automatique, de l'apprentissage en profondeur et de l'intelligence artificielle en raison de sa facilité d'utilisation et de sa grande communauté de développeurs. Il est facilement intégrable àd'autresbibliothèquesetoutilspourleMachineLearningetleDeepLearning,cequien fait un choix populaire pour les projets de ces domaines. 3. Les bibliothèques python utilisés dans notre projet : Matplotlib est une bibliothèque Python pour créer des graphiques et des visualisations de données. Il est souvent utilisé en combinaison avec NumPy et SciPy pour visualiser les résultats de calculs scientifiques. NumPy est une bibliothèque Python pour la manipulation de tableaux multidimensionnels et des fonctions mathématiques opérant sur ces tableaux. Il est souvent utilisé en combinaison avec Matplotlib et SciPy pour des calculs scientifiques. Keras est une API de réseau de neurones écrite en Python qui facilite la création de modèles de Deep Learning. Il est exécuté sur des Framework tels que TensorFlow ou Theano. TensorFlow est une bibliothèque open source utilisée pour créer des modèles de Deep Learning et pour effectuer des tâches d'apprentissage automatique complexes. Il
  4. 4. fournit une boîte àoutils pour résoudre des problèmes mathématiques complexes avec aisance et simplicité. Il peut être utilisé avec Keras pour faciliter l'implémentation des modèles de Deep Learning. IV. Réalisation du projet : Nous devons importer toutes les librairies qui nous serons nécessaires par la suite :  Préparation des données :  Affichage du contenu de répertoire dans une liste :
  5. 5.  Entrainement du modèle : On commence toujours par créer un modèle de type Séquentiel. On crée une première couche qui va permettre d’aplatir la matrice Puis on construit nos couches cachées et la couche de sortie. On utilise les couches de convolution (Conv2D), de normalisation par lots (BatchNormalization), de max-pooling (MaxPooling2D), de découpage (Dropout) et de densité (Dense) pour construire le modèle. LapremièrecoucheConv2Davec32filtresdetaille3x3etunefonctiond'activationReLU est utilisée pour extraire des caractéristiques de l'image d'entrée de taille 100x100x3. La deuxième couche Conv2D avec 32 filtres de taille 3x3 et une fonction d'activation ReLU est utilisée pour extraire des caractéristiques plus profondes. La normalisation par lots est utilisée pour réduire les variations de données entre les différents lots. La couche MaxPooling2D est utilisée pour réduire la dimension de l'image en divisant par 2 les dimensions de l'image avec des pas de 2. Les deux prochaines couches sont similaires àla première et ladeuxième couche, mais avec 64 filtres cette fois-ci. La couche Flatten est utilisée pour aplatir les caractéristiques extraites en un vecteur. La couche Dropout est utilisée pour réduire l'overfitting en éteignant aléatoirement certains neurones pendant l'entraînement.
  6. 6. La dernière couche Dense avec la fonction d'activation softmax est utilisée pour effectuer la classification en utilisant les caractéristiques extraites par les couches précédentes. Une fois ces cellules exécutées, on peut faire un résumé de ce que l’on a :  Le résultat est le suivant. Cela nous permet de nous assurer qu’il n’y a pas d’erreurs.
  7. 7.  Il faut maintenant compiler le modèle : La première ligne définit le nombre d'époques pour l'entraînement à 20. La méthode compile() est utilisée pour configurer l'entraînement en spécifiant l'optimiseur Adam, la fonction de coût de la croix catégorique et les métriques d'évaluation de précision. La méthode fit_generator() est utilisée pour entraîner le modèle en utilisant un générateur de données d'entraînement (train_batches) et un générateur de données de validation (valid_batches). Le nombre de pas par époque est défini par steps_train et steps_valid respectivement. La variable history contient les informations de l'entraînement comme les valeurs de la fonction de coût et les métriques d'évaluation pour chaque époque. Les lignes suivantes calculent le temps d'entraînement en utilisant la fonction time(), puis affichent les résultats de l'évaluation de la précision en utilisant le générateur de données de validation (valid_batches) et en spécifiant le nombre de pas (steps=1).  Les époques s’exécuter l’une après l’autre.
  8. 8. L’époque (epochs) correspond au nombre de passage effectués sur les poids. Plus il y a d’époques plus l’entrainement prendra de temps mais plus le modèle sera efficace.  Suivit de l’entrainement : Maintenant que le réseau est entraîné, nous pouvons regarder l’évolution de nos performances époque après époque. Cette étape est importante. Elle permet d’abord de nous assurer que les résultats sont bons. Et elle peut aussi permettre de détecter un éventuel over-fitting.  Voici les courbes obtenues : . La courbe en bleu correspond aux données d’entraînement tandis que la courbe en orange présente les données de validation :  Si la courbe bleue suit et la courbe orange l’entraînement est bien réalisé.  Quandle modèle augmente ses performancessur lesdonnées d’entraînement, il augmente aussi ses performances sur les données de validation.
  9. 9.  Le test : Dans cette partie on a fait le test d’une image pour reconnaître la race : Conclusion : En résumé, nous avons implémenté un réseau de neurones convolutionnel en utilisant Python pour classifier des images en quatre catégories différentes (chats, chiens, chevaux et humains).

×