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)