You are on page 1of 45

Deep learning ou apprentissage

profond
Définition
• L'apprentissage profond est une méthode
d'intelligence artificielle issue du concept
d'apprentissage automatique.

• Le Deep Learning est une technique de


machine learning reposant sur le modèle des
réseaux neurones: empiler des dizaines voire
des centaines de couches de neurones
apporte une plus grande complexité. Chacune
de ces couches, reçoit et interprète les
informations de la couche précédente.
Définition
• Le Deep Learning est un ensemble de
méthodes d'apprentissage automatique qui
tentent de représenter les données en
utilisant un degré d'abstraction extrêmement
élevé, grâce à des architectures utilisant une
variété de transformations non linéaires .
Définition
• Ces techniques ont permis des progrès
importants et rapides dans les domaines de
l'analyse du signal sonore ou visuel et plus
particulièrement dans les domaines de la
reconnaissance faciale, de la reconnaissance
vocale, de la vision par ordinateur, du
traitement automatisé du langage.
introduction
• Dans les années 2000, ces progrès ont suscité
des investissements privés, universitaires et
publics importants, notamment de la part des
GAFAM (Google, Apple, Facebook, Amazon,
Microsoft), (LeCun, Hinton, Bengio et Ng).
introduction
• L’ augmentation exponentielle de la puissance de
calcul et le développement d’applications
connexes permettent à l'apprentissage profond
de générer des couches de neurones toujours
plus complexes et denses.

• Aussi il y a, de plus grandes bases de données


disponibles pour l’apprentissage des machines.
introduction
• Lors de la phase d‘apprentissage, l'erreur de
classification est minimisée afin d'optimiser les
paramètres du classifieur.
• De plus, l'architecture spécifique du réseau
permet d'extraire des features de différentes
complexités, des plus simples au plus
sophistiquées. L'extraction automatique des
features, qui s'adaptent au problème donné,
constituent une des forces des réseaux de
neurones convolutifs.
machine learning vs deep learning
• Dans les algorithmes traditionnels de machine
learning, la notion de features (caractéristiques)
en vision sont utilisées pour faire de la
classification d'images. Ces méthodes consistent à
extraire les features de chaque image du jeu de
données manuellement par un expert, puis à
entraîner un classifieur sur ces features. Ces
techniques d'apprentissage supervisé peuvent
fournir de très bons résultats, et leur performance
dépend fortement de la qualité des features
préalablement trouvées. Il existe plusieurs
méthodes d'extraction et de description de
features.
machine learning vs deep learning
machine learning vs deep learning
• Les modèles de Deep learning ont tendance à bien fonctionner
avec une grande quantité de données alors que les modèles
d’apprentissage automatique plus classique cessent de s’améliorer
après un point de saturation.
Fonctionnement du deep
Learning
Fonctionnement du deep
Learning
• Dans le cas de la reconnaissance visuelle, pour
être performant, l'algorithme du deep learning
doit être capable d'identifier toutes les formes
existantes et dans tous les angles. Ainsi, il sera
capable de détecter une voiture sur la route au
milieu du paysage. Ceci n'est possible que si la
machine a suivi un apprentissage poussé en
utilisant des milliers d’images sur lesquelles
apparaissent une voiture ( toutes formes et tous
les angles possibles).
Fonctionnement du deep
Learning
• Fonctionnent avec un apprentissage à plusieurs
niveaux de détail ou de représentation des
données; à travers les différentes couches, on
passe de paramètres de bas niveau à des
paramètres de plus haut niveau, où
les différentes couches correspondant à
différents niveaux d'abstraction.
Deep learning et le cerveau humain
• Les cerveaux animaux et humains ont une
architecture profonde.
• Dans le but de créer des systèmes qui
apprennent d’une façon similaire aux
humains, l’architecture des modèles de deep
learning a été inspirée par la structure d'un
cerveau humain.
Deep learning et le cerveau humain
• Le modèle de deep learning vise à
comprendre la représentation des données en
empilant plusieurs couches, où chaque couche
représente une partie de l'entrée. Une couche
peut être considérée comme une collection
d’unités de calcul qui apprennent à détecter
une caractéristique spécifique de l’entrée.
modèles de deep learning
• Il existe différents types de modèles de deep
learning, qui sont utilisés pour différents cas et
types de données. Par exemple,les modèles
récurrents sont couramment utilisés pour le
traitement du langage naturel et la
reconnaissance de la parole tandis que les
réseaux de neurones convolutifs (ConvNets ou
CNN) sont plus souvent utilisé pour les tâches de
classification et de vision par ordinateur. Avant les
CNN, l'extraction de caractéristiques se faisait
manuellement, pour identifier les objets dans les
images.
modèles de deep learning
• Cependant, les réseaux de neurones
convolutifs offrent désormais une approche
intéressante pour la classification et la
reconnaissance d'objets, en exploitant les
principes de l'algèbre linéaire, spécifiquement
la multiplication matricielle, pour identifier les
motifs dans une image. Ils peuvent être
exigeant en termes de calcul, nécessitant des
unités de traitement graphique (GPU) pour
l’apprentissage.
modèles de deep learning

Typical CNN architecture


Les réseaux de neurones convolutifs
• Les réseaux de neurones convolutifs se
distinguent des autres réseaux de neurones
par leurs hautes performances avec des
images, de la parole ou du signal audio en
entrées. Ils ont trois principaux types de
couches, qui sont :
• – Couche convolutive (Convolutional layer)
• – Couche de Pooling (Pooling layer)
• – Couche entièrement connectée (FC) (Fully-
connected layer)
Les réseaux de neurones convolutifs
• La première couche d'un réseau convolutif est La
couche convolutive . Les couches convolutives peuvent
être suivies par des couches convolutives
supplémentaires ou des couches de regroupement. La
dernière couche est une couche entièrement
connectée. La complexité d’un CNN augmente d’une
couche à l’autre, identifiant de plus grandes parties de
l'image. Les couches précédentes se concentrent sur
des fonctionnalités simples, telles que les couleurs et
les contours. Au fur et à mesure que l'image progresse
à travers les couches du CNN, il commence à
reconnaître des éléments ou des formes plus grandes
de l'objet jusqu'à ce qu’il identifie l'objet désiré à la fin.
Les réseaux de neurones convolutifs
• Aujourd'hui, les réseaux de neurones convolutifs, aussi
appelés CNN ou ConvNet pour Convolutional Neural
Network, sont toujours les modèles les plus
performants pour la classification d'images.
• Comme pour les réseaux de neurones, les paramètres
des couches sont déterminés par rétropropagation du
gradient : la fonction de perte est minimisée lors de la
phase d‘apprentissage. Mais dans le cas des CNN, ces
paramètres désignent en particulier les features des
images.
La couche convolutive
• La couche convolutive est le bloc de construction
central d'un CNN, elle réalise la majorité des
calculs. Elle nécessite quelques composants, qui
sont des entrées et un filtre. Supposons que
l'entrée soit une image couleur (RVB), composée
d'une matrice de pixels en 3D. Cela signifie que
l'entrée aura trois dimensions: une hauteur, une
largeur et une profondeur. Nous avons également
un détecteur de caractéristiques, également
connu sous le nom de noyau ou de filtre, qui se
déplacera à travers les champs récepteurs de
l'image, vérifiant si la caractéristique est
présente. Ce processus est connu sous le nom de
convolution.
Width: 4 Units
(Pixels)

4x4x3 RGB Image


La couche convolutive
• Le détecteur de caractéristiques est un tableau
bidimensionnel (2-D) de poids, qui représente une
partie de l'image. Bien qu'ils puissent varier en taille, la
taille du filtre est généralement 3x3 ; cela détermine
également la taille du champ récepteur. Le filtre est
ensuite appliqué à une zone de l'image, et un produit
scalaire est calculé entre les pixels d'entrée et le filtre.
Ensuite, le filtre se déplace d'un pas, répétant le
processus jusqu'à ce que le noyau ait balayé toute
l'image. La sortie finale de cette suite de produits
scalaires de l'entrée et du filtre est la nouvelle image
convoluée, connue sous le nom de "feature map",
carte d'activation.
• Cette technique nous permet de trouver des parties de
l’image qui pourraient nous être intéressantes.
La couche convolutive
La couche convolutive
Le filtre doit se déplacer d’une case à chaque itération jusqu’à ce que la première ligne soit finie.
Lorsque nous avons fini la première ligne, le filtre « descend » d’une case et la même procédure
se répète pour chaque ligne et colonne.
La couche convolutive
• Un réseau de neurones à convolution contient
de multiples filtres et ces filtres sont appliqués
sur l’image d’origine. Après la première étape
nous avons donc autant de nouvelles images
que de filtres. La phase de convolution peut
aussi être vue comme des couches de
neurones cachées où chaque neurone n’est
connecté qu’à quelques neurones de la
couche suivante.
La couche convolutive
• Afin de démontrer les effets d’une phase de
convolution, par exemple, si nous voulons trouver
des arêtes, nous pouvons utiliser les valeurs du filtre
F2.
La couche convolutive
• ReLu – Unité linéaire rectifiée

• Après chaque opération de convolution, un CNN applique


une transformation (ReLU) à la carte des caractéristiques,
introduisant une non-linéarité dans le modèle.
• ReLu est une fonction qui doit être appliquée à chaque
pixel d’une image après convolution.
• ReLu est très utilisée dans les réseaux de neurones à
convolution car il s’agit d’une fonction rapide à calculer :
𝑓(𝑦) = 𝑚𝑎𝑦(0,𝑦). Sa performance est donc meilleure que
d’autres fonctions où des opérations coûteuses doivent
être effectuées.
Comment choisir les features ?
• Contrairement aux méthodes traditionnelles, les
features ne sont pas pré-définies selon un
formalisme particulier, mais apprises par le
réseau lors la phase d‘apprentissage! Les noyaux
des filtres désignent les poids de la couche de
convolution. Ils sont initialisés puis mis à jour par
rétropropagation du gradient.
• C'est là toute la force des réseaux de neurones
convolutifs : ceux-ci sont capables de déterminer
tout seul les éléments discriminants d'une image,
en s'adaptant au problème posé.
Pooling layer
• également connue sous le nom de sous-échantillonnage, permet la
réduction de la dimension, en réduisant le nombre de paramètres
dans l'entrée. De la même manière que la convolution, l'opération
de pooling fait balayer toute l'entrée par un filtre, mais la différence
est que ce filtre n’a pas de poids. Au lieu de cela, le noyau applique
une fonction aux valeurs dans le champ récepteur, remplissant le
tableau de sortie. Il existe deux grands types de pooling:
• -Max pooling: lorsque le filtre se déplace sur l'entrée, il sélectionne
le pixel avec la valeur maximale. Cette approche est utilisée le plus
souvent.
• -Average pooling: lorsque le filtre se déplace sur l'entrée, il calcule
la valeur moyenne dans le champ récepteur.
• Alors que beaucoup d'informations sont perdues dans la couche de
pooling, cela présente également un certain nombre d'avantages
pour le CNN. Elle contribue à réduire la complexité, à améliorer
l'efficacité et à limiter le risque de surapprentissage.
Pooling layer
Fully-Connected Layer
• Cette couche effectue la classification basée
sur les caractéristiques extraites par les
couches précédentes et leurs différents filtres.
Alors que les couches convolutives et de
pooling ont tendance à utiliser les fonctions
ReLu, les couches FC utilise généralement une
fonction d'activation softmax pour classer
d’une manière appropriée les entrées,
produisant une probabilité entre 0 et 1.
Fully-Connected Layer
• La couche fully-connected constitue toujours la
dernière couche d'un réseau de neurones. Ce type de
couche reçoit un vecteur en entrée et produit un
nouveau vecteur en sortie. Pour cela, elle applique une
combinaison linéaire puis éventuellement une fonction
d'activation aux valeurs reçues en entrée.
• La dernière couche fully-connected permet de classifier
l'image en entrée du réseau: elle renvoie un vecteur de
taille N , où N est le nombre de classes dans notre
problème de classification d'images. Chaque élément
du vecteur indique la probabilité pour l'image en
entrée d'appartenir à une classe.
Fully-Connected Layer
Paramètres et hyperparamètres
• Le réseau de neurones dispose d’un certain nombre de paramètres
et hyperparamètres. Il est important de bien distinguer ces deux
notions:
• • Les paramètres sont des éléments variables du modèle qui
définissent le comportement du modèle. Les paramètres changent
au cours de l’apprentissage de manière à obtenir un modèle
répondant à la tâche demandée. Dans le cas du MLP, les paramètres
sont l’ensemble des poids 𝑊𝑖 et des biais 𝑏𝑖.
• • Les hyperparamètres sont des réglages du modèle et de
l’algorithme d’apprentissage, choisis par le concepteur et qui ne
sont pas modifiés par l’optimisation. Ils conditionnent eux aussi le
comportement du modèle et doivent donc être choisis
judicieusement. Dans le cas d’un MLP, les hyperparamètres sont
(entre autres) le nombre de couches cachées, les dimensions des
représentations cachées, les fonctions d’activations utilisées et le
taux d’apprentissage.
Paramètres et hyperparamètres
• Il est important de bien choisir les
hyperparamètres de notre modèle car ces
derniers influent sur la phase d’apprentissage
et sur les performances finales du modèle. Il
s’agit là d’une des principales difficultés de
l’utilisation de réseaux de neurones. Le
concepteur doit avoir une idée au moins
approximative de l’influence de chacun des
hyperparamètres pour pouvoir les choisir
correctement.
Le paramétrage des couches
• Un réseau de neurones convolutif se distingue d'un autre par la
façon dont les couches sont empilées, mais également
paramétrées. Les couches de convolution et de pooling possèdent
en effet des hyperparamètres, c'est-à-dire des paramètres dont
vous devez préalablement définir la valeur.
• Remarque: Les features de la couche de convolution et les poids de
la couche fully-connected ne sont pas des hyperparamètres,
puisqu'ils sont appris par le réseau lors de la phase d‘apprentissage.
La taille des feature maps en sortie des couches de convolution et de
pooling dépend des hyperparamètres.
• Chaque image (ou feature map) est de dimensions:
W×H×D
• où W est sa largeur en pixels, H sa hauteur en pixels et D le nombre
de canaux (1 pour une image en noir et blanc, 3 pour une image en
couleurs).
Le paramétrage des couches
• La couche de convolution possède quatre hyperparamètres:
• 1. Le nombre de filtres K
• 2. La taille F des filtres: chaque filtre est de dimensions F×F×D pixels.
• 3. Le pas S avec lequel on fait glisser la fenêtre correspondant au filtre sur
l'image. Par exemple, un pas de 1 signifie qu'on déplace la fenêtre d'un
pixel à la fois.
• 4. Le zero-padding P: on ajoute à l'image en entrée de la couche un
contour noir d'épaisseur P pixels. Sans ce contour, les dimensions en sortie
sont plus petites. Ainsi, plus on empile de couches de convolution avec P=0,
plus l'image en entrée du réseau rétrécit. On perd donc beaucoup
d'informations rapidement, ce qui rend la tâche d'extraction de features
difficile.
Le paramétrage des couches
• Pour chaque image de taille W×H×D en entrée,
la couche de convolution renvoie une matrice
de dimensions

• Choisir permet ainsi d’obtenir


des features maps de même largeur et
hauteur que celles reçues en entrée.
Le paramétrage des couches
• La couche de pooling présente seulement
deux hyperparamètres :
• • La taille F des cellules : l'image est découpée
en cellules carrées de taille F×F pixels
• • Le pas S : les cellules sont séparées les unes
des autres de S pixels
• Pour chaque image de taille W×H×D en entrée,
la couche de pooling renvoie une matrice de
dimensions :
Le paramétrage des couches
• Exemple 1
• On considère une couche de convolution suivie par une couhe de
pooling:
• La couche de convolution reçoit une image: 28x28x3
• Avec les hyperparamètres:
• K=16, nombre de filtres
• F=5, taille de filtres
• S=1, stride
• P=2, Le zero-padding
• On obtient en sortie: 28x28x16
• Wc=((28-5+2*2)/1)+1=28
• Hc=((28-5+2*2)/1)+1=28
• Dc=K=16
Le paramétrage des couches
• La couche de pooling reçoit une entrée de
28x28x16 et a comme sortie:14x14x16 avec
les hyperparamètres:
• F=2, taille du filtre
• S=2, stride
• Wp=((28-2)/2)+1=14
• Hp=((28-2)/2)+1=14
• Dp=16
Exemples de réseaux de neurones
convolutifs
• – AlexNet
• – VGGNet
• – GoogLeNet
• – ResNet
• – ZFNet
• Cependant, LeNet-5 est connu comme l'architecture CNN classique.

• En 2013, le concours consistait à localiser des objets dans les


images:
• Il y avait 200 classes d’objets, et plus de 400 000 images
• Remporté par le GoogLeNet et un ensemble de RNA à
convolution (6.67% d’erreur)

You might also like