Vous êtes sur la page 1sur 52

Introduction à

l'apprentissage en
profondeur
Cours 6
Réseaux de neurones convolutifs
Aperçu du cours
1. Introduction (Cours 1) 3. Réglage des réseaux profonds (Cours 5)
Qu'est-ce que l'intelligence artificielle? Introduction
Concevoir une architecture réseau profond
2. Fondations Autres facteurs de conception réseau profond
2.1. Fondations de l'apprentissage automatique (Cours 1) Détecter les problèmes de formation
Qu'est-ce que l'apprentissage automatique?
Régression linéaire 4. Architectures d'apprentissage profond (Cours 5)
Régression logistique Modèles d'images
2.2. Fondations des réseaux neuronaux (Cours 2) Modèles de séquence
Le Perceptron Modèles génératifs
Réseaux neuronaux peu profonds Modèles de renforcement profond
2.3. Fondations de l'apprentissage profond (Cours 3,4) 5. Modèles d'image
Qu'est-ce que l'apprentissage profond? 5.1. Réseaux neuronaux convolutionnels (Cours 6)
Validation du modèle Éléments fondamentaux des blocs de construction
Normalisation des entrées Couches réseau
Surajustement et Sous-ajustement Réseaux célèbres
Régularisation Techniques de formation
Initialisation du poids
5.2. Applications CNN (Cours 7)
Fonctions d'activation
Détection d'objets
Fonctions de perte
Reconnaissance faciale
Algorithmes d'optimisation
Génération d'œuvres d'art
Normalisation des lots
Aperçu du cours
6. Modèles séquence 7. Modèles génératifs (Cours 10)
6.1. Neural récurrent Réseaux (Cours 8) Introduction
Réseaux neuronaux récurrents en avant AutoEncodeurs
Réseaux contradictoires génératifs
Unités récurrentes fermées
Applications de réseaux contradictoires génératifs
Mémoire à long terme
Réseaux neuronaux récurrents bidirectionnels 8. Modèles de renforcement profond (Cours 11)
Réseaux neuronaux récurrents profonds Principes fondamentaux de l'apprentissage par
renforcement
6.2. Incorporations de mots (Cours 9) Processus de décision Markov
Principes de base des incorporations de mots Q-Apprentissage
L'apprentissage de l’incorporations de mots Gradient de politique
Algorithme Word2Vec Applications d'apprentissage de renforcement profond
Algorithme GloVe
Applications de l’incorporations de mots 9. Limitations et de nouveaux Frontières (Cours 12)
6.3. Modèles séquence à séquence (Cours 9) Limitations de l'apprentissage en profondeur
Apprentissage profond Bayesian
Introduction
Apprendre à apprendre
Modèle de traduction automatique
Évaluation de la traduction automatique
Modèle d'attention pour la traduction
automatique

Ce cours comprend du matériel de :


• MIT "6.S191: Introduction à Deep Apprendre"
• Stanford "CS230: profond Apprendre"
Réseaux de neurones convolutifs
Eléments fondamentaux
Éléments constitutifs des réseaux de neurones
convolutifs
 Les réseaux de neurones convolutifs sont également appelés CNN ou
ConvNets
 Ils sont généralement conçus à l'aide d'un ensemble de blocs de
construction:
 Convolutions n x n
 Zero-Rembourrage
 Convolutions à pas
 Convolutions 1 x 1
 Blocs résiduels
 Blocs d'Inception
Convolutions dans les réseaux de neurones de
convolution
 Convolutions pour la détection de bord
 Détection de bord vertical
 Détection de bord horizontal

Bords verticaux

Bords horizontaux
Convolutions dans les réseaux de neurones de
convolution
 Détection de bord vertical dans des images en niveaux de gris
Opérateur de "Filtre" ou
convolution "Noyau"

6x6 3x3 4x4


Convolutions dans les réseaux de neurones de
convolution
3*1 + 0*0 + 1*-1 + 1*1 + 5*0 + 8*-1 + 2*1 + 7*0 + 2*-1

-5 -5 -4

-5 -4 0 8
-10
Convolutions dans les réseaux de neurones de
convolution
 Le détecteur de bord vertical peut également détecter les transitions de
lumière à sombre et de sombre à lumière
Convolutions dans les réseaux de neurones de
convolution
 Détecteur de bord vertical  Détecteur de bord horizontal

Filtre Sobel Filtre Scharr


Rembourrage à zéro (zero padding) dans les
réseaux de neurones convolutionnels
 Le rembourrage est généralement utilisé pour éviter:

 Réduire l'image  Perdre des informations sur les bords


(Les pixels de contour sont utilisés en moins
de convolutions)
Rembourrage à zéro dans les réseaux de neurones
convolutionnels
 Deux types de rembourrage sont les plus courants:

 Rembourrage valide = pas de rembourrage


 𝑝𝑝 = 0

 Même rembourrage = rembourrage pour que la taille de l'image de sortie soit


la même que celle de l'entrée
𝑓𝑓−1
 𝑝𝑝 = , où le filtre f est toujours impair
2
Convolutions avec foulée (stride) dans les réseaux
de neurones convolutionnels

91

𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠 𝑠𝑠 = 2
91 100
Convolutions avec rembourrage (padding) et
foulée (stride)

𝑛𝑛 + 2𝑝𝑝 − 𝑓𝑓 𝑛𝑛 + 2𝑝𝑝 − 𝑓𝑓
𝑛𝑛 × 𝑛𝑛 𝑓𝑓 × 𝑓𝑓 +1 × +1
𝑠𝑠 𝑠𝑠
Padding 𝑝𝑝
Foulée s
Convolutions volumétriques dans les réseaux de
neurones convolutionnels
 Convolutions pour les images couleur RGB

6x6x3 3x3x3 4x4


# canaux # canaux
Convolutions volumétriques dans les réseaux de
neurones convolutionnels
Convolutions volumétriques et filtres multiples
Convolutions 1 x 1 dans les CNN
Plus généralement convolutions n x n dans les CNN
Pourquoi utiliser Convolutions?
 Les convolutions n x n sont utilisées pour détecter les fonctionnalités et
générer des cartes de fonctionnalités (cartes d'activation).
Le nombre de cartes de caractéristiques est donné par #filters utilisés
 Les convolutions 1 x 1 sont utilisées pour réduire le nombre de cartes de
caractéristiques.
 Depuis généralement utiliser #filters < #channels 𝑛𝑛𝑐𝑐
Réseaux de neurones convolutifs
Couches réseau
Couches de réseaux de neurones convolutifs
 Les réseaux de neurones convolutifs contiennent trois types de couches et
leurs blocs constitutifs associés:
 Couches convolutives (CONV)
 Convolutions
 Zero-Rembourrage (zero-padding)
 Foulée (Stride)
 Couches Pooling (POOL)
 Max Pooling
 Pooling moyenne
 Couches Entièrement Connectées – Fully Connected (FC)
 Un réseau régulier de neurones
Couche convolutionnelle (CONV) d'un CNN
Exemple de couches à convolution multiple
Couche convolutionnelle d'un CNN
 HyperParamètres:
 Taille du filtre: f
 Rembourrage: p
 Foulée: s
 Nombre de filtres: nc

 Paramètres à apprendre:
 Poids: W
 Biais: b

 Une couche convolutive (CONV) est utilisée pour extraire les entités
Couche pooling (POOL) d'un CNN
 Max Pooling  Pooling moyenne
Couche pooling d'un CNN
 Max Pooling

9 9

8 9
Couche pooling (POOL) d'un CNN

 HyperParamètres:
 Taille du filtre: f
 Foulée: s
 Max Pooling ou Average Pooling

 Paramètres à apprendre:
 Aucun

 Une couche pooling (POOL) est utilisée pour réduire la taille du volume
d'entrée
Couche entièrement connectée (FC) d'un CNN
 Une couche entièrement connectée a une connexion entre tous ses
neurones et chaque neurone de la couche précédente
Couche entièrement connectée (FC) d'un CNN

 HyperParamètres:
 Nombre de neurones

 Paramètres à apprendre:
 Poids: W
 Biais: b

 Une couche entièrement connectée (FC) est utilisée pour apprendre la


sortie finale (c'est-à-dire un problème de classification)
Architecture d'un CNN traditionnel

Couche d'entrée Couches d'extraction de caractéristiques Couches de classification


Réseaux de neurones convolutifs
Réseaux célèbres
L’architecture LeNet - 5

 Paramètres: 60.000
 Fonctions d'activation: sigmoïde / tanh
L'architecture AlexNet

 Paramètres: 60.000.000
 Fonctions d'activation: ReLU
L'architecture VGG-16

 Paramètres: 138.000.000
 Architecture simplifiée:
L'architecture ResNet - Blocs résiduels
L'architecture ResNet
GoogLeNet (Inception)
 Nommé d'après le film Inception
 "Nous devons aller plus loin" est une
expression du film Inception
GoogLeNet - La philosophie du réseau

 Problème: dans un réseau de neurones à convolution classique, il faut


choisir les blocs de construction à utiliser:
 1 x 1 convolutions?
 3 x 3 convolutions?
 5 x 5 convolutions?
 max-pooling?

 Solution: Dans le réseau Inception, vous les utilisez tous et laissez le


réseau calculer les paramètres dont il a besoin.
GoogLeNet - Le bloc de création
Réduction des calculs pour le bloc de création
 Avec 5 x 5 CONV,
il nécessite 120
millions
d'opérations

 En utilisant 1 x 1
CONV, il nécessite
12,4 millions
d'opérations
GoogLeNet - Le bloc de création
L'architecture de GoogLeNet (Inception)

Le réseau de création est composé de blocs de création répétés

Les blocs Softmax garantissent que même les fonctionnalités intermédiaires fonctionnent bien pour prévoir le résultat final
Réseaux de neurones convolutifs
Techniques de formation
Formation de réseaux de neurones convolutifs
 Que pouvez-vous faire si vous ne disposez pas d'assez d'images de
données d'entraînement?
 Apprentissage par transfert (transfer learning)
 Prenez un réseau existant avec des poids qui ont été formés sur un autre ensemble de
données de formation, puis modifiez et entraînez à nouveau seulement une petite partie de ce
réseau en utilisant votre propre ensemble de données
 Augmentation de données
 Modifier votre ensemble de données de formation pour créer de nouvelles images de
formation
• Transformations Affines
• Changement de couleur
Apprentissage par transfert
 Prendre le réseau existant et les poids pour 1000 classes de sortie

softmax 1000
classes

 Si vous avez très peu de données pour vos 5 classes, remplacez le calque
softmax et entraînez uniquement cette partie.

Geler les poids Entraîner les poids


Apprentissage par transfert
 Prendre le réseau existant et les poids pour 1000 classes de sortie

softmax 1000
classes

 Si vous avez des données pour vos propres 5 classes, remplacez la


couche softmax et entraînez uniquement certaines des autres couches.

Geler les poids Entraîner les poids


Apprentissage par transfert
 Prendre le réseau existant et les poids pour 1000 classes de sortie

softmax 1000
classes

 Si vous avez assez de données pour vos 5 classes, remplacez le couche


softmax et entraînez tous les couches en utilisant les poids comme
initialisation.

Entraîner les poids


Augmentation de données - Transformations Affine
 En miroir
(mirroring)

 Recadrage aléatoire
(random cropping)
Augmentation de données - Transformations Affine
 Tonte
(shearing)

 Rotation
Augmentation de données - Changement de couleur
Matériel de lecture
 LeNet: «Apprentissage basé sur les gradients appliqué à la reconnaissance de
documents»
 http://yann.lecun.com/exdb/publis/pdf/lecun-01a.pdf
 AlexNet: «Classification ImageNet avec des réseaux de neurones à convolution
profonde»
 https://papers.nips.cc/paper/4824-imagenet-classification-with-deep-convolutional-neural-
networks.pdf
 VGGNet: “Réseaux convolutionnels très profonds pour la reconnaissance d'images à
grande échelle”
 https://arxiv.org/pdf/1409.1556v6.pdf
 GoogleNet: «Aller plus loin avec les convolutions»
 https://www.cv-
foundation.org/openaccess/content_cvpr_2015/papers/Szegedy_Going_Deeper_With_2015_CVP
R_paper.pdf
 ResNet: «Apprentissage résiduel en profondeur pour la reconnaissance d'images»
 https://arxiv.org/pdf/1512.03385.pdf

Vous aimerez peut-être aussi