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.
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) .
12
Filtre de
convolution
Image d’entrée
13
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
Nombre des filtres
Stride
Padding
14
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.
15
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.
16
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
17
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 0 1 0
1 2 0 1 5 8 1
* 0 1 0
0 2 3 7 1 0 0 * 1 0 1
0 2 3 7 1 0 0
2 4 7 2 1 0 0
1 0 1
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
18
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
19
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.
20
Architecture CNN: Couche de convolution
21
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 »
22
Architecture CNN: Couche de sous échantillonnage
23
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.
24
Architecture CNN: Couche de sous échantillonnage
25
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.
26
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
27
Architecture CNN: fonction d’activation
Fonction d’activation:
La plus commune ReLU
ReLU
F(x)=max(0,x)
28
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.
29
Architecture CNN: Couche entièrement connecté
30
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.
31
Architecture CNN: Couche de dropout
En apprentissage automatique, le dropout est une technique de régularisation utilisée
pour prévenir le surapprentissage (overfitting) dans les réseaux de neurones. Lorsqu'il
est appliqué entre deux couches entièrement connectées, le dropout consiste à
désactiver aléatoirement un certain pourcentage de neurones de la couche précédente
à chaque itération d'entraînement. Ces neurones désactivés ne participent ni au calcul
des sorties ni à la rétropropagation.
32
Architecture CNN: Couche de dropout
Fonctionnement du dropout :
Désactivation aléatoire : Un sous-ensemble de neurones est désactivé de manière
aléatoire avec une probabilité ppp (appelée taux de dropout). Typiquement, ppp est un
hyperparamètre fixé, par exemple p=0.5.
Normalisation pendant l'inférence : Lors de l'évaluation ou de l'utilisation du modèle
(inférence), le réseau utilise tous les neurones, mais leurs poids sont multipliés par (1 -
p) pour compenser l'activation réduite pendant l'entraînement.
Avantages :
Régularisation : Réduit la dépendance excessive à certains neurones.
Meilleure généralisation : Empêche le modèle de s’ajuster trop précisément aux
données d’entraînement, ce qui améliore ses performances sur des données
inconnues.
33
Architecture CNN: Couche de perte Loss
Dans les réseaux de neurones convolutifs (CNN), une couche de perte (loss layer) n'est
pas une "couche" au sens traditionnel, comme les couches convolutives ou entièrement
connectées. Elle est plutôt une fonction mathématique utilisée pour évaluer la
performance du modèle en comparant ses prédictions aux véritables étiquettes de
sortie. Cette fonction est essentielle pour la formation d’un CNN, car elle fournit le signal
d’erreur que l’algorithme utilise pour ajuster les poids pendant la rétropropagation.
Exemple :
• Cross entropy loss
• Mean square error
• Mean absolute error
34
Architecture CNN: epoch
une epoch correspond à un passage complet sur l'ensemble des données
d‘apprentissage. Cela signifie que pendant une epoch, le modèle traite toutes les
données disponibles, en divisant souvent ces données en plus petits lots appelés
batches.
Définition formelle :
Une epoch est une itération complète sur l’ensemble des données d’entraînement.
Si les données d'entraînement contiennent N exemples et que le batch size est de B,
alors une epoch comprend N/B itérations (ou étapes) d'entraînement.
35
Architecture CNN: epoch
Rôle des epochs :
Lors de chaque epoch, le modèle effectue une passe avant (forward) et une passe
arrière (backward) sur tous les exemples d'entraînement, ajustant progressivement les
poids à l’aide de l’optimiseur.
Plusieurs epochs sont nécessaires pour que le modèle converge, c’est-à-dire atteigne un
point où la fonction de perte est minimisée et les performances sur les données
d’entraînement et de validation s’améliorent.
36
Architecture CNN: epoch
Cycle d’entraînement :
Initialisation : Le modèle démarre avec des poids initialisés aléatoirement ou suivant une stratégie spécifique.
Passe sur les données :
Les données sont divisées en batches pour traiter efficacement des grands ensembles de données.
À chaque batch, une mise à jour des poids est effectuée.
Fin d’une epoch : Après avoir parcouru toutes les données d’entraînement, une epoch est terminée.
Validation (facultatif) : Après chaque epoch, le modèle est souvent évalué sur les données de validation pour
surveiller les performances.
Visualisation d’une epoch :
Données d’entraînement : 10 000 exemples.
Batch size : 100.
Une epoch = 100 itérations (10,000÷100=100).
37
Architecture CNN: optimisateur
Un optimiseur dans le contexte des réseaux de neurones convolutifs (CNN) est un
algorithme ou une méthode utilisée pour ajuster les poids et les biais du modèle au
cours de l'entraînement, dans le but de minimiser la fonction de perte. Il guide le
processus d'apprentissage en mettant à jour les paramètres du modèle de manière
itérative pour améliorer ses performances.
Exemple optimisateur d’adam, optimisateur du gradient
Objectif de l’optimiseur :
Réduire la fonction de perte en trouvant un ensemble de paramètres qui minimise cette
fonction. Cela revient à résoudre un problème d'optimisation.
38
Architecture CNN: optimisateur
Critères de choix d’un optimiseur :
Taille et complexité des données : Adam et RMSProp sont souvent préférés pour leur
efficacité sur des ensembles de données variés.
Sensibilité au taux d’apprentissage : Les optimiseurs adaptatifs (Adam, RMSProp)
nécessitent moins de réglages du learning rate que le SGD.
Objectifs spécifiques : Pour les problèmes nécessitant une convergence rapide ou un
contrôle précis du learning rate, Momentum ou Adam peuvent être plus adaptés.
Exemple :
model.compile(optimizer=Adam(learning_rate=0.001), # Utilisation d'Adam
loss='categorical_crossentropy', metrics=['accuracy'])
# Ou utilisation de SGD avec momentum
model.compile(optimizer=SGD(learning_rate=0.01, momentum=0.9),
loss='categorical_crossentropy', metrics=['accuracy'])
39
Architecture CNN: learning rate
Le taux d'apprentissage (learning rate) est un hyperparamètre clé utilisé par les
algorithmes d'optimisation dans l'entraînement des réseaux de neurones, y compris les
réseaux convolutifs (CNN). Il détermine la taille du pas à effectuer lors de la mise à jour
des paramètres (poids et biais) à chaque itération de l’entraînement.
Impact du taux d’apprentissage :
Taux d'apprentissage trop grand :
Les mises à jour des paramètres sont trop importantes.
Le modèle risque de diverger (osciller ou ne jamais atteindre un minimum).
La fonction de perte peut ne pas diminuer ou même augmenter.
Taux d'apprentissage trop petit :
Les mises à jour des paramètres sont trop faibles.
Le modèle met beaucoup de temps à converger.
Risque de convergence vers un minimum local sous-optimal.
Taux d'apprentissage bien choisi :
Le modèle converge rapidement et efficacement vers un minimum global ou un bon minimum local.
40
Architecture CNN: choix des hyperparamétres de la couche de
convolution
Les couches convolutives extraient des caractéristiques des données d'entrée, et leurs hyperparamètres influencent cette
extraction.
Taille des filtres (kernels) :
Taille des noyaux utilisés pour appliquer les convolutions (ex. 3×3, 5×5).
Petits filtres (3×3) capturent des détails locaux.
Grands filtres (7×7) capturent des informations globales.
Nombre de filtres :
Nombre de noyaux de convolution dans une couche, déterminant le nombre de cartes de caractéristiques produites.
Stride (pas de convolution) :
Distance entre les applications successives du noyau. Un stride de 1 garantit une analyse fine, tandis qu'un stride de 2
réduit les dimensions plus rapidement.
Padding (remplissage) :
Ajout de zéros autour des bords de l’entrée pour contrôler la taille de la sortie.
Same padding : Maintient les dimensions de l’entrée.
Valid padding : Réduit les dimensions.
Fonction d'activation :
Fonction non linéaire appliquée après la convolution.
Courantes : ReLU, Leaky ReLU, ELU, ou tanh.
41
Architecture CNN: choix des hyperparamétres de la couche de
pooling
Hyperparamètres des couches de pooling :
Les couches de pooling réduisent les dimensions des cartes de caractéristiques.
Type de pooling :
Max pooling : Sélectionne la valeur maximale dans une région.
Average pooling : Calcule la moyenne dans une région.
Taille de la fenêtre :
Taille de la région utilisée pour effectuer le pooling (ex. 2×2).
Stride :
Détermine le déplacement entre les fenêtres de pooling.
42
Architecture CNN: choix des hyperparamétres de la couche
entièrement connectée
Ces couches, situées généralement en fin de modèle, combinent les caractéristiques pour
effectuer une classification ou une régression.
Nombre de neurones :
Nombre de neurones dans chaque couche entièrement connectée.
Fonction d’activation :
Par exemple : ReLU, sigmoïde, ou softmax (souvent utilisée pour les sorties).
43
Architecture CNN: choix des hyperparamétres de la structure
globale du CNN
•Nombre de couches convolutives et de pooling :
Influence la profondeur du réseau et sa capacité à apprendre des caractéristiques complexes.
•Architecture des blocs :
Certains modèles utilisent des blocs prédéfinis (par ex., blocs résiduels dans ResNet ou inception blocks dans
Inception).
•Dimensions d'entrée :
Taille de l’image en entrée (ex. 224×224 pour les modèles ImageNet).
•Dropout :
Taux de désactivation aléatoire des neurones pour éviter le surapprentissage (ex. 0.5).
•Normalisation :
•Batch normalization : Standardise les activations d’une couche pour accélérer l’entraînement.
•Layer normalization ou group normalization : Alternatives selon les besoins.
44
Architecture CNN: choix des hyperparamétres du processus
d’entrainement
•Taux d'apprentissage (η\etaη) :
Contrôle l’amplitude des mises à jour des paramètres.
•Décroissance du taux d’apprentissage :
Réduction progressive du learning rate pour un ajustement plus fin.
•Nombre d’epochs :
Nombre de passages complets sur l’ensemble des données d’entraînement.
•Batch size :
Nombre d’exemples traités simultanément. Un petit batch size offre une meilleure généralisation mais augmente
la variance.
•Optimiseur :
Algorithme utilisé pour ajuster les poids (ex. SGD, Adam, RMSProp).
•Fonction de perte :
Dépend de la tâche (ex. cross-entropy pour la classification, mean squared error pour la régression).
45
Architecture CNN: choix des hyperparamétres du contrôle du
sur-apprentissage
•L2 Regularization (poids de pénalité) :
Ajout d’une pénalité pour éviter des poids trop grands.
•Data augmentation :
Génère des variantes des données d’entraînement pour améliorer la robustesse (ex. rotations, flips, zooms).
46
Architecture CNN: choix des hyperparamétres du contrôle du
sur-apprentissage
Type Hyperparamètres
Taille et nombre de filtres, stride, padding, fonction
Couches convolutives
d’activation
Couches de pooling Type (max/average), taille, stride
Couches entièrement connectées Nombre de neurones, fonctions d’activation
Nombre de couches, dropout, normalisation,
Structure globale
architecture des blocs
Taux d’apprentissage, epochs, batch size, optimiseur,
Entraînement
fonction de perte
Régularisation L2 Regularization, data augmentation
Résumé des hyperparamètres :
Ces hyperparamètres doivent être ajustés à l’aide de techniques comme grid search, random search, ou des
algorithmes plus avancés comme Bayesian optimization.
47
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.
48
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.
49
Architecture CNN
LeNet-5 LeCun et al en 1998
Conv → pool → conv → pool → fully connected → fully connected → output .
50
Architecture CNN
AlexNet-5 2012
Similaire à LeNet-5 bien qu’il est considéré plus large (profond). Contient 13 couches
51
Architecture CNN
AlexNet-5 2012
Similaire à LeNet-5 bien qu’il est considéré plus large (profond). Contient 13 couches
52
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
53
Architecture CNN
VGG-Net 2014
54
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.
Architecture ConvNet