0% ont trouvé ce document utile (0 vote)
49 vues40 pages

Report Template

Transféré par

houssma25
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
49 vues40 pages

Report Template

Transféré par

houssma25
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Université Moulay Ismail

Ecole Supérieure de Technologie


Meknès - ESTM

PROJET CNN NLP

Spécialité : Intelligence Artificielle et


Science Données

Pokedex
(Reconnaissance des espèces de
Pokémon à l’aide des réseaux de
neurones convolutifs (CNN))

Réalisé par :
Encadré par :
M. Otmani Ilyass
Mme. El Ouazzani Rajae

Fait le 25 Mars 2023

Année universitaire 2023/2024


Remerciements

Nous tenons à exprimer notre sincère reconnaissance à notre


professeur EL Ouazzani Rajae pour son dévouement, son
expertise et sa guidance tout au long de notre apprentissage. Ses
précieux conseils et son soutien constant ont été essentiels à
notre réussite. Enfin, nous tenons à exprimer notre gratitude
envers toutes les personnes qui ont apporté leur soutien, de près
ou de loin, à notre projet. Leur contribution a été inestimable et
nous les remercions du fond du cœur pour leur aide précieuse.

I
Résumé

Le Pokedex est une encyclopédie numérique utilisée par les dresseurs de l’univers Po-
kémon pour cataloguer et identifier diverses espèces de Pokémon. Dans ce projet, nous
visons à développer un système inspiré de Pokedex utilisant des réseaux de neurones
convolutifs (CNN) pour reconnaître et classer différentes espèces de Pokémon à partir
d’images. L’objectif principal de ce projet est de créer un modèle CNN robuste capable
d’identifier avec précision les espèces de Pokémon à partir d’images. Le modèle sera formé
sur un ensemble de données contenant des images de diverses espèces de Pokémon et sera
évalué en fonction de sa capacité à classer correctement les images.

II
Table des matières

1 Introduction Generale 1
1.1 Contexte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2 Objectif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3 Cahier de Charge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3.1 Apercu du projet . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3.2 Contraintes du projet . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3.3 Rôles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.4 Outils Utilisée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.4.1 Google Collab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.4.2 Jupyter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.4.3 Kaggle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2 Analyse exploratoire des données (AED) 6


2.1 Dataset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.1.1 Portée des données : . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.1.2 Caractéristiques des ensembles de données . . . . . . . . . . . . . . 9
2.2 Analyse des données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.2.1 Importation Libraries . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.2.2 Gestion Valeurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.2.3 Data Visualisation . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.3 Outils Utilisée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.3.1 Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.3.2 Pandas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.3.3 Plotly . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.3.4 Mathplotlib . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

3 Sélection des Caractéristiques et Création des Architectures 15


3.1 Pre-Processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.1.1 Manipulation Features . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.2 Architectures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.2.1 Custom Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.2.2 AlexNet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.2.3 MobileNetV2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.2.4 Metrics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.3 Outils Utilisés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.3.1 Scikit-learn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

III
Table des matières

3.3.2 TensorFlow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.3.3 Keras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

4 Comparaison et Choix d’Architecture Final 22


4.1 Architecures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
4.1.1 Architectures Non Utilisées . . . . . . . . . . . . . . . . . . . . . . 23
4.1.2 Fractionnement Data . . . . . . . . . . . . . . . . . . . . . . . . . . 23
4.2 Parametres d’Architecure . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
4.2.1 Architecture Personnalisée . . . . . . . . . . . . . . . . . . . . . . . 23
4.2.2 AlexNet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
4.2.3 MobileNetV2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
4.3 Evaluation et Comparaison . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
4.3.1 Resultat Accuracy . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
4.4 Conclusion et Choix du Modèle . . . . . . . . . . . . . . . . . . . . . . . . 26
4.5 Problématique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
4.6 Objectif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
4.7 Vision . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
4.8 Dataset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
4.8.1 Manipulation des données . . . . . . . . . . . . . . . . . . . . . . . 28
4.8.2 Ingénierie des caractéristiques . . . . . . . . . . . . . . . . . . . . . 28
4.9 Analyse des données apprises . . . . . . . . . . . . . . . . . . . . . . . . . 28
4.9.1 Visualisation des données . . . . . . . . . . . . . . . . . . . . . . . 28
4.10 Sélection et choix architecture . . . . . . . . . . . . . . . . . . . . . . . . . 29
4.10.1 Exportation architecture . . . . . . . . . . . . . . . . . . . . . . . . 29
4.10.2 Évaluation des performances . . . . . . . . . . . . . . . . . . . . . . 29
4.10.3 Validation croisée . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4.11 Perspectives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

Bibliotheque 31

A Liens 32

IV
Table des figures

1.1 Pokedex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2 Google Collab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3 Jupyter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.4 Kaggle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2.1 Dataset sur Kaggle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8


2.2 Exemple Image Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.3 Value Count . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.4 Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.5 Plotly . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.6 Plotly . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.7 Mathplotlib . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

3.1 Custom Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17


3.2 Architecure Alex Net . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.3 MobileNetV2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.4 Scikit-Learn Logo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.5 TensorFlow Logo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.6 Keras Logo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

4.1 Précision de Custom CNN . . . . . . . . . . . . . . . . . . . . . . . . . . . 25


4.2 Précision de MobileNet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
4.3 Précision de AlexNet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

V
Liste des tableaux

1.1 Buts et objectifs du projet. . . . . . . . . . . . . . . . . . . . . . . . . . . . 3


1.2 Roles des Membres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2.1 Dataset Features + Explanation . . . . . . . . . . . . . . . . . . . . . . . . 8

VI
Liste des sigles et acronymes

ML Machine Learning

Pokémon Pocket Monster (Monstre de poche

CSV Comma-Separated Values

CV Computer Vision

CNN Convolution Neural Networks


UTF8 Unicode Transformation Format 8-bit

EDA Exploratory Data Analysis

VII
Chapitre 1

Introduction Generale

1
Chapitre 1. Introduction Generale

1.1 Contexte
Dans le vaste univers des jeux Pokémon, le Pokedex occupe une place emblématique.
Il s’agit d’un outil incontournable pour les dresseurs, leur permettant de recueillir des
informations sur les différentes espèces de Pokémon qu’ils rencontrent. Traditionnellement,
le Pokedex consiste en un appareil électronique doté d’une base de données intégrée.
Notre projet vise à recréer cette fonctionnalité en utilisant des technologies modernes de
reconnaissance d’images et de traitement de données

Figure 1.1 – Pokedex

1.2 Objectif
L’objectif principal de ce projet est de développer un système de reconnaissance de
Pokémon inspiré du Pokedex, en utilisant des réseaux de neurones convolutionnels (CNN).
Ce système devra être capable d’identifier automatiquement les différentes espèces de Po-
kémon à partir d’images fournies en entrée. Cette reconnaissance automatique permettra
aux utilisateurs de gagner du temps lors de l’identification des Pokémon et offrira une
expérience immersive similaire à celle du Pokedex dans l’univers Pokémon.

1.3 Cahier de Charge


1.3.1 Apercu du projet

2
Chapitre 1. Introduction Generale

Le projet est structuré en plusieurs étapes cruciales pour atteindre l’objectif de dé-
veloppement du système de reconnaissance de Pokémon. Ces étapes sont conçues pour
assurer une mise en œuvre méthodique et efficace du projet, en commençant par l’ins-
tallation et la configuration des outils nécessaires et en progressant vers la conception
et l’entraînement du modèle de reconnaissance. La première étape du projet implique
l’installation et la configuration des outils nécessaires à la manipulation des données et
à l’entraînement des réseaux de neurones convolutionnels. La deuxième étape consiste
à collecter un ensemble de données diversifié comprenant des images représentant diffé-
rentes espèces de Pokémon. Dans cette étape centrale du projet, un modèle de réseau de
neurones convolutionnels (CNN) est conçu et entraîné à reconnaître les différentes espèces
de Pokémon à partir des images fournies. La dernière étape du projet implique des tests
approfondis pour évaluer les performances du système de reconnaissance de Pokémon.

No. Buts Objectives Résultats opérationnels


1 Analyse Data Recherche et Manipula- Gestion des Valeurs et
tion du Dataset Choix des Caractéris-
tiques Impactant
2 Création de Modèle Choix des Modèles et Comparaison des Résul-
Test tats et Choix
3 Implémentation Recherche des Outils Utilisation API

Table 1.1 – Buts et objectifs du projet.

1.3.2 Contraintes du projet


— Contraintes de temps : Un calendrier strict doit être respecté pour les délais de
livraison.
— Contraintes de ressources humaines : Un nombre spécifique de membres d’équipe
ou de compétences est disponible.
— Contraintes techniques : Utilisation spécifique d’outils, technologies ou plateformes.
— Contraintes de qualité : Normes de qualité à respecter.
— Contraintes réglementaires : Respect des réglementations spécifiques.
— Contraintes de portée : La portée du projet est définie ou limitée.

1.3.3 Rôles

Rôle Responsabilités Assigné à


Chercheur : Mettre en œuvre des plans et Mr. Bougaillou Ibrahim
une application avec d’assu-
rance qualité pour le projet,
en identifiant les critères et les
normes de qualité à respecter.

3
Chapitre 1. Introduction Generale

Testeur/Concepteur : L’Experimentation et Test des Mr. Otmani Ilyass


differents partie du projet et
l’établissement d’un rapport
solide entre les éléments de
conception et la présentation
des informations de manière
efficace et attrayante.
Auteur : Produire un contenu écrit et Mr. Mr. Otmani Ilyass & Bou-
un code bien conçu, et organi- gaillou Ibrahim
ser et structurer le contenu de
manière logique et cohérente,
en utilisant des techniques de
rédaction claires et concises.

Table 1.2 – Roles des Membres

1.4 Outils Utilisée


1.4.1 Google Collab
Colab (ou "Colaboratory") nous a permet d’écrire et d’exécuter du code Python dans
votre navigateur avec aucune configuration requise accès gratuit aux GPU partage facile.
Colab permet à n’importe qui d’écrire et d’exécuter lecode Python de son choix par le
biais du navigateur. C’est un environnement particulièrement adapté au machine learning,
à l’analyse de données et à l’éducation.

Figure 1.2 – Google Collab

1.4.2 Jupyter
Jupyter Notebook, une plateforme interactive, permet d’écrire et d’exécuter du code
Python directement dans votre navigateur, sans nécessiter de configuration préalable. Cet
environnement offre un accès convivial et gratuit, que vous soyez étudiant, data scientist,

4
Chapitre 1. Introduction Generale

ou chercheur en intelligence artificielle. Jupyter permet à chacun de créer et d’exécuter du


code Python via une interface basée sur le navigateur. Son utilisation est particulièrement
adaptée pour des tâches telles que le machine learning, l’analyse de données, et l’éducation.

Figure 1.3 – Jupyter

1.4.3 Kaggle
Kaggle, une plateforme leader en science des données et en apprentissage automa-
tique, offre un espace collaboratif où vous pouvez écrire et exécuter du code de manière
transparente. Avec Kaggle, aucune configuration complexe n’est nécessaire. Kaggle nous
a permet de trouver notre dataset utilisée. Il est particulièrement adapté aux tâches telles
que l’apprentissage automatique, l’analyse de données et à des fins éducatives.

Figure 1.4 – Kaggle

5
Chapitre 2

Analyse exploratoire des données


(AED)

6
Chapitre 2. Analyse exploratoire des données (AED)

2.1 Dataset
Le jeu de données comprend de multiples images de chaque Pokémon de la première
génération. Avec plusieurs représentations disponibles pour chaque créature, le jeu de
données offre un inventaire visuel complet de ces personnages emblématiques avec touts
caracteristque qui existe. Du célèbre Pikachu au flamboyant Salamèche, chaque Pokémon
est capturé dans différentes poses, expressions et environnements, fournissant une res-
source riche pour l’analyse et l’exploration. Ces données diverses mettent en valeur les
caractéristiques distinctives de chaque Pokémon et offrent des insights sur leurs traits et
personnalités individuelles.
Certainly ! Below is an extended version of the table with all the columns you provided :

S/N Field Description Categories Explained


1 Name The name of each Poké- 151 Pokemon
mon in the dataset.
2 Types The primary type of each Various Pokémon types
Pokémon. such as Grass, Fire, Wa-
ter, etc.
3 Type1 The primary type of each Various Pokémon types
Pokémon. such as Grass, Fire, Wa-
ter, etc.
4 Type2 The secondary type of Additional Pokémon
each Pokémon (if appli- types such as Flying,
cable). Poison, Psychic, etc.
5 Height(m) The height of each Poké- Numerical values repre-
mon in meters. senting height.
6 Weight(kg) The weight of each Poké- Numerical values repre-
mon in kilograms. senting weight.
7 Male Pct The percentage of male Percentage values repre-
individuals among each senting male gender dis-
Pokémon species. tribution.
8 Female Pct The percentage of female Percentage values repre-
individuals among each senting female gender
Pokémon species. distribution.
9 Capt Rate The capture rate of each Numerical values repre-
Pokémon. senting capture rates.
10 ... Other features that are Explanation of additio-
not specified in the pro- nal features in the data-
vided example. set.
11 Poison Dmg Damage inflicted by Numerical values repre-
Poison-type attacks. senting damage.
12 Ground Dmg Damage inflicted by Numerical values repre-
Ground-type attacks. senting damage.
13 Flying Dmg Damage inflicted by Numerical values repre-
Flying-type attacks. senting damage.

7
Chapitre 2. Analyse exploratoire des données (AED)

14 Psychic Dmg Damage inflicted by Numerical values repre-


Psychic-type attacks. senting damage.
15 Bug Dmg Damage inflicted by Numerical values repre-
Bug-type attacks. senting damage.
16 Rock Dmg Damage inflicted by Numerical values repre-
Rock-type attacks. senting damage.
17 Ghost Dmg Damage inflicted by Numerical values repre-
Ghost-type attacks. senting damage.
18 Dragon Dmg Damage inflicted by Numerical values repre-
Dragon-type attacks. senting damage.
19 Evolutions The evolutionary stages Various stages such as
of each Pokémon. Basic, Stage 1, Stage 2,
etc.
20 Legendary Indicates whether the Binary values
Pokémon is legendary or (True/False) indica-
not. ting legendary status.

Table 2.1 – Dataset Features + Explanation

Figure 2.1 – Dataset sur Kaggle

8
Chapitre 2. Analyse exploratoire des données (AED)

2.1.1 Portée des données :


Le jeu de données couvre la sortie de la première génération de Pokémon, comprenant
au total 151 Pokémon. Ces données offrent une rétrospective complète sur la première
vague de ces créatures emblématiques, depuis leur introduction initiale. Chacun des 151
Pokémon est représenté dans le jeu de données, fournissant ainsi une vue détaillée de cette
génération fondatrice.

2.1.2 Caractéristiques des ensembles de données


Ces informations permettent une analyse approfondie des caractéristiques individuelles
de chaque Pokémon, ainsi que de leur évolution au fil du temps. En explorant ce jeu de
données, il est possible de retracer l’origine et le développement des Pokémon qui ont
captivé des millions de fans à travers le monde.

2.2 Analyse des données


Nous avons effectué une brève analyse de données exploratoires dans Python 3 en utili-
sant la bibliothèque Pandas la bibliothèque Scikit-learn et de la bibliothèque mathplotlib
pour les visualisations, etc.... Les tableaux visuels contiennent des statistiques de base
sur tous les attributs. Ces graphs comprennent un histogramme de les valeurs d’attribut,
la tendance centrale de chaque valeur d’attribut (mode pour les attributs catégoriels et
moyenne pour les attributs numériques), la dispersion des attributs les valeurs minimales
et maximales pour les attributs numériques seulement, et leur relation avec notre target
et entre eux.

2.2.1 Importation Libraries


numpy (np) : This library provides support for multidimensional arrays and matrices,
along with a variety of mathematical functions to operate on these arrays efficiently.
pandas (pd) : Pandas is a powerful library for data manipulation and analysis. It offers
data structures like DataFrame and Series, which allow for easy handling of structured
data.
matplotlib.pyplot (plt) : Matplotlib is a widely-used plotting library in Python. The
pyplot module provides a MATLAB-like interface for creating plots and visualizations.
seaborn (sns) : Seaborn is built on top of Matplotlib and provides a high-level interface
for drawing attractive and informative statistical graphics.
tensorflow (tf) : TensorFlow is an open-source deep learning framework developed by
Google. It provides tools for building and training various types of machine learning
models, including neural networks.
keras : Keras is an open-source deep learning library that provides a user-friendly interface
for building and training neural networks. It can run on top of TensorFlow, Theano, or
Microsoft Cognitive Toolkit.

9
Chapitre 2. Analyse exploratoire des données (AED)

2.2.2 Gestion Valeurs


Les valeurs manquantes dans l’ensemble de données ont été identifiées et traitées de
manière appropriée. Différentes stratégies telles que l’imputation, l’imputation par mode
ou l’élimination des instances ont été utilisées en fonction de la nature et de l’importance
des valeurs manquantes. Cet ensemble de données particulier ne contient pas d’images
manquantes, donc, Gestion des valeurs manquantes a été inutile.

2.2.3 Data Visualisation

Figure 2.2 – Exemple Image Data

Cette Figure represente des exemples d’Images qui existe dans notre data set, une
variete d’image prise d’animation, jeux, jeux de cartes, etc....

10
Chapitre 2. Analyse exploratoire des données (AED)

Figure 2.3 – Value Count

Cette Figure represente la quantite de chaque Pokemon qui existe dans notre data-
set, comme en voyant il existe un equilibre sauf des exeptions, donc cela n’influence pas
beacoup notre resultat.

2.3 Outils Utilisée


2.3.1 Python
Notre cas d’utilisation spécifique a impliqué l’utilisation des bibliothèques Python
telles que NumPy, pandas et scikit-learn au sein de l’environnement collaboratif de Kaggle,
permettant une analyse, une manipulation et une modélisation efficaces des données. Cet
espace collaboratif a facilité le partage fluide de code, de résultats et d’idées, contribuant
ainsi à une collaboration efficace et à des progrès notables dans nos projets de science des
données et d’apprentissage automatique.

11
Chapitre 2. Analyse exploratoire des données (AED)

Figure 2.4 – Python

2.3.2 Pandas
Dans notre contexte spécifique, nous avons exploité les fonctionnalités de la biblio-
thèque Python Pandas pour mener une analyse, une manipulation et une modélisation
efficaces des données. Pandas a fourni un ensemble d’outils polyvalent et convivial pour
traiter les données structurées, nous permettant d’explorer, nettoyer et transformer les
ensembles de données avec facilité. La structure DataFrame de la bibliothèque a facilité
l’organisation et la manipulation transparentes des données, tandis que ses fonctions et
méthodes ont simplifié les opérations courantes sur les données. Cette manipulation effi-
cace des données au sein du cadre de Pandas a contribué au succès de nos projets de science
des données et d’apprentissage automatique, nous permettant de prendre des décisions
éclairées et d’obtenir des insights significatifs à partir de nos ensembles de données.

Figure 2.5 – Plotly

2.3.3 Plotly
Dans notre contexte particulier, nous avons tiré parti des fonctionnalités de la biblio-
thèque Plotly en Python pour créer des visualisations graphiques interactives et infor-
matives. Plotly a offert un ensemble d’outils robustes pour la représentation visuelle des
données, permettant la création de graphiques interactifs, de diagrammes et de tableaux
de bord dynamiques. L’intégration aisée avec Python a facilité la génération de graphiques
esthétiques, tout en offrant une interactivité accrue pour explorer et comprendre les ten-
dances dans nos ensembles de données. L’utilisation de Plotly a donc été cruciale pour la

12
Chapitre 2. Analyse exploratoire des données (AED)

communication visuelle de nos résultats, contribuant ainsi à une compréhension appro-


fondie de nos projets en science des données et en apprentissage automatique.

Figure 2.6 – Plotly

2.3.4 Mathplotlib
nous avons utilisé la bibliothèque Matplotlib en Python pour créer des visualisations
graphiques claires et informatives. Matplotlib offre un ensemble complet d’outils pour la
création de graphiques statiques, de diagrammes et d’illustrations visuelles. En exploitant
les fonctionnalités de Matplotlib, nous avons pu générer des représentations visuelles de
nos données, facilitant la compréhension des structures, des tendances et des relations au
sein de nos ensembles de données. L’utilisation de Matplotlib a joué un rôle essentiel dans
la communication visuelle de nos résultats en science des données et en apprentissage
automatique, contribuant ainsi à une interprétation visuelle précise et à une présentation
efficace de nos découvertes.

Figure 2.7 – Mathplotlib

2.4 Conclusion
En résumé de cette analyse exploratoire des données (AED), nous avons examiné en
détail un jeu de données comprenant des images des Pokemons. L’analyse a été réalisée en

13
Chapitre 2. Analyse exploratoire des données (AED)

utilisant des outils tels que Python, Pandas, Plotly, permettant de visualiser des tendances
et des relations significatives entre les caractéristiques des Images.

14
Chapitre 3

Sélection des Caractéristiques et


Création des Architectures

15
Chapitre 3. Sélection des Caractéristiques et Création des Architectures

3.1 Pre-Processing
Dans cette partie, nous mentionnerons toutes les valeurs que nous avons finalement
choisi de conserver et expliquerons pourquoi et comment.

3.1.1 Manipulation Features


La décision de supprimer certaines fonctionnalités est basée sur leur forte corrélation
avec d’autres variables, dans le but d’atténuer la multicolinéarité et d’éviter des problèmes
potentiels tels que le surajustement dans le modèle prédictif. Les fonctionnalités conservées
fournissent suffisamment d’informations sans redondance. Pour les fonctionnalités suppri-
mées, la corrélation élevée suggère qu’elles fournissaient des informations similaires, et
leur suppression contribue à améliorer la généralisation et les performances du modèle.
L’analyse en composantes principales (PCA) est utilisée pour réduire davantage la dimen-
sionnalité, permettant une représentation plus rationalisée des caractéristiques retenues
et facilitant le processus de modélisation.
Les caractéristiques suivantes ont été supprimées en raison d’une forte corrélation ou
d’un impact insuffisant sur la variable cible :
1. Tous Type de Damage
2. Female Pourcentage
3. Pokemon Legendaire
La suppression de ces caractéristiques a été motivée par le souci de résoudre les pro-
blèmes de multicolinéarité et d’améliorer les performances du modèle prédictif. Le pro-
cessus décisionnel visait à conserver les variables les plus informatives et non redondantes
tout en atténuant le risque de surajustement.

3.2 Architectures
Après le prétraitement de nos données, nous avons sélectionné trois architectures
simples et bien connues pour leur efficacité dans des tâches de classification, comme nous
le détaillerons ultérieurement.

16
Chapitre 3. Sélection des Caractéristiques et Création des Architectures

3.2.1 Custom Architecture

Figure 3.1 – Custom Architecture

La fonction CustomCNN() définie une architecture de réseau neuronal convolutif per-


sonnalisée qui suit une structure classique pour la classification d’images. Elle comprend
trois paires de couches de convolution suivies de couches de max pooling pour extraire les
caractéristiques de l’image. Ensuite, les caractéristiques sont aplaties et passent à travers
des couches entièrement connectées pour effectuer la classification.
Cette architecture est la meilleure pour le projet Pokédex car elle est relative-
ment simple et efficace, adaptée à la classification d’images de Pokémons tout
en étant suffisamment légère pour être exécutée sur des appareils mobiles.

3.2.2 AlexNet

Figure 3.2 – Architecure Alex Net

17
Chapitre 3. Sélection des Caractéristiques et Création des Architectures

AlexNet est l’une des premières architectures de réseaux neuronaux convolutionnels


(CNN) à avoir connu un grand succès dans la communauté de l’apprentissage profond.
Développé par Alex Krizhevsky, Ilya Sutskever et Geoffrey Hinton, AlexNet a remporté
le défi d’ImageNet en 2012 en obtenant des performances significativement meilleures que
les méthodes existantes. Il est composé de huit couches de neurones, dont cinq couches de
convolution suivies de couches de max-pooling, et trois couches entièrement connectées.
Cette architecture est la meilleure pour le projet Pokédex en raison de sa
capacité à extraire des caractéristiques complexes des images de Pokémons,
ce qui est crucial pour une classification précise.

3.2.3 MobileNetV2

Figure 3.3 – MobileNetV2

MobileNetV2 est une architecture de réseau neuronal convolutif légère et efficace


conçue spécifiquement pour les applications sur des appareils mobiles et à faible puissance
de calcul. Développé par Google, MobileNetV2 a introduit des blocs résiduels inversés et
des couches de séparation de canal pour améliorer les performances et l’efficacité de calcul
par rapport à son prédécesseur, MobileNetV1. Cette architecture est caractérisée par sa
capacité à fournir des performances de qualité comparable à celles de réseaux plus pro-
fonds tout en maintenant une empreinte mémoire et une charge de calcul réduites.
Cette architecture est la meilleure pour le projet Pokédex en raison de sa légè-
reté et de son efficacité, ce qui la rend idéale pour être utilisée sur des appareils
mobiles tout en maintenant des performances de classification précises.

3.2.4 Metrics
Les métriques choisies, à savoir la validation croisée (validation), la précision simple
(simple accuracies) et le Loss, et les matrices de confusion, sont cruciales pour évaluer la
performance et la fiabilité d’un modèle prédictif.
La validation croisée est une technique essentielle qui permet d’évaluer la robustesse
d’un modèle en le testant sur plusieurs sous-ensembles de données. Cela garantit que

18
Chapitre 3. Sélection des Caractéristiques et Création des Architectures

le modèle généralise bien aux nouvelles données et n’est pas surajusté à un ensemble
particulier.
La précision simple, ou simple accuracies, mesure la capacité globale du modèle à
classer correctement les instances. C’est un indicateur direct de l’efficacité générale du
modèle, exprimé en pourcentage, et il est particulièrement utile pour évaluer la perfor-
mance globale du modèle.
Les matrices de confusion fournissent une vision détaillée des performances du modèle
en révélant le nombre d’instances correctement classées ainsi que les erreurs de classifica-
tion. Elles sont particulièrement utiles pour évaluer la capacité du modèle à distinguer les
différentes classes et à identifier les faux positifs et les faux négatifs.

3.3 Outils Utilisés


3.3.1 Scikit-learn
Nous avons utilisé Scikit-Learn, une bibliothèque d’apprentissage automatique en Py-
thon, pour la sélection des caractéristiques.Sa flexibilité et sa facilité d’utilisation en font
un choix idéal pour notre probleme de classification des monstres.

Figure 3.4 – Scikit-Learn Logo

19
Chapitre 3. Sélection des Caractéristiques et Création des Architectures

3.3.2 TensorFlow
TensorFlow est une bibliothèque open-source d’apprentissage automatique développée
par Google. Nous l’avons utilisée pour créer et entraîner des modèles de réseaux neuro-
naux, notamment pour des tâches telles que la classification, la régression et le traitement
du langage naturel. TensorFlow offre une grande flexibilité et des performances élevées,
ce qui en fait un choix populaire pour de nombreux projets d’apprentissage automatique
et d’intelligence artificielle.

Figure 3.5 – TensorFlow Logo

3.3.3 Keras
Keras est une API open-source d’apprentissage profond écrite en Python. Elle offre
une interface simple et cohérente pour la création et l’entraînement de modèles de réseaux
neuronaux. Nous avons utilisé Keras en conjonction avec TensorFlow pour concevoir et
développer des architectures de réseaux neuronaux, facilitant ainsi le processus de déve-
loppement et d’expérimentation avec différents modèles.

Figure 3.6 – Keras Logo

20
Chapitre 3. Sélection des Caractéristiques et Création des Architectures

3.4 Conclusion
Dans ce chapitre, nous avons examiné en détail le processus de sélection des caracté-
ristiques, la création des architectures de modèles, ainsi que les outils utilisés tout au long
du projet.
En ce qui concerne la sélection des caractéristiques, nous avons expliqué notre approche
basée sur la suppression des fonctionnalités fortement corrélées et leur impact insuffisant
sur la variable cible. Cette étape a permis d’améliorer la généralisation du modèle prédictif
en atténuant les problèmes potentiels tels que la multicolinéarité et le surajustement.
En ce qui concerne les architectures de modèles, nous avons présenté trois options
différentes : la custom architecture, AlexNet et MobileNetV2. Chacune de ces architectures
a ses propres caractéristiques et avantages, adaptés à différents types de problèmes de
classification d’images.
En conclusion, ce chapitre a couvert des aspects cruciaux de la préparation des don-
nées et de la conception des modèles dans notre projet. La combinaison d’une sélection
de caractéristiques judicieuse, de architectures de modèles bien choisies et d’outils puis-
sants a permis de construire un cadre solide pour la construction d’un modèle prédictif
performant.

21
Chapitre 4

Comparaison et Choix
d’Architecture Final

22
Chapitre 4. Comparaison et Choix d’Architecture Final

4.1 Architecures
On rappel des trois Architecure prise pour entraînés sur l’ensemble de données sont :
Custom CNN
AlexNet
MobileNet v2
Ces Architecures ont été formés dans le but de prédire avec précision le type et nom
du Pokemon. Leur performance sera évaluée à l’aide de mesures d’évaluation appropriées
pour comparer leur efficacité dans la prédiction des résultats des élèves.

4.1.1 Architectures Non Utilisées


Bien que les architectures VGG16 et MobileNetV3 aient été considérées pour le projet
de reconnaissance CNN de Pokédex, elles ont été jugées trop lentes pour les capacités de
nos machines a cause d’enormité du data et n’ont donc pas été utilisées dans notre étude.

4.1.2 Fractionnement Data


L’ensemble de données prétraité est divisé en ensembles de formation et de test et
validation, 80% des données étant allouées à la formation les modèles et 10% pour évaluer
leur performance et 10% pour la corss valideation. Le fractionnement se fait à l’aide de la
fonction traintestsplit de la Scikitlearn et preprocessing du Keras.

4.2 Parametres d’Architecure


4.2.1 Architecture Personnalisée
Total params : 44,472,533
Params entraînables : 44,472,533
Params non entraînables : 0
L’architecture personnalisée présente un nombre de paramètres intermédiaire par rap-
port à MobileNetV2 et AlexNet. Tous les paramètres sont entraînables, ce qui signifie
que le modèle est souple et peut être ajusté pour s’adapter aux données spécifiques du
projet. Cependant, la taille relativement importante du modèle peut entraîner des dé-
fis lors du déploiement sur des appareils mobiles en raison des exigences de mémoire et
de calcul. Pour le projet Pokédex, l’architecture personnalisée offre un compromis entre
la complexité d’AlexNet et la légèreté de MobileNetV2, offrant une solution flexible et
performante pour la classification d’images de Pokémon.

4.2.2 AlexNet
Total params : 58,875,381
Params entraînables : 58,875,381
Params non entraînables : 0

23
Chapitre 4. Comparaison et Choix d’Architecture Final

AlexNet présente un nombre extrêmement élevé de paramètres, ce qui en fait une


architecture très complexe et gourmande en ressources. Tous les paramètres sont entraî-
nables, ce qui signifie que le modèle doit être ajusté à partir de zéro lors de l’entraînement.
Cette complexité peut rendre l’application d’AlexNet sur des appareils mobiles ou des en-
vironnements avec des ressources limitées difficile en raison de la grande taille du modèle
et des exigences de calcul élevées. Pour le projet Pokédex, cela pourrait entraîner des
problèmes de performances et de latence lors de l’exécution sur des appareils mobiles.

4.2.3 MobileNetV2
Total params : 2,990,293
Params entraînables : 732,309
Params non entraînables : 2,257,984
MobileNetV2 présente un nombre total de paramètres relativement faible par rapport
aux autres architectures, ce qui en fait un choix attrayant pour les environnements à
ressources limitées comme les appareils mobiles. Les paramètres non entraînables, qui
représentent une grande partie des paramètres totaux, sont précalculés et figés pendant
l’entraînement, ce qui contribue à réduire la charge de calcul tout en maintenant des
performances acceptables. Pour le projet Pokédex, cela signifie une mise en œuvre efficace
sur des appareils mobiles avec des contraintes de mémoire et de calcul.

4.3 Evaluation et Comparaison


4.3.1 Resultat Accuracy
Selon le graphique de comparaison ci-dessus, nous obtenons l’information que tous les
classificateurs sélectionnés performent le meilleures.
— Custom CNN : Perte = 0.3924, Précision = 0.9216 (entraînement) et Perte =
1.9329, Précision = 0.7897 (validation)
— MobileNet : Perte = 0.1401, Précision = 0.9752 (entraînement) et Perte = 0.7086,
Précision = 0.8826 (validation)
— AlexNet : Perte = 0.3476, Précision = 0.9183 (entraînement) et Perte = 2.0062,
Précision = 0.7418 (validation)

24
Chapitre 4. Comparaison et Choix d’Architecture Final

Figure 4.1 – Précision de Custom CNN

Figure 4.2 – Précision de MobileNet

Figure 4.3 – Précision de AlexNet

25
Chapitre 4. Comparaison et Choix d’Architecture Final

Les graphiques ci-dessus illustrent les performances de précision des trois architectures
sur les ensembles d’entraînement et de validation. On observe une augmentation de la
précision avec l’entraînement pour chaque modèle, bien que MobileNet maintienne une
précision globalement supérieure sur l’ensemble de données de validation.
Interprétation :
Les résultats indiquent que MobileNet présente la meilleure précision à la fois sur les
données d’entraînement et de validation, suivie de près par Custom CNN. Cependant, il
est important de noter que même si MobileNet a la meilleure précision, cela peut être
dû à un surajustement (overfitting) sur l’ensemble de données d’entraînement. L’architec-
ture Custom CNN suit de près avec une précision légèrement inférieure, mais elle semble
mieux généraliser aux données de validation, ce qui suggère qu’elle est moins susceptible
de surajuster. AlexNet présente une précision légèrement inférieure aux deux autres archi-
tectures, et elle semble également souffrir de surajustement, avec une différence notable
entre les performances sur les ensembles d’entraînement et de validation.
Classement :
1. MobileNet
2. Custom CNN
3. AlexNet
Il est important de noter que le classement est basé sur la précision observée sur
l’ensemble de validation, mais il est crucial de considérer d’autres facteurs tels que la
complexité du modèle, le temps d’entraînement et les ressources nécessaires. Par exemple,
bien que MobileNet ait la meilleure précision, il peut être plus complexe et nécessiter plus
de ressources de calcul par rapport aux autres architectures, ce qui peut être un facteur
limitant dans certains contextes d’application. De même, Custom CNN offre un bon com-
promis entre précision et efficacité, ce qui en fait un choix attrayant dans de nombreux
cas. Enfin, AlexNet, bien qu’elle soit moins performante dans ce contexte particulier, peut
toujours être utile dans d’autres applications ou avec des optimisations supplémentaires.

4.4 Conclusion et Choix du Modèle


La conclusion de cette comparaison met en évidence MobileNet comme le choix le
plus optimal pour notre projet Pokedex CNN. Ce modèle présente la meilleure précision
sur les ensembles de données d’entraînement et de validation, ce qui suggère une capacité
de généralisation adéquate et moins de risque de surajustement par rapport aux autres
architectures. De plus, MobileNetV2 offre l’avantage d’être une architecture légère et
efficace, conçue spécifiquement pour les applications sur des appareils mobiles et à faible
puissance de calcul. Avec un nombre total de paramètres relativement bas et une précision
élevée, MobileNetV2 répond à nos exigences en matière de performances et d’efficacité
pour notre projet Pokedex CNN. Par conséquent, nous choisissons MobileNetV2 comme
le modèle préféré pour notre projet.

26
Conclusion et perspectives

27
Chapitre 4. Comparaison et Choix d’Architecture Final

4.5 Problématique
La problématique de ce projet était de développer un système de reconnaissance de
Pokémon à l’aide de réseaux de neurones convolutionnels (CNN), capable d’identifier
automatiquement les différentes espèces de Pokémon à partir d’images.

4.6 Objectif
L’objectif principal était de créer un modèle de CNN performant capable de reconnaître
avec précision les Pokémon de la première génération à partir d’images, tout en explorant
différentes architectures et techniques pour améliorer les performances du modèle.

4.7 Vision
Notre vision était de développer un outil pratique et ludique qui permettrait aux uti-
lisateurs de scanner des images de Pokémon et d’obtenir instantanément des informations
sur ces créatures, telles que leur nom, leur type et leurs statistiques.

4.8 Dataset
Le dataset utilisé comprenait des images de Pokémon de la première génération, avec
des annotations correspondantes pour chaque espèce. Ces données ont été collectées à
partir de diverses sources en ligne et ont été prétraitées pour être utilisées dans le modèle
de CNN.

4.8.1 Manipulation des données


Les données ont été prétraitées pour assurer leur qualité et leur cohérence, notamment
en redimensionnant les images, en normalisant les valeurs de pixel et en effectuant des
transformations de données pour augmenter la taille du dataset.

4.8.2 Ingénierie des caractéristiques


Nous avons extrait les caractéristiques importantes des images de Pokémon pour les
utiliser comme entrées dans notre modèle de CNN, en tenant compte des différentes
variations de poses et de perspectives.

4.9 Analyse des données apprises


4.9.1 Visualisation des données
Nous avons visualisé les données apprises pour mieux comprendre la distribution des
classes de Pokémon dans le dataset, ainsi que pour identifier d’éventuels déséquilibres ou
schémas dans les données.

28
Chapitre 4. Comparaison et Choix d’Architecture Final

4.10 Sélection et choix architecture


Nous avons exploré plusieurs architectures de CNN, telles que Custom CNN, Mobi-
leNetV2 et AlexNet, et évalué leurs performances en termes de précision et de temps
d’exécution.

4.10.1 Exportation architecture


Nous avons sélectionné l’architecture de MobileNetV2 comme modèle final en raison de
ses performances élevées et de sa faible complexité, ce qui le rend adapté à une utilisation
sur des appareils mobiles.

4.10.2 Évaluation des performances


Le modèle final a été évalué sur un ensemble de données de validation pour mesurer
sa précision et sa capacité à reconnaître correctement les Pokémon.

4.10.3 Validation croisée


Nous avons utilisé la validation croisée pour vérifier la robustesse du modèle et garantir
sa capacité à généraliser à de nouvelles données.

4.11 Perspectives
Pour les perspectives futures, nous envisageons plusieurs axes de développement afin
d’améliorer et d’élargir les fonctionnalités de notre projet de Pokedex basé sur CNN :
— Amélioration de la précision : Nous chercherons à affiner davantage notre
modèle en explorant des techniques avancées de prétraitement d’images, d’optimi-
sation des hyperparamètres et de modification des architectures CNN pour obtenir
une précision encore plus élevée dans la reconnaissance des Pokémon.
— Développement d’une application mobile : Notre objectif est de transformer
notre modèle de reconnaissance de Pokémon en une application mobile conviviale,
permettant aux utilisateurs de scanner facilement des images de Pokémon à l’aide
de leurs smartphones ou tablettes. Cette application fournira des informations
détaillées sur chaque Pokémon identifié, telles que ses statistiques, ses mouvements
et son évolution.
— Intégration de fonctionnalités supplémentaires : Nous prévoyons d’ajouter
des fonctionnalités supplémentaires à notre application, telles que la possibilité de
rechercher des Pokémon par type, région ou génération, ainsi que des outils de suivi
et de gestion des collections de Pokémon pour les joueurs.
— Expansion du dataset : Nous continuerons à enrichir notre dataset en ajoutant
des images de Pokémon supplémentaires provenant de différentes sources et en
incluant des annotations plus détaillées pour améliorer la diversité et la qualité des
données.
— Collaboration avec la communauté : Nous encouragerons la collaboration avec
la communauté des fans de Pokémon en permettant aux utilisateurs de contribuer

29
Chapitre 4. Comparaison et Choix d’Architecture Final

à l’amélioration du modèle en soumettant leurs propres images et en fournissant


des retours d’expérience sur l’application.
En suivant ces perspectives, nous espérons créer une application de Pokedex robuste
et polyvalente qui deviendra un outil indispensable pour les amateurs de Pokémon du
monde entier.

30
Bibliotheque

31
Bibliotheque A

Liens

— AlexNet Architecture : https://www.cs.toronto.edu/~kriz/alexnet/


— MobileNetV2 Paper : https://arxiv.org/abs/1801.04381
— Kaggle : https://www.kaggle.com/
— TensorFlow Documentation : https://www.tensorflow.org/
— Keras Documentation : https://keras.io/
— OpenClassrooms : https://openclassrooms.com/
— FreeCodeCamp YouTube Channel : https://www.youtube.com/c/Freecodecamp
— Stack Overflow : https://stackoverflow.com/
— Google Colab : https://colab.research.google.com/
— Pokémon Dataset Source : https://bulbapedia.bulbagarden.net/wiki/Main_
Page
— Image Dataset : https://www.kaggle.com/datasets/thedagger/pokemongeneration-one

32

Vous aimerez peut-être aussi