Vous êtes sur la page 1sur 92

Les réseaux de neurones convolutionnels

Les réseaux de neurones convolutionnels


I. Introduction
II. Architecture de base de CNN
les couches convolutionnelles,
les couches de sous échantillonnage(pooling)
les couches entièrement connectées
III. Architecture CNN
Introduction
Notation: réseau de neurones convolutifs ou réseau de neurones à convolution (en
anglais CNN ou ConvNet pour Convolutional Neural Networks)

Technique d'apprentissage profond a base de plusieurs couches.


Les ConvNets s'inspirent du cortex visuel biologique qui comporte de petites régions de cellules
qui sont sensibles à des régions spécifiques du champ visuel.
• cette structure est constituée d’un arrangement complexe de cellules. Ces cellules
fonctionnent comme des filtres locaux sur l’image et sont adaptées à l’exploration des
corrélations spatiale forte présente dans les images.
Dense neural network and Convolutional neural
network
Introduction

• Un CNN intègre à la fois la détermination des descripteurs (apprit par les premières couches)
et un système de classification.
Introduction
• Un CNN intègre à la fois la détermination des descripteurs (apprit par les premières couches)
et un système de classification.
Introduction
ConvNets ont montré d'excellentes performances sur plusieurs applications:
La classification, la détection d'objets, la reconnaissance vocale, le traitement du langage
naturel et l'analyse d'images médicales.

Principe: est d'obtenir des caractéristiques locales à partir de l'entrée (généralement une image)
dans les couches supérieures et de les combiner en caractéristiques plus complexes dans les
couches inférieures.
Introduction
Cependant, en raison de son architecture multicouche, il est exorbitant sur le plan informatique
et la formation de tels réseaux sur un grand ensemble de données prend plusieurs jours. Par
conséquent, ces réseaux profonds sont généralement formés sur GPU. Les réseaux neuronaux
convolutifs sont si puissants sur les tâches visuelles qu'ils surpassent leurs performances.
presque toutes les méthodes conventionnelles
2x2

Convolution + NL Sub-sampling Convolution + NL


Architecture CNN
architecture multicouche,
L’apprentissages de ces réseaux profonds est généralement sur GPU.
Un CNN comprend trois types principaux de couches neuronales
les couches convolutionnelles,
les couches de sous échantillonnage(pooling)
les couches entièrement connectées
des couches entièrement connectées.
Un CNN est une suite de couches de convolution et de sous-échantillonnage suivis par des
couches entièrement liées afin de classifier les données.
Architecture CNN

identité
Architecture CNN: Couche de convolution
L'élément central d'un réseau neuronal convolutionnel
Utilise l'opération de convolution (représentée par *) au lieu de la multiplication
matricielle générale.
Principe: Applique une opération de convolution entre l’image d’entrée et la matrice de
convolution (appelé aussi filtre de convolution) .
13

Filtre de
convolution
Image d’entrée
14

Architecture CNN: Couche de convolution


L'architecture de réseau neuronal convolutionnel comporte de nombreux paramètres qui sont
utilisés pour contrôler le comportement du modèle.
Certains de ces paramètres contrôlent la taille de la sortie tandis que d'autres sont utilisés pour
régler le coût de la fonction modèle (en terme de temps et de mémoire).
Taille de filtre : 3*3, 5*5, 7*7, ...etc
Nombre des filtres : 64, 78, ...etc
Stride : pas du filtrage : 1, 2, ..etc
Padding : effets de bord
15

2. Filtrage par convolution numérique


16

Exemple de convolution 2D
17

Convolution numérique discréte

Généralement, le masque
est de dimension impaire et
symétrique.
18

Convolution numérique discréte


k/2 k/2
I'x, y   Ixi, y j*F(i, j)
ik/2 jk/2
19

Filtrage par convolution: algorithme

Filtrage (entier k, Matrice F , entier x, eniter y)


Debut
Float somme=0

Pour i= -k/2 à k/2 pas +1 faire

Pour j= -k/2 à k/2 pas +1 faire


somme+=I(x+i,y+j)F(i,j);

Fin pour
Fin pour
retourner(somme);
Fin
20

Filtrage spatial et convolution

100 130 110 120 110 ? ? ? ? ?

110 90 100 90 100 ? V ?


W1 W2 W3
130 100 90 130 110 ? ?
W4 W5 W6
120 100 130 110 120 ? ?
W7 W8 W9
90 110 80 120 100 ? ? ? ? ?
Noyau de convolution
Image initiale (Masque) Image résultat

V = 100 * W1 + 130 * W2+ 110 * W3 +


110 * W4 + 90 * W5 + 100 * W6 +
130 * W7 + 100 * W8 + 90 * W9
21

Convolution nmérique
k/2 k/2
I'x, y   Ixi, y j*F(i k/2, j k/2)
ik/2 jk/2
22

Filtrage par convolution: algorithme


Filtrage (entier k, Matrice F , entier x, eniter y)
Debut
Float somme=0
entier fi=0, fj;
Pour i= -k/2 à k/2 pas +1 faire
fj=0
Pour j= -k/2 à k/2 pas +1 faire
somme+=I(x+i,y+j)F(fi,fj);
fj++;
Fin pour
fi++,
Fin pour
retourner(somme);
Fin
23

Convolution numérique R=I*K


24

Convolution numérique R=I*K


25

Convolution numérique R=I*K


26

Convolution numérique R=I*K


27

Effets de bord

Que faire pour les effets de bord ?


28

Effets de bord

Ne pas filtrer les bords

100 130 110 120 110 100 130 110 120 110

110 90 100 90 100 110 100

130 100 90 130 110 130 110

120 100 130 110 120 120 120

90 110 80 120 100 90 110 80 120 100

Image initiale Image résultat


29

Effets de bord

Mise à zéro de la couronne

0 0 0 0 0 0 0

0 100 130 110 120 110 0

0 110 90 100 90 100 0

0 130 100 90 130 110 0

0 120 100 130 110 120 0

0 90 110 80 120 100 0

0 0 0 0 0 0 0
Image résultat

Image initiale
30

Effets de bord

Réaliser un effet de miroir

100 100 130 110 120 110 110

100 100 130 110 120 110 110

110 110 90 100 90 100 100

130 130 100 90 130 110 110

120 120 100 130 110 120 120

90 90 110 80 120 100 100

90 90 110 80 120 100 100


Image résultat
Image initiale
31

Masque de convolution
32

deux types de filtrage spatial


A convolutional layer
A CNN is a neural network with some convolutional layers
(and some other layers). A convolutional layer has a number
of filters that does convolutional operation.

Beak detector

A filter
Convolution These are the network
parameters to be learned.

1 -1 -1
1 0 0 0 0 1 -1 1 -1 Filter 1
0 1 0 0 1 0 -1 -1 1
0 0 1 1 0 0
1 0 0 0 1 0 -1 1 -1
-1 1 -1 Filter 2
0 1 0 0 1 0
0 0 1 0 1 0 -1 1 -1



6 x 6 image
Each filter detects a
small pattern (3 x 3).
1 -1 -1
Convolution -1 1 -1 Filter 1
-1 -1 1
stride=1

1 0 0 0 0 1 Dot
product
0 1 0 0 1 0 3 -1
0 0 1 1 0 0
1 0 0 0 1 0
0 1 0 0 1 0
0 0 1 0 1 0

6 x 6 image
1 -1 -1
Convolution -1 1 -1 Filter 1
-1 -1 1
If stride=2

1 0 0 0 0 1
0 1 0 0 1 0 3 -3
0 0 1 1 0 0
1 0 0 0 1 0
0 1 0 0 1 0
0 0 1 0 1 0

6 x 6 image
1 -1 -1
Convolution -1 1 -1 Filter 1
-1 -1 1
stride=1

1 0 0 0 0 1
0 1 0 0 1 0 3 -1 -3 -1
0 0 1 1 0 0
1 0 0 0 1 0 -3 1 0 -3
0 1 0 0 1 0
0 0 1 0 1 0 -3 -3 0 1

6 x 6 image 3 -2 -2 -1
-1 1 -1
Convolution -1 1 -1 Filter 2
-1 1 -1
stride=1
Repeat this for each filter
1 0 0 0 0 1
0 1 0 0 1 0 3 -1 -3 -1
-1 -1 -1 -1
0 0 1 1 0 0
1 0 0 0 1 0 -3 1 0 -3
-1 -1 -2 1
0 1 0 0 1 0 Feature
0 0 1 0 1 0 -3 -3 Map0 1
-1 -1 -2 1

6 x 6 image 3 -2 -2 -1
-1 0 -4 3
Two 4 x 4 images
Forming 2 x 4 x 4 matrix
Color image: RGB 3 channels
1 -1 -1 -1-1 11 -1-1
11 -1-1 -1-1 -1 1 -1
-1 1 -1 -1-1 11 -1-1
-1-1 11 -1-1 Filter 1 -1 1 -1 Filter 2
-1 -1 1 -1-1 11 -1-1
-1-1 -1-1 11 -1 1 -1
Color image
1 0 0 0 0 1
1
0 0 0 0 1
0 11 00 00 01 00 1
0 1 0 0 1 0
0 00 11 01 00 10 0
0 0 1 1 0 0
1 00 00 10 11 00 0
1 0 0 0 1 0
0 11 00 00 01 10 0
0 1 0 0 1 0
0 00 11 00 01 10 0
0 0 1 0 1 0
0 0 1 0 1 0
Convolution v.s. Fully Connected

1 0 0 0 0 1 1 -1 -1 -1 1 -1
0 1 0 0 1 0 -1 1 -1 -1 1 -1
0 0 1 1 0 0 -1 -1 1 -1 1 -1
1 0 0 0 1 0
0 1 0 0 1 0
0 0 1 0 1 0
convolution
image

x1
1 0 0 0 0 1
0 1 0 0 1 0 x2
Fully- 0 0 1 1 0 0
1 0 0 0 1 0
connected



0 1 0 0 1 0
0 0 1 0 1 0
x36
1 -1 -1 Filter 1 1 1
-1 1 -1 2 0
-1 -1 1 3 0
4: 0 3
1 0 0 0 0 1


0 1 0 0 1 0 0
0 0 1 1 0 0 8 1
1 0 0 0 1 0 9 0
0 1 0 0 1 0 10: 0


0 0 1 0 1 0
1 0
6 x 6 image
3 0
14
fewer parameters! 15 1 Only connect to 9
16 1 inputs, not fully
… connected
1 -1 -1 1: 1
-1 1 -1 Filter 1 2: 0
-1 -1 1 3: 0
4: 0 3
1 0 0 0 0 1


0 1 0 0 1 0 7: 0
0 0 1 1 0 0 8: 1
1 0 0 0 1 0 9: 0 -1
0 1 0 0 1 0 10: 0


0 0 1 0 1 0
1 0
6 x 6 image
3: 0
14:
Fewer parameters 15: 1
16: 1 Shared weights
Even fewer parameters …
The whole CNN
cat dog ……
Convolution

Max Pooling
Can
Fully Connected repeat
Feedforward network
Convolution many
times

Max Pooling

Flattened
44

Architecture CNN: Couche de convolution


Taille de filtre
Généralement, les filtres peuvent être de n'importe quelle taille supérieure à 3 × 3 et inférieure
à la taille de l'entrée. C’est une matrice carré de taille impaire.
la taille des filtres conventionnelle varie de 11 × 11 à 3 × 3.
La taille d'un filtre est indépendante de la taille de l'entrée.
Nombre des filtres
Il peut y avoir n'importe quel nombre raisonnable de filtres.
AlexNet a utilisé 96 filtres de taille 11 × 11 seulement dans la première couche de convolution.
VGGNet utilisait 96 filtres de taille 7 × 7
Une autre variante de VGGNet utilisait 64 filtres de taille 11 × 11 dans la première couche de
convolution.
45

Architecture CNN: Couche de convolution


Stride
C'est le nombre de pixels à déplacer à la fois pour définir la matrice d’entré d'un filtre.
Stride = 1 signifie se déplacer d'un pixel à l'autre.
La valeur de stride ne doit pas être trop petite ou trop grande.
Stride trop faible entraînera un chevauchement important des valeurs de sorties
Stride trop grande entraînera un chevauchement moindre
une sortie avec des dimensions plus petites.
46

Architecture CNN: Couche de convolution


Trois hyper paramètres permettent de dimensionner le volume de la couche de convolution
(aussi appelé volume de sortie) : la ’profondeur’, le 'pas' et la ’marge’.
1. 'Profondeur' de la couche : nombre de noyaux de convolution (ou nombre de neurones
associés à un même champ récepteur).
2. 'Le pas' contrôle le chevauchement des champs récepteurs. Plus le pas est petit, plus les
champs récepteurs se chevauchent et plus le volume de sortie sera grand.
3. 'La marge (à 0)' ou 'zero padding ' : parfois, il est commode de mettre des zéros à la
frontière du volume d'entrée. La taille de ce 'zero-padding' est le troisième
hyperparamètre. Cette marge permet de contrôler la dimension spatiale du volume de
sortie. En particulier, il est parfois souhaitable de conserver la même surface que celle du
volume d'entrée
47

Architecture CNN: Couche de convolution


Stride
Itération1: Itération2:
1 2 3 4 1 6 1
1 2 3 4 1 6 1
1 2 0 4 2 6 2
1 2 0 4 2 6 2 1 0 1 1 0 1
1 2 0 1 5 8 1
1 2 0 1 5 8 1
* 0 1 0
*
0 1 0
0 2 3 7 1 0 0
0 2 3 7 1 0 0 1 0 1 1 0 1
2 4 7 2 1 0 0
2 4 7 2 1 0 0 Filtre
0 1 2 4 3 1 1
0 1 2 4 3 1 1 Filtre
1 2 1 0 1 3 1
1 2 1 0 1 3 1
Image d’entré Image pixels
48

Architecture CNN: Couche de convolution


Padding
Décrit le nombre de pixels pour remplir l'image résultante par des zéros.
« Zero padding » est utilisé pour contrôler la taille de l’image de sortie.

0 0 0 0 0 0 0 0
1 2 3 4 1 6
0 1 2 3 4 1 6 0
1 2 0 4 2 6
0 1 2 0 4 2 6 0
1 2 0 1 5 8
0 1 2 0 1 5 8 0
0 2 3 7 1 0
0 0 2 3 7 1 0 0
2 4 7 2 1 0
0 2 4 7 2 1 0 0
0 1 2 4 3 1
0 0 1 2 4 3 1 0
0 0 0 0 0 0 0 0
49

Architecture CNN: Couche de convolution


Chaque filtre de la couche de convolution produit une sortie nommée « carte des
caractéristiques (feature map)»
Chaque carte est de taille ([A-K + 2P]/S) + 1
où A: taille de l’image d'entrée
K : Taille du filtre
P : Padding
S: Stride.
Exemple: Supposons que l'image d'entrée a une taille de 128 × 128, convolué par 5
filtres de taille 5 × 5, avec un stride=1 et zero padding
A 128, F 5, P 0 et S 1.
le nombre de cartes produites sera égal au nombre de filtres appliqués 5
la taille de chaque carte de caractéristiques sera ([128 – 5 + 0]/1) + 1 124
La sortie de d’une convolution d’une image de taile 128*128par 5 filtres de taille 5*5
sera 124 × 124 × 5.
50

Architecture CNN: Couche de convolution


51

Architecture CNN: Couche de pooling


L'image d'entrée est découpée en une série de rectangles de n pixels de côté ne se
chevauchant pas (pooling). Chaque rectangle peut être vu comme une tuile.
Le pooling réduit la taille spatiale d'une image intermédiaire, réduisant ainsi la quantité de
paramètres et de calcul dans le réseau. Il est donc fréquent d'insérer périodiquement une
couche de pooling entre deux couches convolutives successives d'une architecture CNN pour
contrôler l'overfitting (sur-apprentissage).
La forme la plus courante est une couche de mise en commun avec des tuiles de taille 2x2
(largeur/hauteur) et comme valeur de sortie la valeur maximale en entrée (cf. schéma). On
parle dans ce cas de « Max- Pool 2x2 »
52

Architecture CNN: Couche de sous échantillonnage


Réduction de la résolution des cartes de caractéristiques. Placé généralement entre deux
couches convolutives.
Cette réduction de dimensions engendre une perte d’information, en contre partie, cette perte
réduit le coût de traitement et permet les réseaux d’éviter les problèmes de sur apprentissage.
Plusieurs techniques de mise en commun existent dans la littérature, le sous-échantillonnage
maximal (max-pooling) et moyen (average-pooling) sont les plus utilisées
Le pooling permet de gros gains en puissance de calcul.
Il est aussi possible d'éviter la couche de pooling [en] mais cela implique un risque sur-
apprentissage plus important.
53

Architecture CNN: Couche de sous échantillonnage


The whole CNN
cat dog ……
Convolution

Max Pooling
Can
Fully Connected repeat
Feedforward network
Convolution many
times

Max Pooling

Flattened
Max Pooling
1 -1 -1 -1 1 -1
-1 1 -1 Filter 1 -1 1 -1 Filter 2
-1 -1 1 -1 1 -1

3 -1 -3 -1 -1 -1 -1 -1

-3 1 0 -3 -1 -1 -2 1

-3 -3 0 1 -1 -1 -2 1

3 -2 -2 -1 -1 0 -4 3
Why Pooling
• Subsampling pixels will not change the object
bird
bird

Subsampling

We can subsample the pixels to make image


smaller fewer parameters to characterize the image
A CNN compresses a fully connected network in two
ways: • Reducing number of connections
• Shared weights on the edges
• Max pooling further reduces the complexity
Max Pooling

New image
1 0 0 0 0 1 but smaller
0 1 0 0 1 0 Conv
3 0
0 0 1 1 0 0 -1 1
1 0 0 0 1 0
0 1 0 0 1 0 Max 3 1
0 3
0 0 1 0 1 0 Pooling
2 x 2 image
6 x 6 image
Each filter
is a channel
59

Architecture CNN: Couche de correction RELU


Souvent, il est possible d'améliorer l'efficacité du traitement en intercalant entre les couches
de traitement une couche qui va opérer une fonction mathématique (fonction d'activation) sur
les signaux de sortie.
Souvent, la correction Relu est préférable, car il en résulte la formation de réseau neuronal
plusieurs fois plus rapide, sans faire une différence significative à la généralisation de
précision. On a notamment :
• La correction ReLU (abréviation de Unités Rectifié linéaires) : f(x)=max (0,x). Cette
fonction, appelée aussi « fonction d'activation non saturante », augmente les propriétés
non linéaires de la fonction de décision et de l'ensemble du réseau sans affecter les
champs récepteurs de la couche de convolution.
• La correction par tangente hyperbolique f(x)=tanh(x).
• La correction par la tangente hyperbolique saturante : f(x)=|tanh(x)|.
• La correction par la fonction sigmoïde.
60

Architecture CNN: fonction d’activation

Fonction d’activation:
La sortie de chaque couche convolutionnelle est envoyée à une couche de fonction d'activation (ou directement
fonction d’activation) .
La couche de fonction d'activation se compose d'une fonction d'activation qui prend la carte de caractéristiques
produite par la couche convolutionnelle et génère la carte d'activation comme sa sortie.
La fonction d'activation est utilisée pour transformer le niveau d'activation d'un neurone en une fonction signal de
sortie.
Une fonction d'activation a généralement un effet d'écrasement qui prend une entrée (un nombre), effectue
quelques opération mathématique et délivre le niveau d'activation d'un neurone entre a 0 à 1 ou -1 à 1
61

Architecture CNN: fonction d’activation

Fonction d’activation:
La plus commune ReLU

ReLU
F(x)=max(0,x)
62

Architecture CNN: Couche entièrement connecté


Les réseaux neuronaux convolutifs se composent de deux étapes :
• Étape d'extraction des caractéristiques : couches de convolution + sous échantillonnage
• Etape de classification composée d'un ou plusieurs couches entièrement connectées

Après plusieurs couches de convolution et de max-pooling, le raisonnement de haut niveau


dans le réseau neuronal se fait via des couches entièrement connectées.
Relier chaque neurones de la couche précédente par les neurones de cette couches pour effectuer un
raisonnement de haut niveau et prendre une décision basée sur ces caractéristiques détectées.
63

Architecture CNN: Couche entièrement connecté


64

Architecture CNN: Couche entièrement connecté


En cas de problème de classification, la tâche utilise les caractéristiques détectées dans le domaine spatial
pour obtenir des probabilités que ces caractéristiques représentent chaque classe, c'est-à-dire obtenir le
score de la classe. Ceci est fait en ajoutant une ou plusieurs couches entièrement connectées à la fin.
Dans la couche entièrement connectée, chaque neurone de la couche précédente (couche de convolution
ou couche de regroupement ou couche entièrement connectée) est connecté à chaque neurone de la
couche suivante et chaque valeur contribue à prédire à quel point une valeur correspond à une classe
particulière.
65

Architecture CNN: Couche entièrement connecté


66

Architecture CNN: Couche entièrement connecté


The whole CNN
3 0
-1 1 Convolution

3 1
0 3
Max Pooling
A new image Can
repeat
Convolution many
Smaller than the original
times
image
The number of channels Max Pooling

is the number of filters


The whole CNN
cat dog ……
Convolution

Max Pooling

Fully Connected A new image


Feedforward network
Convolution

Max Pooling

Flattened A new image


3
Flattening
0

1
3 0
-1 1 3

3 1 -1
0 3 Flattened

1 Fully Connected
Feedforward network

3
Only modified the network structure and input
CNN in Keras format (vector -> 3-D tensor)

input

Convolution
1 -1 -1
-1 1 -1
-1 1 -1
-1 1 -1 … There are
-1 -1 1 25 3x3
-1 1 -1 … Max Pooling
filters.
Input_shape = ( 28 , 28 , 1)

28 x 28 pixels 1: black/white, 3: RGB Convolution

3 -1 3 Max Pooling

-3 1
Only modified the network structure and input
CNN in Keras format (vector -> 3-D array)

Input
1 x 28 x 28

Convolution
How many parameters for
each filter? 9 25 x 26 x 26

Max Pooling
25 x 13 x 13

Convolution
How many parameters 225=
for each filter? 50 x 11 x 11
25x9
Max Pooling
50 x 5 x 5
Only modified the network structure and input
CNN in Keras format (vector -> 3-D array)

Input
1 x 28 x 28

Output Convolution

25 x 26 x 26
Fully connected Max Pooling
feedforward network
25 x 13 x 13

Convolution
50 x 11 x 11

Max Pooling
1250 50 x 5 x 5
Flattened
AlphaGo

Next move
Neural
(19 x 19
Network positions)

19 x 19 matrix
Fully-connected feedforward network
Black: 1
can be used
white: -1
none: 0 But CNN performs much better
74

Architecture CNN: Couche de perte Loss


La couche de perte spécifie comment l'entrainement du réseau pénalise l'écart entre le
signal prévu et réel. Elle est normalement la dernière couche dans le réseau. Diverses
fonctions de perte adaptées à différentes tâches peuvent y être utilisées. La perte « Soft
max »est utilisée pour prédire une seule classe parmi K classes mutuellement exclusives.
La perte par entropie croisée sigmoïde est utilisée pour prédire K valeurs de probabilité
indépendante dans [0,1] .
La perte euclidienne est utilisée pour régresser vers des valeurs réelles.
75

Architecture CNN: choix des hyperparamétres


Nombre de filtres :
Comme la taille des images intermédiaires diminue avec la profondeur du traitement,
les couches proches de l'entrée ont tendance à avoir moins de filtres tandis que les
couches plus proches de la sortie peuvent en avoir davantage. Pour égaliser le calcul à
chaque couche, le produit du nombre de caractéristiques et le nombre de pixels traités
est généralement choisi pour être à peu près constant à travers les couches. Pour
préserver l'information en entrée, il faudrait maintenir le nombre de sorties
intermédiaires (nombre d'images intermédiaire multiplié par le nombre de positions de
pixel) pour être croissante (au sens large) d'une
couche à l'autre.
Le nombre d'images intermédiaires contrôle directement la puissance du système,
dépend du nombre d'exemples disponibles et la complexité du traitement.
76

Architecture CNN: choix des hyperparamétres


Forme de filtres :
Les formes de filtre varient grandement dans la littérature. Ils sont généralement choisis
en fonction de l'ensemble de données. Les meilleurs résultats sur les images de MNIST
(28x28) sont habituellement dans la gamme de 5x5 sur la première couche, tandis que
les ensembles
de données d'images naturelles (souvent avec des centaines de pixels dans chaque
dimension) ont tendance à utiliser de plus grands filtres de première couche de 12x12,
voire 15x15.
Le défi est donc de trouver le bon niveau de granularité de manière à créer des
abstractions à l'échelle appropriée et adaptée à chaque cas.
77

Architecture CNN: choix des hyperparamétres


Forme de max-pooling :
Les valeurs typiques sont 2x2(figure 8). De très grands volumes d'entrée peuvent
justifier un pooling 4x4 dans les premières couches. Cependant, le choix de formes plus
grandes va considérablement réduire la dimension du signal, et peut entraîner la perte
de trop d'information.
78

Avantage des CNN


Un avantage majeur des réseaux convolutifs est l'utilisation d'un poids unique associé
aux signaux entrant dans tous les neurones d'un même noyau de convolution. Cette
méthode réduit l'empreinte mémoire, améliore les performances (13)et permet une
invariance du traitement par translation. C'est le principal avantage du CNN par rapport
au MLP, qui lui considère chaque neurone indépendant et donc affecte un poids
différent à chaque signal entrant.
Comparés à d'autres algorithmes de classification de l'image, les réseaux de neurones
convolutifs utilisent relativement peu de pré-traitement. Cela signifie que le réseau est
responsable de faire évoluer tout seul ses propres filtres (apprentissage sans
supervision), ce qui n'est pas le cas d'autres algorithmes plus traditionnels. L'absence de
paramétrage initial et d'intervention humaine est un atout majeur des CNN.
79

Architecture CNN

LeNet-5 LeCun et al en 1998


un réseau à 7 niveaux de, qui classifie les chiffres, a été utilisé par plusieurs banques pour reconnaître les numéros
manuscrits sur les chèques (chèques) numérisés en 32x32 pixels en niveaux de gris.
La capacité de traiter des images à plus haute résolution nécessite des couches plus grandes et plus convolutives, donc
cette technique est limitée par la disponibilité des ressources informatiques.
80

Architecture CNN

LeNet-5 LeCun et al en 1998


Conv → pool → conv → pool → fully connected → fully connected → output .
81

Architecture CNN

AlexNet-5 2012
Similaire à LeNet-5 bien qu’il est considéré plus large (profond). Contient 13 couches
82

Architecture CNN
83

Architecture CNN

AlexNet-5 2012
Similaire à LeNet-5 bien qu’il est considéré plus large (profond). Contient 13 couches
84

Architecture CNN

VGG-Net 2014
Considéré le premier réseau très profond, contenant 16 couches.la différence entre l’architecture de VGG-16 et LeNet et
AlexNet est que ce réseau est plus profond que ces derniers, tout en utilisant de filtres de petits tailles (3*3)
Composé de 16 couches : 13 couche de convolution avec 3 couches entiérement connectée
85

Architecture CNN

VGG-Net 2014
86

Architecture CNN

Google-Net 2014
GoogleNet a été mis en place pour répondre à ces deux problématiques:
(i) L'augmentation de la profondeur du réseau profond qui implique l'augmentation du nombre de paramètres ce
qui peut engendrer un sur apprentissage ( s'il y a un nombre limité d'exemples étiquetés dans l'ensemble de
données de l’apprentissage).
ii) L'augmentation de la taille du réseau augmente forcément les ressources informatiques necessaire.

GoogleNet utilise un module spécifique nommée « inception node » comme élément de base du réseau pour résoudre
les deux problèmes susmentionnés.
87

Architecture CNN

Google-Net 2014 a naive b avec reduction de dimension


88

Architecture CNN

Google-Net 2014
89

Il y a 4 étapes principales dans la conception d'un CNN :


Convolution : Le signal d'entrée est reçu à ce stade
Sous-échantillonnage : Les entrées reçues de la couche
convolution sont lisses pour réduire la sensibilité des filtres au
bruit ou à toute autre variation.
Activation : Cette couche contrôle la façon dont le signal passe
d'une couche à l'autre, comme les neurones de notre cerveau.
Entièrement connecté : Dans cette étape, toutes les couches du
réseau sont connectées avec chaque neurone d'une couche
précédente aux neurones de la couche suivante.
Feature: The input(s) to our model
Examples: An input/output pair used for training
Labels: The output of the model
Layer: A collection of nodes connected together within a neural network.
Model: The representation of your neural network
Dense and Fully Connected (FC): Each node in one layer is connected to each node in the previous
layer.
Weights and biases: The internal variables of model
Loss: The discrepancy between the desired output and the actual output
MSE: Mean squared error, a type of loss function that counts a small number of large discrepancies as
worse than a large number of small ones.
Gradient Descent: An algorithm that changes the internal variables a bit at a time to gradually reduce the
loss function.
Optimizer: A specific implementation of the gradient descent algorithm. (There are many algorithms for
this. In this course we will only use the “Adam” Optimizer, which stands for ADAptive with Momentum. It
is considered the best-practice optimizer.)
Learning rate: The “step size” for loss improvement during gradient descent.
Batch: The set of examples used during training of the neural network
Epoch: A full pass over the entire training dataset
Forward pass: The computation of output values from input
Backward pass (backpropagation): The calculation of internal variable adjustments according to the
optimizer algorithm, starting from the output layer and working back through each layer to the input.
Architecture ConvNet

Vous aimerez peut-être aussi