Vous êtes sur la page 1sur 17

ÉCOLE NATIONALE SUPÉRUEURE DE TECHNIQUES AVANCÉES

MI204 - Reconnaissance d’Images

TP3 : Classication d’images par CNN

Diogo Santos Gimenez


Eduardo Scardellato e Silva
Ana Clara Pimenta de Faria

Palaiseau, France 2024


Table des matières
1 Introduction 2

2 Structuration des données 2

3 Architecture du réseau 4

4 Apprentissage 5

5 Hyperparamètres 8

6 Structuration des données 9

7 Sur-apprentissage 10
7.1 Learning rate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
7.2 Algorithme d’optimisation . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

8 Cartes d’activation 15

9 Conclusion 16

10 Bibliography : 16

1
1 Introduction
Dans ce TP nous allons expérimenter les réseaux de neurones convolutifs (CNN) pour la
classication d’images. Pour cela, nous utiliserons l’interface de programmation (API) Keras
1 qui permetde créer très simplement des architectures neuronales, de les entraı̂ner et de les
tester. Pour pouvoir utiliser nos propres machines et leur puissance limitée (notamment en
l’absence de GPU), nous allons travailler sur un nombre adapté de petites images issues de la
base CIFAR10 (Figure 1), et avec des réseaux de petite taille qui ne sont que partiellement
représentatifs des capacités de l’apprentissage profond. L’objectif est principalement de
comprendre la structure des réseaux de convolution, la dynamique de l’apprentissage, et
l’inuence des diérents paramètres sur les performance d’un modèle.

2 Structuration des données


Dans le domaine de la reconnaissance d’images et de nombreuses autres applications
d’IA, nous divisons l’ensemble de données en 3 parties : entraı̂nement, validation et test.
Cette approche structurée vise à assurer la robustesse du modèle et de ses résultats, lui
permettant d’extrapoler correctement à de nouveaux ensembles de données. Nous allons
maintenant explorer un peu chaque ensemble :
— Ensemble d’entraı̂nement : il est responsable de la fondation du processus d’ap-
prentissage du modèle. Il est vital qu’il ait une qualité et une taille suffisantes,
généralement entre 60% à 80% de l’ensemble des données, car cela influence directe-
ment la capacité du modèle à apprendre les motifs dans les données. En outre, il est
nécessaire de ne pas se fier uniquement à lui, car cela peut conduire à un surappren-
tissage, où le modèle apprend trop bien cet ensemble, entraı̂nant une diminution de
ses performances sur de nouvelles données.
— Ensemble de validation : son utilisation est principalement associée à atténuer
l’occurrence de surapprentissage, donc il est utilisé pendant la phase d’entraı̂nement
comme moyen de peaufiner les paramètres du modèle et de fournir une évaluation
impartiale du modèle. À travers lui, nous pouvons évaluer les progrès d’apprentissage
du modèle. Ainsi, nous pouvons nous baser sur la performance du modèle sur l’en-
semble de validation pour ajuster notre modèle. Habituellement, il représente de 10%
à 20% de l’ensemble des données.
— Ensemble de test : il est utilisé comme l’évaluation finale qui assure que les prédictions
du modèle ne reflètent pas simplement les motifs observés dans les ensembles d’en-
traı̂nement et de validation, en l’exposant à des données qu’il n’a jamais vues, offrant
une évaluation impartiale de sa performance.
Il est donc clair que cette approche facilite non seulement l’entraı̂nement efficace des
modèles mais assure également leur fiabilité et leur généralisabilité à de nouvelles données.
Elle trouve un équilibre entre l’apprentissage à partir des données et l’évitement du surap-
prentissage, maximisant ainsi la performance du modèle dans les applications pratiques.

2
Un autre aspect important à aborder concernant les données qui sont fournies au modèle
est l’aspect de la normalisation/standardisation. Cela aide à augmenter l’efficacité des
modèles d’apprentissage machine, en particulier les CNN. En standardisant la plage des
valeurs de pixels à travers les images, la normalisation assure que le modèle ne devient pas
biaisé envers des échelles ou des grandeurs particulières de données d’entrée. Cette stan-
dardisation facilite une convergence plus rapide et plus stable pendant l’entraı̂nement, car
elle empêche les gradients de devenir trop grands ou trop petits, améliorant ainsi la vitesse
d’entraı̂nement et la performance globale. De plus, la normalisation rend le modèle plus ro-
buste et généralisable aux variations de l’éclairage, du contraste et d’autres caractéristiques
photographiques des images.
Dans notre carnet, nous avons utilisé la fonction standardize pour normaliser les
images de cifar 10, elle a suivi les étapes suivantes :
1. Calcul de la Moyenne (img data mean) : La moyenne de chaque canal de couleur
est calculée sur l’ensemble de l’image (hauteur et largeur), réduisant efficacement
chaque image à une moyenne par canal. Cela aide à centrer les données autour de
zéro.
2. Calcul de l’Écart Type (img data std) : L’écart type est également calculé pour
chaque canal de couleur de chaque image. Cela mesure la dispersion des valeurs de
pixels par rapport à la moyenne.
3. Normalisation : Chaque pixel de l’image est normalisé en soustrayant la moyenne et
en divisant par l’écart type. Cette opération est appliquée individuellement à chaque
canal de couleur de chaque image.
La normalisation des entrées est une étape cruciale du prétrait
ement qui bénéficie significativement au processus d’apprentissage de plusieurs manières.
Premièrement, cela peut accélérer la convergence de l’algorithme d’apprentissage en stan-
dardisant les caractéristiques pour être à une échelle comparable. Cet ajustement accélère
non seulement le processus d’apprentissage mais assure également un chemin plus doux
et plus efficace pour atteindre une performance optimale. Deuxièmement, la normalisa-
tion aide à réduire le biais initial au sein du réseau. Elle aborde le problème où certains
poids peuvent influencer de manière disproportionnée le résultat de l’apprentissage, soit
en étant trop grands ou trop petits par rapport aux autres, empêchant ainsi des schémas
d’apprentissage inefficaces. De plus, en mettant les données dans un format standardisé,
la normalisation améliore la performance globale et la stabilité du modèle, en particulier
lorsqu’il s’agit de données non vues. Elle minimise le risque que le modèle suradapte à
l’échelle ou à la distribution des données d’entraı̂nement, rendant ainsi les prédictions plus
fiables et robustes à travers différents ensembles de données. Enfin, dans le contexte des
réseaux neuronaux convolutionnels (CNN) et d’autres cadres d’apprentissage profond, une
entrée normalisée est essentielle pour prévenir la saturation des neurones et assurer que les
gradients restent dans une plage gérable pendant le processus de rétropropagation. Cela est
vital pour l’entraı̂nement efficace des réseaux neuronaux profonds, car cela aide à maintenir
le flux de gradient à travers de nombreuses couches sans diminuer ou exploser, facilitant
ainsi des architectures d’apprentissage plus profondes et plus complexes.

3
3 Architecture du réseau
L’architecture de notre réseau neuronal est définie en utilisant un modèle séquentiel
dans Keras, avec les couches suivantes :
— Couche d’Entrée :
— Forme : p32, 32, 3q - Cela définit la forme d’entrée comme des images de 32 ˆ 32
pixels avec 3 canaux de couleur (RGB).
— Couche de Convolution (Conv2D) :
— Après une couche Conv2D avec padding=’same’, la hauteur et la largeur restent
les mêmes si le pas est de 1. La profondeur devient le nombre de filtres utilisés
dans cette couche.
— Filtres : 8 - Spécifie le nombre de filtres utilisés dans l’opération de convolution.
— Taille du Noyau : p3, 3q - La taille du filtre qui sera utilisé pour convoluer autour
de l’entrée.
— Activation : ReLU (Unité Linéaire Rectifiée) - Introduit une non-linéarité au
modèle, lui permettant d’apprendre des motifs plus complexes.
— Padding : ’same’ - Assure que la sortie de l’opération de convolution a les mêmes
dimensions spatiales que l’entrée.
— Régularisation : L2 avec un coefficient de 0.00 - Implique qu’en pratique, il n’y
a pas d’effet de régularisation.
— Couche d’Abandon (Dropout) :
— Taux : 0.0 - Indique qu’aucune unité n’est abandonnée pendant l’entraı̂nement,
car le taux est zéro.
— Couche de Pooling Maximal (MaxPool2D) :
— Réduit la hauteur et la largeur par la taille du pool (par exemple, un pool de
2x2 réduit de moitié la hauteur et la largeur).
— Taille du Pool : p2, 2q - Détermine la taille de la fenêtre pour l’opération de
pooling, qui est de 2 ˆ 2 pixels dans ce cas.
— Couche de Mise à Plat (Flatten) :
— convertit l’intégralité de la carte des caractéristiques 3D en un vecteur 1D, donc
sa taille est le produit de la hauteur, de la largeur et de la profondeur de la sortie
de la couche précédente.
— Cette couche sert à aplatir les cartes des caractéristiques en une seule dimension.
— Couches Denses :
— les couches n’ont pas de hauteur ni de largeur ; ce sont des couches entièrement
connectées où la ’profondeur’ est le nombre de neurones dans la couche.
— Première Couche Dense : 64 unités avec activation ReLU et coefficient de régularisation
L2 de 0.00.

4
— Seconde Couche Dense : 10 unités avec activation softmax pour la classification
multiclasse et coefficient de régularisation L2 de 0.00.
En outre, il est important de noter les paramètres entraı̂nables de notre modèle, qui
se réfèrent aux paramètres du réseau qui peuvent être ajustés par l’apprentissage pendant
l’entraı̂nement de notre modèle, cela inclut les poids et les biais des couches du réseau.
Dans notre réseau, nous avons 2 types de couches qui ont des paramètres entraı̂nables les
couches Denses et les couches de Convolution. Ils sont calculés comme suit :
— Couches de Convolution : ppm ˆ n ˆ dq ` 1q ˚ kq, qui peut être écrit
comme : ((forme de la largeur du filtre * forme de la hauteur du filtre * nombre de
filtres dans la couche précédente+1)*nombre de filtres)
— Couches Denses : ppc˚pq`1˚cq, qui peut être écrit comme : ((neurones de la couche
actuelle * neurones de la couche précédente)+1*neurones de la couche actuelle)
Dans notre cas, la couche de sortie utilise souvent une fonction d’activation softmax,
qui code les probabilités des classes. La fonction softmax convertit les valeurs brutes des
neurones de sortie en probabilités qui se somment à un, chaque neurone représentant la
probabilité que l’entrée appartienne à une classe particulière. Le nombre de neurones dans
la couche de sortie correspond au nombre de classes dans la tâche de classification. Pour
un problème avec 10 classes, vous auriez une couche de sortie avec 10 neurones, chacun
représentant la probabilité d’une classe.

4 Apprentissage
Dans l’aspect apprentissage de notre tâche, il y a 3 notions fondamentales pour ce
processus, elles sont :
— Époque : Un passage complet à travers l’ensemble des données d’entraı̂nement.
Nécessite de nombreuses époques pour une convergence optimale.
— Étape : Un passage à travers un lot de l’ensemble des données d’entraı̂nement,
contribuant à une époque.
— Lot : Un sous-ensemble des données d’entraı̂nement pour une mise à jour des pa-
ramètres du modèle.
Nous voulons maintenant analyser comment la modification de la taille du ’batchsize’
affecte le processus d’apprentissage. Au début, nous l’avons utilisé égal à 32, et nous l’avons
également utilisé à 16 et 64, comme moyen de voir la manière dont cela affecte le processus
d’apprentissage. Lorsque nous avons augmenté le batchsize, nous avons trouvé que cela
accélérait le temps de calcul d’une étape mais n’avons pas vraiment remarqué d’influence sur
le temps nécessaire pour calculer une époque. Lorsque nous avons augmenté sa taille, nous
avons vu un peu l’opposé. Concernant les courbes d’apprentissage, augmenter le batchsize
fait que le modèle a du mal avec la généralisation, comme le montrent les fluctuations
plus importantes et les performances de validation plus médiocres. La taille de lot plus

5
grande pourrait causer le processus d’optimisation à se stabiliser dans des régions moins
optimales de l’espace des poids. Avec un batchsize plus petit, le modèle semble apprendre
mieux, indiqué par les courbes plus lisses et une meilleure performance de validation. Cela
pourrait être dû aux mises à jour plus fréquentes permettant au modèle de naviguer plus
efficacement dans le paysage d’optimisation.

Figure 1 – Learning curves with batchsize = 16

6
Figure 2 – Learning curves with batchsize = 32

Figure 3 – Learning curves with batchsize = 64

Un autre aspect important concernant l’étape d’apprentissage de notre modèle est les
fonctions d’optimisation, qui sont au cœur du processus d’apprentissage. Le choix d’une

7
fonction d’optimisation affecte la vitesse et la qualité de l’apprentissage. Des méthodes
simples comme la Descente de Gradient Stochastique (SGD) fournissent une approche de
base, introduisant de l’aléatoire dans les mises à jour des paramètres qui peuvent aider à
trouver des minima globaux mais peuvent nécessiter un réglage minutieux et des temps
d’entraı̂nement plus longs.
Des améliorations comme SGD avec Momentum accélèrent l’apprentissage en ajoutant
une fraction de la mise à jour précédente à l’actuelle, ce qui propulse les paramètres vers
l’optimum de manière plus stable et aide à éviter de rester bloqué dans des minima locaux.
Des optimiseurs avancés comme Adam adaptent le taux d’apprentissage pour chaque
paramètre basé sur des estimations des premiers et seconds moments des gradients. Cette
adaptabilité rend Adam exceptionnellement bien adapté pour les espaces de paramètres à
haute dimension dans les CNN, où il atteint constamment de bonnes performances avec un
réglage minimal des paramètres.

5 Hyperparamètres
Les réseaux de neurones convolutionnels (CNN) dépendent fortement des hyperpa-
ramètres, qui sont des configurations prédéfinies qui façonnent la structure du réseau et les
dynamiques d’apprentissage. Les suivants sont présents dans notre carnet :
— Nombre de Filtres dans Conv2D : filters=8 influence la complexité et la charge
computationnelle du modèle.
— Taille du Noyau dans Conv2D : kernel size = (3, 3) affecte la granularité
des caractéristiques extraites.
— Fonctions d’Activation : ’relu’ et ’softmax’ régissent les transformations non
linéaires appliquées aux entrées.
— Padding dans Conv2D : ’same’ assure que les dimensions spatiales du tenseur de
sortie sont préservées.
— Régularisation : l2(0.00) applique une régularisation pour atténuer le surappren-
tissage, bien qu’elle soit réglée pour n’avoir aucun effet dans ce modèle.
— Taux d’Abandon (Dropout) : Dropout(0.0) est destiné à prévenir le surappren-
tissage en désactivant aléatoirement des unités d’entrée, bien qu’il ne soit pas actif
dans ce cas.
— Taille de la Couche Dense : Dense(64, ...) détermine la complexité des com-
binaisons de caractéristiques avant la couche de sortie.
— Taille du Lot (Batch Size) : batch size=64 et batch size=8 influencent l’esti-
mation du gradient et la vitesse des mises à jour.
— Nombre d’Époques : epochs=20 et epochs=10 affectent la qualité de l’apprentis-
sage du modèle à partir de l’ensemble des données.
— Taux d’Apprentissage du SGD : learning rate=0.01 est crucial pour la vitesse
de convergence et la précision du modèle.

8
— Momentum dans SGD : momentum=0.0 est destiné à accélérer la convergence, bien
qu’il ne soit pas utilisé dans cette configuration.

6 Structuration des données


Dans le domaine de la reconnaissance d’images et de nombreuses autres applications IA,
nous avons la division de l’ensemble de données en 3 parties : l’entraı̂nement, la validation
et les tests. Cette approche structurée vise à garantir la robustesse du modèle et de ses
résultats, lui permettant d’extrapoler correctement à de nouveaux ensembles de données.
Nous allons maintenant explorer un peu chacun de ces ensembles :
— Ensemble d’entraı̂nement : il est responsable de la base du processus d’appren-
tissage du modèle. Il est vital qu’il possède une qualité et une taille suffisantes,
généralement entre 60%à 80% de l’ensemble des données, car cela influence direc-
tement la capacité du modèle à apprendre les motifs présents dans les données. De
plus, il est nécessaire de ne pas se fier uniquement à lui, car cela peut conduire à un
surapprentissage, où le modèle apprend trop bien à partir de cet ensemble, résultant
en une diminution de sa performance sur de nouvelles données.
— Ensemble de validation : Son utilisation est principalement associée à la miti-
gation de l’occurrence du surapprentissage, donc elle est utilisée pendant la phase
d’entraı̂nement comme moyen de peaufiner les paramètres du modèle et de fournir
une évaluation impartiale du modèle. À travers elle, nous pouvons évaluer les progrès
d’apprentissage du modèle. Ainsi, nous pouvons nous baser sur la performance du
modèle sur l’ensemble de validation pour ajuster notre modèle. Habituellement, il
représente de 10% à 20% de l’ensemble des données.
— Ensemble de test : Il est utilisé comme l’évaluation finale pour garantir que les
prédictions du modèle ne reflètent pas simplement les motifs observés dans les en-
sembles d’entraı̂nement et de validation, en l’exposant à des données qu’il n’a jamais
vues, offrant ainsi une évaluation impartiale de sa performance.
Il est donc clair que cette approche facilite non seulement l’entraı̂nement efficace des
modèles mais assure également leur fiabilité et leur généralisabilité à de nouvelles données.
Elle établit un équilibre entre l’apprentissage à partir des données et l’évitement du surap-
prentissage, maximisant ainsi la performance du modèle dans les applications pratiques.
Un autre aspect important à aborder concernant les données qui sont fournies au modèle
est l’aspect de la normalisation/standardisation. Cela aide à augmenter l’efficacité des
modèles d’apprentissage automatique, en particulier des CNN. En standardisant la gamme
des valeurs de pixels à travers les images, la normalisation assure que le modèle ne devient
pas biaisé envers des échelles ou des grandeurs particulières de données d’entrée. Cette stan-
dardisation facilite une convergence plus rapide et plus stable pendant l’entraı̂nement, car
elle empêche les gradients de devenir trop grands ou trop petits, améliorant ainsi la vitesse
d’entraı̂nement et la performance globale. De plus, la normalisation rend le modèle plus ro-

9
buste et généralisable aux variations de l’éclairage, du contraste et d’autres caractéristiques
photographiques des images.
Dans notre carnet, nous avons utilisé la fonction ’standardize’ pour normaliser les images
de cifar 10, elle a suivi les étapes suivantes :
1. Calcul de la Moyenne (img data mean) : La moyenne de chaque canal de couleur
est calculée sur l’ensemble de l’image (hauteur et largeur), réduisant efficacement
chaque image à une moyenne par canal. Cela aide à centrer les données autour de
zéro.
2. Calcul de l’Écart Type (img data std) : L’écart type est également calculé pour
chaque canal de couleur de chaque image. Cela mesure la dispersion des valeurs de
pixels par rapport à la moyenne.
3. Normalisation : Chaque pixel de l’image est normalisé en soustrayant la moyenne et
en divisant par l’écart type. Cette opération est appliquée individuellement à chaque
canal de couleur de chaque image.
Normaliser les entrées est une étape cruciale du prétraitement qui bénéficie significative-
ment au processus d’apprentissage de plusieurs manières. Premièrement, cela peut accélérer
la convergence de l’algorithme d’apprentissage en standardisant les caractéristiques pour
être à une échelle comparable. Cet ajustement accélère non seulement le processus d’ap-
prentissage mais assure également un chemin plus doux et plus efficace pour atteindre
une performance optimale. Deuxièmement, la normalisation aide à réduire le biais ini-
tial au sein du réseau. Elle aborde le problème où certains poids peuvent influencer de
manière disproportionnée le résultat de l’apprentissage, soit en étant trop grands ou trop
petits par rapport aux autres, empêchant ainsi des schémas d’apprentissage inefficaces.
En outre, en mettant les données dans un format standardisé, la normalisation améliore
la performance globale et la stabilité du modèle, en particulier lorsqu’il s’agit de données
non vues. Elle minimise le risque que le modèle suradapte à l’échelle ou à la distribu-
tion des données d’entraı̂nement, rendant ainsi les prédictions plus fiables et robustes à
travers différents ensembles de données. Enfin, dans le contexte des réseaux neuronaux
convolutionnels (CNN) et d’autres cadres d’apprentissage profond, une entrée normalisée
est essentielle pour prévenir la saturation des neurones et assurer que les gradients restent
dans une plage gérable pendant le processus de rétropropagation. Cela est vital pour l’en-
traı̂nement efficace des réseaux neuronaux profonds, car cela aide à maintenir le flux de
gradient à travers de nombreuses couches sans diminuer ou exploser, facilitant ainsi des
architectures d’apprentissage plus profondes et plus complexes.

7 Sur-apprentissage
Pour explorer l’occurrence du sur-apprentissage, nous avons décidé de modifier le modèle
original qui nous a été donné. Plus précisément, nous avons augmenté le taux d’apprentis-
sage (0.1), choisi un algorithme d’optimisation plus simple (SGD) et augmenté le nombre

10
d’époques (100). Tout cela avait pour intention de provoquer un sur-apprentissage dans
notre modèle, ce qui nous a donné les résultats suivants :

Figure 4 – Result of the overfitted model

Figure 5 – Learning curve of the overffited model

Les courbes d’apprentissage révèlent certaines raisons potentielles de cette faible per-
formance. La perte d’entraı̂nement diminue initialement mais devient ensuite erratique,
tandis que la perte de validation est très instable et augmente généralement au fil du
temps. La précision de l’entraı̂nement s’améliore mais atteint un plateau à un niveau qui

11
n’est pas particulièrement élevé, et la précision de la validation est à la fois faible et volatile.
Cependant, cela n’indique pas nécessairement un sur-apprentissage, qui est généralement
caractérisé par une faible perte d’entraı̂nement avec une perte de validation élevée, et une
précision d’entraı̂nement élevée avec une précision de validation faible, les écarts entre les
deux s’élargissant avec le temps. Comme le montre la figure suivante :

Figure 6 – Overffited learning curve

Mais nous avons aussi le modèle qui fonctionne vraiment bien sur les données d’en-
traı̂nement et mal sur la validation comme il suit :

Figure 7 – Training results of the overfitted model

Nous allons donc supposer que le modèle est sur-ajusté. Et nous allons analyser comment
chacun des paramètres que nous avons changés par rapport au modèle original peut changer
nos résultats.

7.1 Learning rate


Ici, nous avons uniquement réduit le taux d’apprentissage, de 0.1 à 0.01. Voici nos
résultats :

12
Figure 8 – Results when we changed the learning rate

Figure 9 – Learning curve when we changed the learning rate

La courbe d’apprentissage montre un modèle qui semble apprendre efficacement au


début, comme indiqué par la diminution rapide de la perte d’entraı̂nement. Cependant, la
perte de validation dépasse bientôt la perte d’entraı̂nement et continue d’augmenter pour le
reste de l’entraı̂nement, ce qui est un signe clair de sur-apprentissage. Même si la précision
a augmenté.

13
7.2 Algorithme d’optimisation
Ici, nous avons utilisé ADAM (lr=0.01), ce qui nous a donné les résultats suivants :

Figure 10 – Results when we used ADAM

Figure 11 – Learning curve when we used ADAM

La courbe d’apprentissage illustrée dans l’image montre à la fois la perte d’entraı̂nement


et de validation oscillant considérablement tout au long du processus d’entraı̂nement. La

14
précision de l’entraı̂nement et de la validation est extrêmement faible, à peine au-dessus
de 10%, et elles affichent également beaucoup de volatilité. Ce comportement suggère que
le modèle n’apprend pas efficacement. Il est donc aussi bon que le hasard. Une autre
chose curieuse est qu’il classe tout comme une grenouille. Cela peut être causé par le taux
d’apprentissage élevé qui rend les mises à jour de poids trop importantes, ou même le
nombre élevé d’époques peut contribuer au taux d’apprentissage élevé.
Un cas similaire se produit lorsque nous réduisons uniquement le nombre d’époques.

8 Cartes d’activation
Les cartes d’activation montrent des zones plus lumineuses où les filtres de la première
couche convolutionnelle répondent plus fortement aux caractéristiques dans les images
d’entrée. Cela pourrait être des bords, des textures ou des motifs que la couche a ap-
pris à reconnaı̂tre. Ce type de visualisation aide à comprendre sur quoi le réseau neuronal
porte son attention dans les premières étapes de l’extraction de caractéristiques.
Maintenant, nous examinerons les cartes d’activation de notre modèle proposé, qui se
présente comme suit :

Figure 12 – Activation map from our proposed model

Nous pouvons clairement voir que la première couche observe les bords dans les images,
comme si elle essayait de déterminer les contours des éléments. Nous nous attendons à
ce que, à mesure que nous avançons dans les couches plus profondes, elles commencent à
”chercher” des caractéristiques plus complexes comme les yeux, les jambes et les roues.
Pour comparaison, nous examinerons la carte d’activation du modèle surajusté.

Figure 13 – Activation map from the overfitted model

Nous pouvons clairement voir qu’il est moins bon pour détecter les bords et les contours,
ce qui reflète la mauvaise performance de ce modèle.

15
9 Conclusion
Dans ce projet, nous avons expérimenté l’utilisation des réseaux de neurones convolu-
tionnels (CNN) pour la classification d’images, en utilisant l’API Keras pour nos expériences.
Nous avons appris combien il est crucial de diviser les données en ensembles d’entraı̂nement,
de validation et de test, ainsi que la normalisation appropriée des données, pour construire
un modèle robuste. Notre travail comprenait la conception de l’architecture du réseau,
l’entraı̂nement du modèle et l’ajustement des hyperparamètres pour améliorer la perfor-
mance. À travers ces étapes, nous avons significativement amélioré la précision de notre
modèle dans la classification des images. Nous avons également abordé le défi du surap-
prentissage, en employant des stratégies comme des conceptions de modèles complexes et
la régularisation pour faire en sorte que notre modèle fonctionne bien non seulement sur
nos données d’entraı̂nement, mais aussi sur de nouvelles images inconnues. Ce projet a
démontré l’efficacité des CNN dans la reconnaissance d’images et l’importance du réglage
fin du modèle pour atteindre des résultats optimaux.

10 Bibliography :
— Keras documentation : Keras 3 API documentation. (s.d.). Keras : Deep Learning for
humans. https ://keras.io/api/
— SENGUPTA, J. (2023, 21 de maio). How to decide the hyperparameters in CNN. Me-
dium. https ://medium.com/@sengupta.joy4u/how-to-decide-the-hyperparameters-in-
cnn-bfa37b608046
— Vasudev, R. (2019, 11 de fevereiro). Understanding and Calculating the number of Pa-
rameters in Convolution Neural Networks (CNNs). Medium. https ://towardsdatascience.com/unders
and-calculating-the-number-of-parameters-in-convolution-neural-networks-cnns-fc88790d530d : :text=
— Convolutional Neural Network (CNN) : Tensorflow Core. TensorFlow. (n.d.). https ://www.tensorflow
— Identification of COVID-19 samples from chest X-Ray images using deep learning : A
comparison of transfer learning approaches - Scientific Figure on ResearchGate. Avai-
lable from : https ://www.researchgate.net/figure/An-example-of-an-overfitted-accuracy-
loss-curve-while-training-DenseNet201-without-dataf ig33 43584572raccessed1Apr, 2024s

16

Vous aimerez peut-être aussi