Les réseaux de neurones
convolutifs: CNN
Haythem Ghazouani
Introduction
Introduction: C’est quoi un ConvNet?
Algorithme de Deep Learning qui peut prendre en entrée une image
Attribue de l'importance (poids et biais d'apprentissage) à divers
aspects/objets de l'image
Différencier ces objets les uns des autres
Peu ou pas de pré-traitement
Capable de lire les filtres nécessaires pour extraire les caractéristiques
importantes
Introduction: Pourquoi les ConvNet?
Une image est une matrice (3x3 dans l’exemple)
Pourquoi ne pas aplatir (Flatten) l’image et la donner en entrée à un MLP
(Muti-Layer-Perceptron) ?
Ça peut marcher pour les images de petites tailles
Flatten a 3x3 image
• Introduction: Pourquoi les ConvNet?
Imaginons maintenant une image RGB (Red, Green, and Blue channels)
Calculs complexe une fois que les images atteindraient des dimensions dites
8K (7680 × 4320)
Introduction: Pourquoi les ConvNet?
Le rôle du ConvNet est de réduire les images sous une forme plus facile à
traiter,
Sans perdre les fonctionnalités essentielles pour obtenir une bonne
prédiction.
Une architecture qui fait de l'apprentissage des fonctionnalités,
mais qui est également évolutive pour des ensembles de données massifs.
Architecture
Couche de convolution — Le noyau
Couche de convolution — Le noyau
Image de dimension 5x5x1 (un seul channel: binaire)
Dans la démonstration ci-dessus, la section verte
ressemble à notre image d'entrée 5x5x1, I.
L'élément impliqué dans la réalisation de l'opération
de convolution dans la première partie d'une couche
convolutive est appelé le noyau/filtre, K, représenté
en jaune.
K a été choisi comme une matrice 3x3x1.
K=1 0 1
0 1 0
1 0 1
Couche de convolution — Le noyau
Le noyau se décale 9 fois en raison de la longueur de foulée = 1
(Stride Length)
à chaque fois une opération de multiplication matricielle entre K et la
partie P de l'image sur laquelle le noyau survole.
Couche de convolution — Le noyau
Le filtre se déplace vers la droite avec une certaine valeur de foulée jusqu'à
ce qu'il analyse toute la largeur.
En continuant, il saute au début (à gauche) de l'image avec la même valeur de
foulée et répète le processus jusqu'à ce que l'image entière soit parcourue.
Mouvement du noyau
Couche de convolution — Le noyau
Opération de convolution sur une matrice d'images RGB MxNx3 avec un noyau 3x3x3
Couche de convolution — Le noyau
Il existe deux types de résultats pour l'opération : l'un dans lequel l'entité
convoluée est réduite en dimensionnalité par rapport à l'entrée,
et l'autre dans laquelle la dimensionnalité est augmentée ou reste la même.
Cela se fait en appliquant un remplissage valide (Valid Padding) dans le cas du
premier ou le même remplissage (Same Padding) dans le cas du dernier.
Couche de convolution — Le noyau
Lorsque nous augmentons l'image 5x5x1
en une image 6x6x1 puis appliquons le
noyau 3x3x1 dessus, nous constatons
que la matrice convoluée s'avère être
de dimensions 5x5x1. D'où le nom -
Même rembourrage (Same Padding).
D'un autre côté, si nous effectuons la
même opération sans remplissage, nous
aurons une matrice qui a les dimensions
du noyau (3x3x1) lui-même – (Valid
Padding).
Couche de convolution — Le noyau
L'objectif de l'opération de convolution est d'extraire les caractéristiques de
haut niveau telles que les contours de l'image d'entrée (Edge).
Les ConvNets n'ont pas besoin d'être limités à une seule couche convolutive.
la première ConvLayer est responsable de la capture des caractéristiques de
bas niveau telles que les contours, la couleur, l'orientation du gradient, etc.
En ajoutant d’autres couches, l'architecture serait capable d’extraire des
caractéristiques de haut niveau,
Il en résulte un réseau qui a la bonne compréhension des images dans le jeu
de données (dataset)
Couche Pooling
la couche Pooling est responsable de la réduction de la taille spatiale de
l‘image convoluée.
Il s'agit de réduire la puissance de calcul requise pour traiter les données
grâce à la réduction de la dimensionnalité.
De plus, il est utile pour extraire les caractéristiques dominantes qui sont
invariantes à la position et à la rotation.
Couche Pooling
Il existe deux types de mise en commun : Max Pooling et Average Pooling.
Max Pooling renvoie la valeur maximale de la partie de l'image couverte par le
noyau.
Average Pooling renvoie la moyenne de toutes les valeurs de la partie de l'image
couverte par le noyau.
La ième couche d’un ConvNet
La couche convolutive et la couche Pooling forment ensemble la ième couche
d'un réseau de neurones convolutifs.
En fonction de la complexité des images, le nombre de ces couches peut être
augmenté pour capturer encore plus les détails de bas niveau, mais au prix d'une
puissance de calcul plus importante.
Avec une telle architecture, le modèle sera capable de comprendre les
caractéristiques et de les extraire.
Ces caractéristiques seront aplaties dans la sortie finale et la transmettre à un
réseau neuronal normal à des fins de classification.
Classification — Fully Connected Layer (FC
Layer)
Classification — Fully Connected Layer
(FC Layer)
L'ajout d'une couche FC est un moyen (généralement) bon marché
d'apprendre des combinaisons non linéaires des caractéristiques de haut
niveau représentées par la sortie de la couche convolutive.
La couche FC apprend une fonction éventuellement non linéaire dans cet
espace.
Maintenant que nous avons converti notre image d'entrée en une forme
appropriée pour notre Perceptron multi-niveaux (MLP), nous allons aplatir
l'image en un vecteur colonne.
La sortie aplatie est transmise à un réseau de neurones à anticipation et à
rétropropagation appliquée à chaque itération de l’entrainement (Training).
Sur une série d'époques (Epochs), le modèle est capable de distinguer les
caractéristiques dominantes de certaines caractéristiques de bas niveau dans
les images et de les classer à l'aide de la technique de classification Softmax.
Classification — Fully Connected Layer
(FC Layer)
Il existe diverses architectures de CNN disponibles qui ont joué un rôle clé
dans la création d'algorithmes qui alimentent et alimenteront l'IA dans son
ensemble dans un avenir prévisible.
Certains d'entre eux ont été énumérés ci-dessous :
1. LeNet
2. AlexNet
3. VGGNet
4. GoogLeNet
5. ResNet
6. ZFNet
Exemple: classification de fleurs en
utilisant une architecture CNN
Le Notebook suivant illustre un exemple de classification de fleurs en 5
classes (Marguerite, pissenlit, roses, tournesols et tulipes) en utilisant les
réseaux CNN.
Ce didacticiel utilise un ensemble de données d'environ 3 700 photos de
fleurs.
Lien:
[Link]
kB?usp=sharing