Chap3 CNN. Steps
Chap3 CNN. Steps
Chap3 CNN. Steps
• 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
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
Exemple de convolution 2D
17
Généralement, le masque
est de dimension impaire et
symétrique.
18
Fin pour
Fin pour
retourner(somme);
Fin
20
Convolution nmérique
k/2 k/2
I'x, y Ixi, y j*F(i k/2, j k/2)
ik/2 jk/2
22
Effets de bord
Effets de bord
100 130 110 120 110 100 130 110 120 110
Effets de bord
0 0 0 0 0 0 0
0 0 0 0 0 0 0
Image résultat
Image initiale
30
Effets de bord
Masque de convolution
32
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
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
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
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
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
Fonction d’activation:
La plus commune ReLU
ReLU
F(x)=max(0,x)
62
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
Max Pooling
Max Pooling
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)
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
Architecture CNN
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
Architecture CNN
Google-Net 2014
89