Stage 2 Annee
Stage 2 Annee
Systèmes - RABAT
Encadré par :
M. SEDDIK Omar
Réalisé par :
Membre de jury :
YOUB Omar
Pr. EL MANAOUR Abdellah
M. ABBAD Zakaria
Remerciement :
Je tiens à exprimer ma profonde gratitude à toutes les personnes qui ont contribué au déve-
loppement de ce projet. Je souhaite tout particulièrement remercier M. Omar SEDDIK, dont
l’encadrement et les conseils ont été essentiels tout au long de la conception de ce projet. Ses
remarques éclairantes et le temps généreusement consacré ont grandement enrichi ma démarche.
Enfin, je remercie mes camarades et tous ceux qui ont participé de près ou de loin à la
réalisation de ce projet sur les générateurs de légendes pour images, une initiative qui marque
une étape significative dans mes études et ma future carrière dans le domaine de l’intelligence
artificielle et du traitement du langage naturel.
Page 1
Classement des images en utilisant Deep Learning
Résumé :
À l’ère numérique actuelle, les interactions clients et la gestion des questions fréquentes
posent des défis importants pour les entreprises. L’automatisation de ces interactions par la
création de chatbots offre une solution efficace pour améliorer l’expérience utilisateur et réduire
la charge de travail des équipes de support.
Ce projet se concentre sur le développement d’un chatbot capable de répondre aux ques-
tions fréquentes des clients et sur l’intégration de ce chatbot dans une application web utilisant
[Link] et Strapi. Le projet comporte deux volets principaux :
Page 2
Classement des images en utilisant Deep Learning
Abstract :
In the current digital age, managing customer interactions and addressing frequently as-
ked questions pose significant challenges for businesses. Automating these interactions through
the creation of chatbots provides an effective solution to enhance user experience and reduce
the workload on support teams.
This project focuses on developing a chatbot designed to respond to frequently asked ques-
tions from clients and integrating this chatbot into a web application built with [Link] and
Strapi. The project encompasses two main aspects :
1. Chatbot Development : The creation of a chatbot using Voiceflow and Botpress. Voice-
flow was utilized to design the conversational flow and dialogues of the chatbot, while Botpress
was employed to handle the artificial intelligence and natural language processing (NLP) for
understanding and responding to client inquiries accurately and coherently.
2. Web Application Integration : Development of a web application with [Link] and
Strapi, followed by the integration of the chatbot into this application to provide an interactive
and user-friendly interface.
By exploring advanced natural language processing technologies and modern web develop-
ment frameworks, this project aims to enhance the efficiency of customer interactions and enrich
the user experience. The skills acquired during this internship include web development, API
integration, and the application of NLP techniques in real-world contexts.
Page 3
Classement des images en utilisant Deep Learning
Introduction générale 7
1 Description de l’Entreprise 8
1.1 Présentation de l’Entreprise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.2 Mission et Vision . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.3 Services et Expertise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.4 Prestations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.5 Expertise en E-commerce et Machine Learning . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.6 Références et Partenariats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.7 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3 Analyse et spécification 16
3.1 Étude des bases de données existantes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.1.1 Bases de données d’images populaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
[Link] ImageNet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
[Link] CIFAR-10 et CIFAR-100 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
[Link] COCO (Common Objects in Context) . . . . . . . . . . . . . . . . . . . . . . . . 17
[Link] MNIST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
[Link] Stanford Dogs Dataset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.1.2 Analyse et comparaison . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.1.3 Sélection de la base de données pour le projet . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.1.4 Projets réalisés dans le contexte de la classification d’images via deep learning . . . . . . . 19
[Link] AlexNet et ImageNet Large Scale Visual Recognition Challenge (ILSVRC) . . . 19
[Link] ResNet et l’amélioration de la profondeur des réseaux de neurones . . . . . . . . 19
[Link] Projet Google Photos et la classification des visages . . . . . . . . . . . . . . . . 19
[Link] Projet médical : classification des images radiologiques . . . . . . . . . . . . . . 20
[Link] Projet de reconnaissance d’espèces animales : iNaturalist . . . . . . . . . . . . . 20
3.1.5 Critères d’évaluation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
[Link].1 Choix des critères pour ce projet . . . . . . . . . . . . . . . . . . . . . . 21
3.2 Recueil de besoins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.3 Cadrage fonctionnel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Page 4
3.4 Cadrage technique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
4 Conception de la solution 24
4.1 Architecture des réseaux de neurones convolutionnels (CNN) . . . . . . . . . . . . . . . . . . . . 25
4.1.1 Couches convolutionnelles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
4.1.2 Couches de pooling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
4.1.3 Couches d’activation (ReLU) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
4.1.4 Couches entièrement connectées (Fully Connected Layers) . . . . . . . . . . . . . . . . . . 26
4.1.5 Rétropropagation et optimisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
[Link] Résumé de l’architecture CNN . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
4.2 Architecture de ResNet50 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
4.2.1 Blocs résiduels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
4.2.2 Structure de l’architecture ResNet50 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
4.2.3 Avantages de ResNet50 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
4.2.4 Transfert d’apprentissage avec ResNet50 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
4.3 Architecture de Xception . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4.3.1 Convolutions séparables en profondeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4.3.2 Structure de l’architecture Xception . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4.3.3 Avantages de Xception . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
4.3.4 Fonctionnement du transfert d’apprentissage avec Xception . . . . . . . . . . . . . . . . . 30
4.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
5 Mise en oeuvre 31
5.1 Prétraitement des données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
5.1.1 Choix du modèle et redimensionnement des images . . . . . . . . . . . . . . . . . . . . . . 32
5.1.2 Distribution des classes et vérification de l’équilibre des données . . . . . . . . . . . . . . 32
5.1.3 Normalisation des images . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
5.1.4 Égalisation des histogrammes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
5.1.5 Filtrage des images . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
5.1.6 Augmentation des données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
5.2 Modèle CNN from scratch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
5.2.1 Préparation des données pour le modèle CNN . . . . . . . . . . . . . . . . . . . . . . . . . 35
5.2.2 Construction du modèle CNN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
5.2.3 Entraînement et évaluation du modèle CNN . . . . . . . . . . . . . . . . . . . . . . . . . . 38
5.2.4 Résultats et analyse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
5.3 Transfert Learning : Modèles CNN pré-entrainés Xception et ResNet50 . . . . . . . . . . . . . . . 39
5.3.1 Importation et personnalisation des modèles . . . . . . . . . . . . . . . . . . . . . . . . . . 39
5.3.2 Prétraitement et augmentation des données . . . . . . . . . . . . . . . . . . . . . . . . . . 39
5.3.3 Entraînement des modèles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
5.3.4 Comparaison des performances . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
5.3.5 Analyse des résultats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
5.3.6 Optimization des paramètres sur la couche classifier du modèle Xception . . . . . . . . . . 42
5.4 Fine-tuning de Xception . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
5.4.1 Résultats après Fine-tuning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
5.4.2 Comparaison des modèles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
[Link] Exemple de prédiction sur les données de test . . . . . . . . . . . . . . . . . . . . 45
5.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Page 6
Classement des images en utilisant Deep Learning
Introduction générale
L’intégration de chatbots dans les applications web est devenue un enjeu majeur dans le
domaine de la technologie numérique, offrant des solutions efficaces pour améliorer l’interaction
utilisateur et automatiser les réponses aux questions fréquentes. Les chatbots permettent non
seulement d’optimiser l’expérience utilisateur en fournissant des réponses rapides et précises,
mais ils facilitent également la gestion des demandes courantes et réduisent la charge de travail
des équipes de support.
Ce rapport présente une vue d’ensemble détaillée des étapes de création du chatbot, du
développement de l’application web, et de l’intégration du chatbot dans l’application. Nous
visons à démontrer comment ces technologies combinées peuvent offrir une solution complète
pour améliorer l’interaction client et la gestion des questions fréquentes, tout en mettant en
évidence les défis rencontrés et les solutions apportées au cours de ce projet.
Page 7
Classement des images en utilisant Deep Learning
Chapitre 1
Description de l’Entreprise
Page 8
Classement des images en utilisant Deep Learning
Page 9
Classement des images en utilisant Deep Learning
les techniques de Machine Learning pour optimiser les processus et prédire les tendances
du marché.
3. Maintenance et Support : Plans de maintenance préventive, curative et évolutive, avec
un engagement en termes de délai de prise en charge. AIKINI intègre des systèmes intel-
ligents de détection et de correction d’erreurs basés sur le Machine Learning pour assurer
une maintenance proactive et efficace.
4. Solutions de Machine Learning : AIKINI développe des modèles de Machine Learning
sur mesure pour ses clients, répondant à des besoins spécifiques tels que l’analyse prédictive,
la classification, la reconnaissance d’images, et plus encore. Ces solutions sont conçues
pour optimiser les processus métiers et offrir une valeur ajoutée grâce à l’automatisation
intelligente.
1.4 Prestations
L’agence se spécialise dans plusieurs domaines clés :
1. Développement de Thèmes et Modules : Création de thèmes et de modules per-
sonnalisés pour répondre aux exigences spécifiques des projets. AIKINI utilise le Machine
Learning pour adapter ces thèmes aux préférences des utilisateurs.
2. Synchronisation ERP, CRM, PIM : Intégration et gestion des systèmes de gestion
d’entreprise. Le Machine Learning est utilisé pour optimiser la synchronisation des données
et améliorer l’efficacité des opérations.
3. Audits et Reprise de Projets : Analyse approfondie et reprise de projets existants pour
améliorer leur performance et leur fonctionnalité. L’analyse des données est optimisée par
des techniques de Machine Learning pour identifier les points d’amélioration.
4. Migration et Évolution : Mise à niveau des systèmes existants et gestion de l’évolution
des sites vers des architectures plus complexes. Le Machine Learning est intégré pour
prédire les besoins futurs et adapter les systèmes en conséquence.
Page 10
Classement des images en utilisant Deep Learning
1.7 Conclusion
En conclusion, AIKINI DE MARRAKECH se positionne comme un acteur majeur dans
le domaine des solutions digitales et e-commerce, offrant une expertise étendue et une approche
personnalisée pour répondre aux défis technologiques de ses clients. L’intégration du Machine
Learning dans ses services renforce la capacité de l’agence à offrir des solutions innovantes et
efficaces. Mon expérience au sein de l’agence m’a permis de bénéficier de cette expertise et de
contribuer à des projets innovants, renforçant ainsi mes compétences en développement web,
en gestion de projets digitaux, et en Machine Learning.
Page 11
Classement des images en utilisant Deep Learning
Chapitre 2
Page 12
Classement des images en utilisant Deep Learning
2.2 Problématique
Le principal défi dans la classification d’images réside dans la précision et la robustesse
des modèles de deep learning. Avec la diversité des images disponibles, les modèles doivent
non seulement identifier correctement les objets, mais aussi comprendre leurs interactions et le
contexte dans lequel ils apparaissent. De plus, le problème du surapprentissage (overfitting),
où le modèle devient trop adapté aux données d’entraînement et performe mal sur de nouvelles
données, est une préoccupation majeure.
Figure 2.1 – Composants d’un modèle de classification d’images utilisant le deep learning
2.3 Objectifs
Ce projet vise à développer un système performant pour la classification d’images en
utilisant le deep learning, en se concentrant sur les objectifs suivants :
Page 13
Classement des images en utilisant Deep Learning
Page 14
Classement des images en utilisant Deep Learning
2.5 Conclusion
En somme, ce chapitre définit le cadre du projet de classification d’images à l’aide du deep
learning, en mettant en lumière l’importance de cette technologie dans l’analyse visuelle et les
défis qu’elle pose. La problématique et les objectifs sont clairement définis, préparant le terrain
pour les étapes suivantes du développement.
Page 15
Classement des images en utilisant Deep Learning
Chapitre 3
Analyse et spécification
Page 16
Classement des images en utilisant Deep Learning
ImageNet est l’une des plus grandes bases de données utilisées pour la reconnaissance d’images. Elle contient
plus de 14 millions d’images étiquetées couvrant des milliers de catégories.
— Utilité : Elle est souvent utilisée pour entraîner des modèles de classification d’images. Elle est aussi à la
base des architectures célèbres comme AlexNet, VGG, et ResNet.
— Taille : Plus de 14 millions d’images dans plus de 20 000 catégories.
— Avantages : Sa grande taille et sa diversité permettent de construire des modèles robustes.
— Inconvénients : Certaines classes sont déséquilibrées et l’utilisation complète de la base peut être coûteuse
en temps et en ressources.
CIFAR-10 contient 60 000 images de 32x32 pixels dans 10 classes, tandis que CIFAR-100 propose 100 classes.
Ces bases de données sont souvent utilisées pour tester des architectures de réseaux de neurones, notamment
les modèles CNN.
— Utilité : Parfait pour des expérimentations rapides avec des modèles de classification d’images.
— Taille : CIFAR-10 : 60 000 images, 10 classes. CIFAR-100 : 60 000 images, 100 classes.
— Avantages : Facile à manipuler et à utiliser pour des essais rapides.
— Inconvénients : La petite taille des images (32x32) limite les détails que le modèle peut apprendre.
COCO contient plus de 330 000 images annotées et se concentre sur des objets dans des contextes variés,
incluant des annotations de segmentation et des descriptions textuelles.
— Utilité : Très utilisée pour des tâches complexes comme la détection d’objets, la segmentation, et la
génération de légendes automatiques.
— Taille : 330 000 images annotées.
— Avantages : Contient des annotations complexes pour des tâches multiples.
— Inconvénients : La complexité des annotations et des classes peut rendre l’entraînement plus difficile.
[Link] MNIST
MNIST est une base de données de chiffres manuscrits, avec 60 000 images d’entraînement et 10 000 images
de test, souvent utilisée pour tester des modèles simples de classification.
— Utilité : Idéale pour des expérimentations rapides avec des modèles simples.
— Taille : 70 000 images.
— Avantages : Simple à utiliser, parfait pour des projets de découverte du deep learning.
— Inconvénients : Trop simple pour des architectures complexes.
Page 17
Classement des images en utilisant Deep Learning
Le Stanford Dogs Dataset contient 20 580 images de 120 races de chiens différentes. Il est basé sur un
sous-ensemble d’ImageNet mais se concentre spécifiquement sur la classification fine des races de chiens.
— Utilité : Utilisé pour des tâches de classification fine des races d’animaux. Parfait pour des projets
nécessitant une reconnaissance précise de sous-catégories.
— Taille : 20 580 images, 120 classes.
— Avantages : Base de données bien annotée, excellente pour des tâches de classification fine.
— Inconvénients : Se concentre uniquement sur les chiens, ce qui limite la généralisation à d’autres types
d’objets.
Page 18
Classement des images en utilisant Deep Learning
3.1.4 Projets réalisés dans le contexte de la classification d’images via deep lear-
ning
La classification d’images via deep learning a connu une adoption croissante ces dernières années, notamment
grâce à l’amélioration des performances des réseaux de neurones convolutifs (CNN) et des technologies de
traitement de données. Plusieurs projets majeurs ont utilisé cette technologie pour résoudre des problématiques
liées à la reconnaissance d’images dans des contextes variés.
Le projet AlexNet, développé par Alex Krizhevsky en 2012, a été l’un des pionniers dans le domaine de la
classification d’images via deep learning. Il a été utilisé pour participer au concours ImageNet Large Scale Visual
Recognition Challenge (ILSVRC).
— Contexte : AlexNet a été conçu pour participer au concours ILSVRC 2012, qui consistait à classer des
millions d’images issues de la base de données ImageNet.
— Technologie : Le réseau AlexNet est composé de plusieurs couches convolutives, suivies de couches de
pooling et de couches entièrement connectées.
— Résultat : Le modèle a remporté le concours avec une précision de 84,7%, réduisant considérablement
l’erreur de classification par rapport aux modèles précédents.
— Impact : AlexNet a popularisé l’utilisation des CNN et a montré que les réseaux de neurones profonds
pouvaient surpasser les méthodes traditionnelles de classification d’images.
Le ResNet (Residual Network), introduit en 2015 par Kaiming He et ses collègues, est un autre projet phare
dans le domaine de la classification d’images.
— Contexte : ResNet a été développé pour surmonter le problème de la dégradation des performances
lorsque la profondeur des réseaux de neurones augmentait.
— Technologie : ResNet utilise des blocs résiduels qui permettent d’entraîner des réseaux très profonds,
avec plus de 100 couches, sans perte significative de performance.
— Résultat : ResNet a remporté l’ILSVRC 2015 avec une précision record, atteignant des taux d’erreur
extrêmement bas sur ImageNet.
— Impact : ResNet a permis de pousser les limites de la profondeur des réseaux de neurones, rendant
possible l’entraînement de modèles encore plus complexes et performants.
Un projet bien connu du grand public est Google Photos, qui utilise des algorithmes de deep learning pour
organiser et classifier les photos.
— Contexte : Google Photos utilise des réseaux de neurones profonds pour classer automatiquement les
images téléchargées par les utilisateurs. Ces images sont organisées par visages, lieux, et objets détectés
dans les photos.
— Technologie : Le projet utilise des CNN pour la détection de visages et d’objets, combinés à des techniques
de clustering pour regrouper les photos similaires.
— Résultat : Les utilisateurs peuvent facilement rechercher des photos en fonction de personnes spécifiques
ou d’objets sans avoir à les étiqueter manuellement.
— Impact : Ce projet a popularisé l’utilisation des réseaux de neurones pour la gestion des photos dans des
applications grand public, facilitant la recherche d’images par reconnaissance automatique.
Page 19
Classement des images en utilisant Deep Learning
Dans le domaine médical, des réseaux de neurones convolutifs ont été utilisés pour classifier des images
radiologiques, telles que les radiographies, les IRM et les tomodensitogrammes (CT scans).
— Contexte : La classification automatique des images médicales est devenue un enjeu majeur pour accélérer
les diagnostics et améliorer les soins aux patients.
— Technologie : Des CNN ont été utilisés pour identifier des anomalies dans les images radiologiques,
comme des tumeurs ou des fractures.
— Résultat : Des modèles de deep learning ont été capables de détecter des pathologies avec une précision
souvent comparable, voire supérieure, à celle des médecins.
— Impact : Ce type de projet montre comment le deep learning peut révolutionner l’analyse médicale et
améliorer l’efficacité des diagnostics.
Le projet iNaturalist est une application mobile qui permet aux utilisateurs d’identifier et de classifier des
espèces animales et végétales à partir de photos.
— Contexte : iNaturalist utilise des modèles de deep learning pour reconnaître des milliers d’espèces à partir
des images soumises par les utilisateurs.
— Technologie : L’application repose sur des CNN pré-entraînés sur des bases de données d’images de la
faune et de la flore, permettant une reconnaissance précise des espèces.
— Résultat : Les utilisateurs peuvent obtenir des résultats quasi instantanés sur l’espèce détectée, favorisant
la sensibilisation à la biodiversité.
— Impact : Ce projet montre comment la classification d’images via deep learning peut être utilisée dans
des applications éducatives et environnementales.
Page 20
Classement des images en utilisant Deep Learning
— AUC-ROC (Area Under the ROC Curve) : Cette métrique représente la capacité du modèle à
distinguer entre les classes. Elle trace une courbe ROC qui compare le taux de vrais positifs au taux de
faux positifs et mesure la surface sous cette courbe. Un score de 1 correspond à une classification parfaite,
tandis qu’un score de 0.5 indique une classification aléatoire.
[Link].1 Choix des critères pour ce projet Dans le cadre de notre projet de classification d’images,
nous avons choisi d’utiliser deux critères d’évaluation principaux : l’**accuracy** et le **F1-macro score**. Ces
deux critères sont complémentaires et offrent une vue d’ensemble équilibrée de la performance du modèle.
— L’**accuracy** a été choisie pour évaluer la proportion de prédictions correctes globales. Bien que cette
métrique soit utile pour évaluer la performance générale du modèle, elle peut être trompeuse dans les cas
où les classes sont déséquilibrées.
TP + TN
Accuracy =
TP + TN + FP + FN
où T P (True Positives) sont les vrais positifs, T N (True Negatives) sont les vrais négatifs, F P (False
Positives) sont les faux positifs, et F N (False Negatives) sont les faux négatifs.
— Le **F1-macro score** a été sélectionné pour compenser les limites de l’accuracy, en prenant en compte à
la fois la précision et le rappel pour chaque classe. Cette métrique est particulièrement pertinente lorsque
certaines classes sont sous-représentées dans les données, car elle accorde un poids égal à toutes les classes,
quel que soit leur effectif.
N
1 X
F 1macro = F 1i
N i=1
Précision × Rappel
F1 = 2 ×
Précision + Rappel
TP
Précision =
TP + FP
TP
Rappel =
TP + FN
où T P (True Positives) sont les vrais positifs, F P (False Positives) sont les faux positifs, et F N (False
Negatives) sont les faux négatifs.
Page 21
Classement des images en utilisant Deep Learning
— Flexibilité des classes : Le système doit permettre l’ajout ou la modification des catégories de classifi-
cation (par exemple, ajouter de nouvelles races de chiens ou réajuster les catégories existantes) sans avoir
à reconstruire entièrement le modèle.
— Optimisation des performances : L’utilisation de GPU et/ou de TPU est envisagée pour accélérer
l’entraînement du modèle. TensorFlow offre des solutions pour paralléliser les calculs et ainsi gérer un
grand volume d’images en simultané tout en réduisant les temps de traitement.
— Gestion des données : Un ensemble de données volumineux tel que le Stanford Dogs Dataset sera utilisé
pour l’entraînement et la validation du modèle. Les images seront prétraitées (normalisation, augmentation
des données, etc.) afin de garantir que le modèle est bien généralisé.
— Transfert d’apprentissage : L’intégration de modèles pré-entraînés sur des bases de données d’images
plus larges comme ImageNet permettra d’améliorer la classification des races de chiens grâce à l’extraction
de caractéristiques visuelles générales, suivie d’une spécialisation sur le Stanford Dogs Dataset.
Page 22
Classement des images en utilisant Deep Learning
3.5 Conclusion
En conclusion, ce chapitre a permis de préciser les besoins et spécifications pour notre système de classification
d’images via deep learning. Nous avons examiné les bases de données pertinentes, les critères d’évaluation, ainsi
que les besoins fonctionnels et techniques du système. Avec ces fondations, nous sommes prêts à passer à la
phase de développement du modèle de classification, en tirant parti des dernières avancées en matière de réseaux
de neurones convolutifs pour obtenir des performances optimales.
Page 23
Classement des images en utilisant Deep Learning
Chapitre 4
Conception de la solution
Page 24
Classement des images en utilisant Deep Learning
Les réseaux de neurones convolutionnels (CNN) sont une classe de réseaux de neurones
artificiels largement utilisés pour l’analyse d’images. Leur architecture est conçue spécifiquement
pour traiter des données sous forme de grille, telles que les images, en exploitant leurs propriétés
spatiales. Dans cette section, nous détaillons les principales composantes de l’architecture d’un
CNN, en expliquant leur rôle et leur fonctionnement dans le traitement des images.
où S(i, j) est la sortie à la position (i, j), et K(m, n) est le filtre appliqué à la région locale
de l’image I.
Les couches de pooling (ou sous-échantillonnage) sont utilisées pour réduire la dimensionna-
lité des cartes de caractéristiques, tout en préservant les informations les plus importantes. Le
Page 25
Classement des images en utilisant Deep Learning
pooling permet également de rendre le modèle plus robuste aux variations mineures dans les
images (comme la translation ou la rotation).
L’opération de pooling la plus courante est le max-pooling, qui prend le maximum d’une
région donnée de la carte de caractéristiques. Par exemple, dans un max-pooling 2x2, la sortie
est le maximum des quatre valeurs dans chaque bloc de 2x2 pixels de la carte de caractéristiques.
Après chaque couche convolutionnelle, une fonction d’activation non-linéaire est appliquée,
généralement la fonction ReLU (Rectified Linear Unit). La fonction ReLU introduit la non-
linéarité nécessaire dans le réseau pour permettre au modèle d’apprendre des relations com-
plexes dans les données.
La fonction ReLU est définie par :
f (x) = max(0, x)
Cela signifie que toutes les valeurs négatives sont remplacées par zéro, tandis que les valeurs
positives restent inchangées. ReLU permet d’accélérer la convergence pendant l’entraînement
tout en évitant les problèmes liés au gradient de la fonction.
Les couches entièrement connectées apparaissent en général vers la fin de l’architecture CNN.
Dans ces couches, chaque neurone est connecté à tous les neurones de la couche précédente. Ces
couches permettent de combiner les caractéristiques extraites par les couches convolutionnelles
pour prédire la classe de l’image.
La sortie de la dernière couche entièrement connectée passe par une fonction d’activation
softmax pour obtenir les probabilités de chaque classe. La fonction softmax est définie comme
suit :
e zi
σ(z)i = Pn
j=1 e zj
où zi est la sortie du neurone i, et n est le nombre total de classes.
Pendant l’entraînement, les poids des filtres et des neurones sont mis à jour grâce à un
processus appelé rétropropagation, qui minimise une fonction de perte (par exemple, la perte
logarithmique pour la classification). L’optimisation des poids est généralement effectuée avec
des algorithmes tels que l’optimiseur Adam ou la descente de gradient stochastique (SGD).
Page 26
Classement des images en utilisant Deep Learning
Page 27
Classement des images en utilisant Deep Learning
des réseaux augmentait, les performances tendaient à se stabiliser, voire à se dégrader, à cause du phénomène
de "vanishing gradient" (disparition du gradient). Le bloc résiduel introduit une connexion résiduelle, ou "skip
connection", qui contourne une ou plusieurs couches de convolution.
La formule utilisée dans un bloc résiduel est la suivante :
y = F (x, {Wi }) + x
où :
— x est l’entrée du bloc résiduel.
— F (x, {Wi }) représente la fonction apprise par les couches intermédiaires (convolutions, activations, etc.).
— y est la sortie finale du bloc résiduel, obtenue en additionnant l’entrée x à la sortie de F (x, {Wi }).
Cette approche permet au réseau d’apprendre à ajuster uniquement les "résidus", ou les différences par
rapport à l’identité de l’entrée, ce qui facilite l’apprentissage même avec des réseaux profonds.
Page 28
Classement des images en utilisant Deep Learning
Page 29
Classement des images en utilisant Deep Learning
— Bloc d’entrée : Le modèle commence par une couche convolutionnelle classique suivie
d’une couche de pooling pour réduire la dimension de l’image d’entrée.
— Blocs de convolutions séparables en profondeur : Ces blocs constituent le cœur
de l’architecture et sont utilisés pour extraire les caractéristiques de l’image en suivant le
principe des convolutions séparables en profondeur. Chaque bloc est suivi de normalisation
de lot et de ReLU pour accélérer la convergence.
— Bloc de sortie : Après les blocs convolutifs, les caractéristiques extraites sont aplaties
et passées dans des couches entièrement connectées, suivies d’une fonction d’activation
softmax pour la classification finale.
Dans le cadre de notre projet, l’architecture Xception a été utilisée avec un modèle pré-
entraîné sur la base de données ImageNet, suivi d’une phase de transfert d’apprentissage. Cela
permet de bénéficier des caractéristiques générales déjà apprises par le modèle lors de son
entraînement initial, tout en ajustant les dernières couches pour s’adapter à notre jeu de don-
nées spécifique, ici le Stanford Dogs Dataset. Cette approche permet d’obtenir de meilleures
performances tout en réduisant le temps d’entraînement et la quantité de données requise.
4.4 Conclusion
Dans ce chapitre, nous avons exploré les architectures clés utilisées pour notre projet de
classification d’images, à savoir le modèle CNN basique, Xception et ResNet50. Chacune de
ces architectures apporte des avantages spécifiques, depuis la simplicité et l’efficacité du CNN
basique, jusqu’à la sophistication et la profondeur des modèles Xception et ResNet50, adaptés
aux tâches complexes de classification d’images. L’intégration de ces architectures avec des
modèles pré-entraînés a permis d’améliorer la précision et d’optimiser les performances tout
en réduisant le temps d’entraînement. Ces choix stratégiques posent les bases solides pour la
prochaine phase de développement et d’optimisation du projet.
Page 30
Classement des images en utilisant Deep Learning
Chapitre 5
Mise en oeuvre
Page 31
Classement des images en utilisant Deep Learning
Le modèle sélectionné pour le transfert d’apprentissage a un impact direct sur la taille des
images en entrée. Dans notre cas, nous avons opté pour le modèle Xception, qui nécessite des
images de taille 299 × 299 pixels. Ce redimensionnement permet non seulement de normaliser
les dimensions des images mais aussi d’optimiser le temps de calcul tout en maintenant un bon
niveau de détail visuel.
Nous avons également choisi ResNet50 comme deuxième modèle à tester, qui nécessite des
images de taille 224×224 pixels. Ce modèle offre une architecture plus profonde, tout en restant
relativement léger en termes de taille et de calcul.
Le Stanford Dogs Dataset contient 120 races de chiens, correspondant à 120 classes dans
notre projet. Il est essentiel de vérifier que chaque classe dispose d’un nombre suffisant d’images
pour éviter les biais. Dans notre cas, chaque race est représentée de manière équitable, avec une
moyenne de 171 images par classe. Cette distribution homogène permet de conserver l’intégralité
des classes sans avoir besoin de recourir à des techniques de rééchantillonnage.
Page 32
Classement des images en utilisant Deep Learning
Chaque image est normalisée pour s’assurer que les valeurs des pixels sont dans une plage de
[0,1]. Cette étape consiste à diviser chaque valeur de pixel par 255, ce qui facilite l’apprentissage
du modèle en accélérant la convergence pendant l’entraînement.
Les images peuvent avoir des expositions ou des contrastes différents. Pour homogénéiser la
luminosité et le contraste des images, nous appliquons une égalisation de l’histogramme sur le
canal de luminance (Y) dans l’espace de couleurs YUV. Cette transformation permet de mieux
répartir les intensités lumineuses dans tout le spectre de l’image, améliorant ainsi la qualité des
caractéristiques extraites par les modèles CNN.
Page 33
Classement des images en utilisant Deep Learning
Pour éliminer le bruit présent dans certaines images et améliorer la qualité visuelle, nous
appliquons un filtre non-local means. Ce filtre, contrairement aux filtres de moyenne locale,
permet de conserver les détails importants de l’image tout en lissant le bruit. Cela garantit que
les caractéristiques pertinentes sont mises en avant pour les étapes d’extraction ultérieures.
Page 34
Classement des images en utilisant Deep Learning
Ces transformations sont réalisées en temps réel lors de l’entraînement à l’aide de la classe
ImageDataGenerator de Keras, ce qui permet d’augmenter virtuellement la taille du jeu de
données sans créer de nouvelles images physiques.
La première étape consiste à mélanger aléatoirement les données dans les matrices X (images)
et y (étiquettes) afin de s’assurer que les classes soient bien distribuées et éviter un éventuel sur-
apprentissage. Les étiquettes, initialement sous forme de texte représentant les races de chiens,
sont ensuite encodées en valeurs numériques à l’aide d’un LabelEncoder. Cela est nécessaire car
le modèle de CNN ne peut pas traiter des données textuelles directement.
Page 35
Classement des images en utilisant Deep Learning
img_space = [Link]([Link][0])
[Link](img_space)
X = X[img_space]
y = y[img_space]
Ensuite, les ensembles d’entraînement et de test sont créés. L’ensemble de validation sera
généré à partir de l’ensemble d’entraînement via la méthode ImageDataGenerator de Keras.
Pour ce modèle CNN from scratch, nous avons opté pour une architecture relativement
simple, composée de trois couches convolutionnelles suivies de couches de pooling, d’une fonction
d’activation ReLU, et de couches entièrement connectées. L’architecture est la suivante :
— Couches convolutionnelles : Utilisées pour extraire les caractéristiques des images, elles
appliquent des filtres pour détecter différents motifs.
— Couches de pooling : Réduisent la taille des images tout en conservant les caractéris-
tiques importantes, réduisant ainsi le nombre de paramètres.
— Fonction d’activation ReLU : Remplace les valeurs négatives par zéro, introduisant
une non-linéarité dans le modèle.
— Couches entièrement connectées : Utilisées pour combiner les caractéristiques ex-
traites et faire la prédiction finale de la classe de l’image.
— Dropout : Permet de désactiver aléatoirement certains neurones pendant l’entraînement
pour éviter le sur-apprentissage.
Page 36
Classement des images en utilisant Deep Learning
Page 37
Classement des images en utilisant Deep Learning
Une fois le modèle créé, il est compilé avec l’optimiseur Adam et la fonction de perte
sparse_categorical_crossentropy, adaptée aux problèmes de classification multi-classes.
Nous utilisons l’accuracy et le score F1 comme métriques pour évaluer les performances du
modèle.
[Link](optimizer="adam", loss="sparse_categorical_crossentropy",
metrics=["accuracy", f1_m])
Le modèle est ensuite entraîné sur 20 époques à l’aide de ImageDataGenerator pour appli-
quer en temps réel la rescaling et la data augmentation sur les images.
history = [Link](
train_datagen.flow(x_train, y_train, batch_size=16,
subset='training'),
validation_data=train_datagen.flow(x_train, y_train, batch_size=16,
subset='validation'),
steps_per_epoch=len(x_train) / 32,
epochs=20,
verbose=2)
Les performances initiales du modèle CNN from scratch ne sont pas optimales. L’accuracy
sur l’ensemble de validation est restée faible, atteignant environ 13%, tandis que le score F1, bien
que stable, n’a pas permis d’améliorer significativement les résultats. Cela souligne l’importance
d’utiliser des modèles plus sophistiqués, tels que Xception et ResNet50, qui sont pré-entraînés
sur des jeux de données volumineux comme ImageNet, pour obtenir de meilleures performances
sur notre tâche de classification d’images.
Page 38
Classement des images en utilisant Deep Learning
Pour les deux architectures, nous avons utilisé des versions pré-entrainées sur le jeu de
données ImageNet, un grand ensemble de données contenant plus d’un million d’images réparties
en 1000 classes différentes. Cette approche de transfert learning nous permet de tirer parti
des connaissances déjà acquises par les modèles, tout en les adaptant à notre tâche spécifique
de classification des races de chiens.
— Xception : Nous avons supprimé les couches entièrement connectées au sommet du modèle
pour les remplacer par un nouveau classificateur personnalisé, composé d’une couche dense
avec une fonction d’activation softmax. Les couches convolutives ont été gelées afin de ne
pas ré-entraîner tout le modèle.
— ResNet50 : De manière similaire, nous avons enlevé les couches supérieures du modèle
ResNet50 et ajouté notre propre classificateur. Les couches de convolution ont également
été gelées, car leur réentraînement pourrait provoquer du surapprentissage (overfitting)
sur notre jeu de données relativement petit.
Cette approche permet d’utiliser les capacités d’extraction de caractéristiques complexes des
modèles tout en adaptant le classificateur final aux 120 races de chiens présentes dans notre
jeu de données.
Afin de préparer les données pour les deux modèles, des techniques de prétraitement spéci-
fiques à chaque architecture ont été utilisées :
Les deux modèles ont été entraînés sur 20 époques avec un ensemble d’entraînement et un
ensemble de validation. Nous avons utilisé l’optimiseur Adam pour sa capacité à ajuster dynami-
quement les taux d’apprentissage, et la fonction de perte sparse_categorical_crossentropy,
adaptée aux problèmes de classification multi-classes.
Xception a montré une rapidité de convergence notable grâce à son architecture optimisée,
tandis que ResNet50 a démontré sa capacité à apprendre efficacement malgré sa profondeur.
Page 39
Classement des images en utilisant Deep Learning
Les performances des trois modèles ont été évaluées à l’aide de la précision (accuracy). Les
résultats montrent des différences notables entre les architectures, avec une supériorité marquée
des modèles Xception et ResNet50 sur le modèle CNN simple. Voici un résumé des performances
obtenues :
— Xception a atteint une accuracy moyenne de 0.79 sur l’ensemble de validation, et sa
convergence est rapide. La structure basée sur des convolutions séparables en profondeur
semble mieux adaptée à la tâche de classification de notre projet.
— ResNet50 a obtenu une accuracy moyenne de 0.66, ce qui montre qu’il est performant,
bien qu’un peu en deçà de Xception. La profondeur et la complexité de son architecture
résiduelle sont probablement responsables de cette légère différence.
— CNN basique a présenté une accuracy moyenne relativement faible de 0.15, en grande
partie à cause de la simplicité de son architecture qui ne permet pas de capturer efficace-
ment des caractéristiques complexes des images.
Le graphique ci-dessous illustre la comparaison des performances en termes d’accuracy au
fil des époques pour les trois modèles testés :
Les performances des trois modèles ont également été évaluées à l’aide du F1-m (F1 score),
qui prend en compte à la fois la précision et le rappel pour offrir une évaluation plus équilibrée.
Les résultats montrent des différences significatives entre les architectures, avec une meilleure
performance des modèles Xception et ResNet50 par rapport au modèle CNN basique. Voici
un résumé des performances obtenues :
Page 40
Classement des images en utilisant Deep Learning
— Xception a atteint un F1-m moyen de 2.10 sur l’ensemble de validation. Bien que le
F1 score ait initialement chuté dans les premières époques, il a rapidement convergé vers
une valeur stable, indiquant que le modèle équilibre bien la précision et le rappel.
— ResNet50 a obtenu un F1-m moyen de 1.85, ce qui montre qu’il est performant mais
légèrement inférieur à Xception. La profondeur de son architecture résiduelle pourrait
expliquer cette différence, nécessitant peut-être un ajustement supplémentaire des para-
mètres pour optimiser pleinement le modèle.
— Le CNN basique a présenté un F1-m moyen relativement faible de 1.25, ce qui reflète
l’incapacité du modèle à bien généraliser et à capturer les caractéristiques complexes des
images en raison de la simplicité de son architecture.
Le graphique ci-dessous illustre la comparaison des performances en termes de F1-m au fil
des époques pour les trois modèles testés :
Page 41
Classement des images en utilisant Deep Learning
Les résultats indiquent que Xception est mieux adapté à notre jeu de données et à la tâche
de classification des races de chiens, grâce à son architecture plus légère et son efficacité en
termes de calcul. En effet, Xception a atteint un F1-m moyen de 2.10, témoignant de son
bon équilibre entre précision et rappel, et une précision moyenne de 0.79. Ces performances
soulignent la rapidité de convergence du modèle, particulièrement bien adaptée à la complexité
de notre projet. ResNet50, bien que légèrement en retrait, reste un modèle performant avec
un F1-m moyen de 1.85 et une précision moyenne de 0.66. Sa capacité à extraire des carac-
téristiques complexes en fait un modèle adapté pour des réseaux très profonds, même s’il est
légèrement moins performant que Xception dans ce contexte. Le CNN basique, quant à lui, a
montré des résultats significativement inférieurs avec un F1-m moyen de 1.25 et une précision
moyenne de 0.15, en raison de la simplicité de son architecture qui ne permet pas de capturer
efficacement les caractéristiques complexes des images.
Les résultats indiquent que Xception est mieux adapté à notre jeu de données et à la tâche
de classification des races de chiens, grâce à son architecture plus légère et son efficacité en
termes de calcul. En effet, Xception a atteint un F1-m moyen de 2.10, témoignant de son
bon équilibre entre précision et rappel, et une précision moyenne de 0.79. Après optimisation
des hyperparamètres, le modèle a montré des performances stables avec une accuracy attei-
gnant 0.9157 et un F1-m de 1.3209 à l’Epoch 30. Ces résultats indiquent une amélioration
notable de la capacité de généralisation du modèle, en particulier sur les données de validation,
avec une val_accuracy de 0.7988 et un val_f1_m de 1.5040.
ResNet50, bien que légèrement en retrait, reste un modèle performant avec un F1-m
moyen de 1.85 et une précision moyenne de 0.66. Sa capacité à extraire des caractéristiques
complexes en fait un modèle adapté pour des réseaux très profonds, même s’il est légèrement
moins performant que Xception dans ce contexte. Le CNN basique, quant à lui, a montré des
résultats significativement inférieurs avec un F1-m moyen de 1.25 et une précision moyenne de
0.15, en raison de la simplicité de son architecture qui ne permet pas de capturer efficacement
les caractéristiques complexes des images.
Page 42
Classement des images en utilisant Deep Learning
Page 43
Classement des images en utilisant Deep Learning
ont été libérées pour l’apprentissage afin d’adapter le modèle à notre jeu de données spé-
cifique.
— Entrainement et évaluation : Le modèle a été réentraîné sur 20 époques avec un early
stopping pour prévenir l’overfitting.
Après le fine-tuning, le modèle Xception a montré une nette amélioration des performances
par rapport aux autres modèles testés. La Mean accuracy a atteint 0.83 après le fine-tuning,
surpassant les résultats obtenus avec le modèle Xception avant ajustement (0.79), et largement
supérieure aux performances de ResNet50 (0.66) et du modèle CNN de base (0.15).
Voici les résultats après le fine-tuning :
— Fine-tuned Xception : Accuracy de 0.9157, F1-m de 1.3209, et val_accuracy de
0.7988.
Figure 5.13 – Comparaison des performances des modèles CNN, Xception, ResNet50 et Xception fine-tuned.
Page 44
Classement des images en utilisant Deep Learning
Nous observons que le modèle Xception avec fine-tuning a surpassé les autres architec-
tures, tant en termes de rapidité de convergence que de performances globales sur le jeu de
validation.
En conclusion, le modèle Xception optimisé avec fine-tuning est celui qui présente les
meilleures performances pour notre projet de classification des races de chiens.
La plupart des prédictions sont correctes, notamment pour le Border Collie et le Rottweiler,
mais il y a quelques erreurs, comme un Labrador Retriever prédit comme un Staffordshire
Bullterrier. Cela indique que bien que le modèle soit performant, il y a encore des cas de
confusion entre certaines races visuellement similaires, ce qui pourrait être amélioré avec plus
d’entraînement.
Page 45
Classement des images en utilisant Deep Learning
5.5 Conclusion
En conclusion, ce chapitre sur la mise en œuvre a permis de démontrer les différentes étapes
essentielles dans le traitement et l’entraînement des modèles de classification des races de chiens.
Du prétraitement des données au fine-tuning des modèles, nous avons utilisé des approches
telles que le transfert learning avec Xception et ResNet50 pour améliorer les performances du
modèle. Le fine-tuning a montré une nette amélioration, notamment avec le modèle Xception,
qui a offert des résultats optimisés en termes de précision et de score F1-m. Cette mise en
œuvre met en lumière l’importance de l’optimisation des hyperparamètres et de l’adaptation
des modèles pré-entraînés pour obtenir des résultats performants dans des tâches complexes
comme la classification d’images.
Page 46
Classement des images en utilisant Deep Learning
Ce projet a mis en œuvre l’ensemble des étapes nécessaires à la classification des images
en utilisant des techniques de deep learning, avec un accent particulier sur l’application du
transfert learning. Nous avons débuté par une étude approfondie des bases de données dispo-
nibles, et avons choisi d’utiliser le Stanford Dogs Dataset pour sa diversité et son ampleur.
Ensuite, un prétraitement rigoureux des images a été réalisé, incluant le redimensionne-
ment, la normalisation et l’augmentation des données, afin d’assurer une meilleure efficacité du
modèle.
Perspectives
Pour améliorer davantage ce travail, plusieurs axes peuvent être explorés :
— Augmentation des données : L’ajout de nouvelles images ou l’utilisation de techniques
avancées d’augmentation pourrait renforcer la robustesse du modèle face aux variations
dans les images.
— Fine-tuning supplémentaire : Affiner davantage le modèle Xception en modifiant plus
de couches ou en explorant d’autres hyperparamètres pourrait mener à une amélioration
des résultats.
— Exploration d’architectures récentes : Tester de nouvelles architectures telles que Ef-
ficientNet ou Vision Transformers pourrait offrir des gains supplémentaires en termes
de performances et d’efficacité de calcul.
— Déploiement en production : La prochaine étape consisterait à déployer ce modèle
dans un environnement de production, avec des mécanismes de suivi des performances et
de mise à jour continue du modèle.
En somme, ce projet a démontré l’importance du transfert learning et du fine-tuning
dans la classification d’images, tout en posant les bases pour de futures améliorations et appli-
cations dans des contextes réels.
Page 47
Classement des images en utilisant Deep Learning
Bibliographie
[1] François Chollet. Xception : Deep learning with depthwise separable convolutions. Procee-
dings of the IEEE conference on computer vision and pattern recognition, pages 1251–1258,
2017.
[2] François Chollet. On the use of depthwise separable convolutions in modern cnn architec-
tures, 2017. Accessed : 2024-07-01.
[3] Keras Documentation. Keras applications - pretrained models, 2023. Accessed : 2024-06-22.
[4] TensorFlow Documentation. Transfer learning and fine-tuning with tensorflow, 2023. Ac-
cessed : 2024-07-15.
[5] Ian Goodfellow, Yoshua Bengio, and Aaron Courville. Deep Learning. MIT Press, 2016.
[6] Kaiming He, Xiangyu Zhang, Shaoqing Ren, and Jian Sun. Deep residual learning for
image recognition. Proceedings of the IEEE conference on computer vision and pattern
recognition, pages 770–778, 2016.
[7] ImageNet. Imagenet large scale visual recognition challenge, 2023. Accessed : 2024-07-10.
[8] Alex Krizhevsky, Ilya Sutskever, and Geoffrey E Hinton. Imagenet classification with deep
convolutional neural networks. Advances in neural information processing systems, pages
1097–1105, 2012.
[9] Karen Simonyan and Andrew Zisserman. Very deep convolutional networks for large-scale
image recognition. arXiv preprint arXiv :1409.1556, 2014.
[10] Mingxing Tan and Quoc Le. Efficientnet : Rethinking model scaling for convolutional
neural networks. Proceedings of the 36th International Conference on Machine Learning
(ICML), pages 6105–6114, 2019.
[11] Stanford University. Stanford dogs dataset, 2011. Accessed : 2024-06-25.
Page 48