Deep Learning (CNN) - PDF
Document Details
Uploaded by ExhilaratingHilbert269
Université Virtuelle du Burkina Faso
2024
OUBDA Raphaël Nicolas W
Tags
Summary
This presentation details the concepts of Deep Learning, specifically Convolutional Neural Networks (CNNs). It explains the different layers involved in a CNN architecture, such as Convolution layers, Pooling layers, Flattening, Fully-connected Layers, and transfer learning, with examples and practical implications. The presentation is presented by OUBDA Raphaël Nicolas W at the Université virtuelle, Burkina Faso in November 2024.
Full Transcript
DEEP LEARNING Convolutionnal Neural Network (CNN) OUBDA Raphaël Nicolas W Ouagadougou Novembre 2024. Plan 1 Définition du CNN 2 Couche de convolution 3 Couche de Pooling 4 Flattening 5 Couche fully-connected 6 Architecture d’un C...
DEEP LEARNING Convolutionnal Neural Network (CNN) OUBDA Raphaël Nicolas W Ouagadougou Novembre 2024. Plan 1 Définition du CNN 2 Couche de convolution 3 Couche de Pooling 4 Flattening 5 Couche fully-connected 6 Architecture d’un CNN Le paramétrage des couches 7 Le transfert learning Définition du CNN Couche de convolution Couche de Pooling Flattening Couche fully-connected Architecture d’un CNN Le transfert learning Exécution du plan 1 Définition du CNN 2 Couche de convolution 3 Couche de Pooling 4 Flattening 5 Couche fully-connected 6 Architecture d’un CNN Le paramétrage des couches 7 Le transfert learning OUBDA Deep learning 3 / 36 Définition du CNN Couche de convolution Couche de Pooling Flattening Couche fully-connected Architecture d’un CNN Le transfert learning Définition du CNN Les réseaux de neurones convolutifs désignent une sous-catégorie de réseaux de neurones couramment utilisé dans la vision par ordinateur. La vision par ordinateur est un domaine de l’intelligence artificielle qui permet à un ordinateur de comprendre et d’interpréter l’image ou les données visuelles. OUBDA Deep learning 4 / 36 Définition du CNN Couche de convolution Couche de Pooling Flattening Couche fully-connected Architecture d’un CNN Le transfert learning Définition du CNN : les blocs Le CNN est composé de deux blocs principaux : Le premier bloc fait la particularité de ce type de réseaux de neurones, puisqu’il fonctionne comme un extracteur de features.Pour cela, en appliquant des opérations de filtrage par convolution. La première couche filtre l’image avec plusieurs noyaux de convolution, et renvoie des "feature maps", qui sont ensuite normalisées (avec une fonction d’activation) et/ou redimensionnées. Le second bloc : Les valeurs du vecteur en entrée sont transformées (avec plusieurs combinaisons linéaires et fonctions d’activation) pour renvoyer un nouveau vecteur en sortie. OUBDA Deep learning 5 / 36 Définition du CNN Couche de convolution Couche de Pooling Flattening Couche fully-connected Architecture d’un CNN Le transfert learning Définition du CNN : les couches. Il existe quatre types de couches pour un réseau de neurones convolutif : la couche de convolution ; la couche de pooling ; la couche de correction ReLU ; la couche fully-connected. OUBDA Deep learning 6 / 36 Définition du CNN Couche de convolution Couche de Pooling Flattening Couche fully-connected Architecture d’un CNN Le transfert learning Exécution du plan 1 Définition du CNN 2 Couche de convolution 3 Couche de Pooling 4 Flattening 5 Couche fully-connected 6 Architecture d’un CNN Le paramétrage des couches 7 Le transfert learning OUBDA Deep learning 7 / 36 Définition du CNN Couche de convolution Couche de Pooling Flattening Couche fully-connected Architecture d’un CNN Le transfert learning Couche de convolution La convolution, d’un point de vue simpliste, est le fait d’appliquer un filtre mathématique à une image. il s’agit de faire glisser une matrice par-dessus une image, et pour chaque pixel, utiliser la somme de la multiplication de ce pixel par la valeur de la matrice. la convolution permet de trouver les caractéristiques dans une image. Une couche de convolution est constituée de plusieurs filtres de convolution (également appelés kernels) qui opèrent en parallèle sur la même image d’entrée. OUBDA Deep learning 8 / 36 Définition du CNN Couche de convolution Couche de Pooling Flattening Couche fully-connected Architecture d’un CNN Le transfert learning Couche de convolution Pour analyser une photo dans un réseau CNN on l’a fait passé premièrement par une étape de convolution pour détecter les caractéristique de la photo OUBDA Deep learning 9 / 36 Définition du CNN Couche de convolution Couche de Pooling Flattening Couche fully-connected Architecture d’un CNN Le transfert learning Couche de convolution On obtient une nouvelle image (matrice) filtrée. Ce procédé est efficace d’une part et de plus très peu coûteux pour la machine car seules des additions multiplications sont effectuées. OUBDA Deep learning 10 / 36 Définition du CNN Couche de convolution Couche de Pooling Flattening Couche fully-connected Architecture d’un CNN Le transfert learning Couche de convolution : Exemple OUBDA Deep learning 11 / 36 Définition du CNN Couche de convolution Couche de Pooling Flattening Couche fully-connected Architecture d’un CNN Le transfert learning Couche de convolution : Exemple La phase de convolution peut aussi être vue comme des couches de neurones cachées. OUBDA Deep learning 12 / 36 Définition du CNN Couche de convolution Couche de Pooling Flattening Couche fully-connected Architecture d’un CNN Le transfert learning Couche de convolution : ReLu ReLu est une fonction qui doit être appliquée à chaque pixel d’une image après convolution, et remplace chaque valeur négative par un 0. ReLu est très utilisée dans les réseaux de neurones à convolution car il s’agit d’une fonction rapide à calculer. Sa performance est donc meilleure que d’autres fonctions où des opérations coûteuses doivent être effectuées. OUBDA Deep learning 13 / 36 Définition du CNN Couche de convolution Couche de Pooling Flattening Couche fully-connected Architecture d’un CNN Le transfert learning Exécution du plan 1 Définition du CNN 2 Couche de convolution 3 Couche de Pooling 4 Flattening 5 Couche fully-connected 6 Architecture d’un CNN Le paramétrage des couches 7 Le transfert learning OUBDA Deep learning 14 / 36 Définition du CNN Couche de convolution Couche de Pooling Flattening Couche fully-connected Architecture d’un CNN Le transfert learning Couche de Pooling Les couches de pooling, également appelée couches de sous-échantillonnage, permettent de réduire la dimensionnalité. Comme pour la couche de convolution, l’opération de pooling balaie un filtre sur toute l’entrée, à la différence que ce filtre n’a aucun poids. Deux principaux types de pooling : Max pooling ; Average pooling OUBDA Deep learning 15 / 36 Définition du CNN Couche de convolution Couche de Pooling Flattening Couche fully-connected Architecture d’un CNN Le transfert learning Couche Pooling : le max-pooling Le procédé de max-pooling s’effectue en passant une fenêtre (filtre) de dimensions (généralement 2x2 ou 3x3) spécifiées sur l’ensemble de l’entrée. Pour un max-pooling 3x3, la fenêtre de taille 3x3 se déplace sur l’image et sélectionne le maximum de chaque portion de l’image (appelée fenêtre ou région de pooling). OUBDA Deep learning 16 / 36 Définition du CNN Couche de convolution Couche de Pooling Flattening Couche fully-connected Architecture d’un CNN Le transfert learning Couche Pooling : le average pooling Le filtre se déplace sur l’entrée, il calcule la valeur moyenne dans le champ réceptif pour l’envoyer à la matrice de sortie. OUBDA Deep learning 17 / 36 Définition du CNN Couche de convolution Couche de Pooling Flattening Couche fully-connected Architecture d’un CNN Le transfert learning Récapitulatif OUBDA Deep learning 18 / 36 Définition du CNN Couche de convolution Couche de Pooling Flattening Couche fully-connected Architecture d’un CNN Le transfert learning Couche de Pooling : avantages Réduction de la dimensionnalité : Pooling permet de réduire la taille de l’image, ce qui la rend plus facile à gérer pour le réseau neuronal, ce qui accélère l’entraînement et nécessite moins de mémoire ; Invariance aux translations : le regroupement maximal garantit que même si un objet d’une image est légèrement décalé ou pivoté, le réseau peut toujours le reconnaître. Accentuation des caractéristiques : En extrayant les valeurs maximales, le max pooling met en exergue les caractéristiques prédominantes, comme les bords et les textures. OUBDA Deep learning 19 / 36 Définition du CNN Couche de convolution Couche de Pooling Flattening Couche fully-connected Architecture d’un CNN Le transfert learning Couche de Pooling : inconvénients Perte d’informations : l’un des principaux inconvénients de la mise en commun des couches est qu’elles ignorent certaines informations des cartes de caractéristiques d’entrée, ce qui peut être important pour la tâche finale de classification ou de régression. Lissage excessif : le regroupement des couches peut également entraîner un lissage excessif des cartes de caractéristiques, ce qui peut entraîner la perte de certains détails fins importants pour la tâche finale de classification ou de régression. OUBDA Deep learning 20 / 36 Définition du CNN Couche de convolution Couche de Pooling Flattening Couche fully-connected Architecture d’un CNN Le transfert learning Exécution du plan 1 Définition du CNN 2 Couche de convolution 3 Couche de Pooling 4 Flattening 5 Couche fully-connected 6 Architecture d’un CNN Le paramétrage des couches 7 Le transfert learning OUBDA Deep learning 21 / 36 Définition du CNN Couche de convolution Couche de Pooling Flattening Couche fully-connected Architecture d’un CNN Le transfert learning Flattening L’objectif est de les intégrer dans un réseau de neurones artificiels pour un traitement ultérieur. OUBDA Deep learning 22 / 36 Définition du CNN Couche de convolution Couche de Pooling Flattening Couche fully-connected Architecture d’un CNN Le transfert learning Exécution du plan 1 Définition du CNN 2 Couche de convolution 3 Couche de Pooling 4 Flattening 5 Couche fully-connected 6 Architecture d’un CNN Le paramétrage des couches 7 Le transfert learning OUBDA Deep learning 23 / 36 Définition du CNN Couche de convolution Couche de Pooling Flattening Couche fully-connected Architecture d’un CNN Le transfert learning Couche fully-connected 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. 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 ; OUBDA Deep learning 24 / 36 Définition du CNN Couche de convolution Couche de Pooling Flattening Couche fully-connected Architecture d’un CNN Le transfert learning Couche fully-connected : exemple Par exemple, si le problème consiste à distinguer les chats des chiens, le vecteur final sera de taille 2 : le premier élément (respectivement, le deuxième) donne la probabilité d’appartenir à la classe "chat" (respectivement "chien"). Ainsi, le vecteur [0.9 0.1] signifie que l’image a 90% de chances de représenter un chat. OUBDA Deep learning 25 / 36 Définition du CNN Couche de convolution Couche de Pooling Flattening Le paramétrage des couches Couche fully-connected Architecture d’un CNN Le transfert learning Exécution du plan 1 Définition du CNN 2 Couche de convolution 3 Couche de Pooling 4 Flattening 5 Couche fully-connected 6 Architecture d’un CNN Le paramétrage des couches 7 Le transfert learning OUBDA Deep learning 26 / 36 Définition du CNN Couche de convolution Couche de Pooling Flattening Le paramétrage des couches Couche fully-connected Architecture d’un CNN Le transfert learning Architecture d’un CNN Un réseau de neurones à convolution peut avoir plusieurs étapes de convolution, ReLu et Pooling. Une règle à respecter est que la fonction de ReLu doit obligatoirement être appliquée après une étape de convolution afin d’avoir une réponse non-linéaire, mais le Pooling n’est pas obligatoire. OUBDA Deep learning 27 / 36 Définition du CNN Couche de convolution Couche de Pooling Flattening Le paramétrage des couches Couche fully-connected Architecture d’un CNN Le transfert learning Bases de l’architecture CNN OUBDA Deep learning 28 / 36 Définition du CNN Couche de convolution Couche de Pooling Flattening Le paramétrage des couches Couche fully-connected Architecture d’un CNN Le transfert learning Architecture d’un CNN Un CNN est simplement un empilement de plusieurs couches de convolution, pooling, correction ReLU et fully-connected. un réseau de neurones empile plusieurs couches de convolution et de correction ReLU, ajoute ensuite une couche de pooling (facultative), et répète ce motif plusieurs fois ; puis, il empile des couches fully-connected. Les couches de convolution les plus hautes apprennent donc des features sophistiquées. OUBDA Deep learning 29 / 36 Définition du CNN Couche de convolution Couche de Pooling Flattening Le paramétrage des couches Couche fully-connected Architecture d’un CNN Le transfert learning Le paramétrage des couches Les couches de convolution et de pooling possèdent en effet des hyperparamètres, c’est-à-dire des paramètres qui doivent être préalablement définir la valeur. 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) (voir image ci-dessous). OUBDA Deep learning 30 / 36 Définition du CNN Couche de convolution Couche de Pooling Flattening Le paramétrage des couches Couche fully-connected Architecture d’un CNN Le transfert learning Le paramétrage des couches La couche de convolution possède quatre hyperparamètres : Le nombre de filtres K La taille F des filtres : chaque filtre est de dimensions F×F×D pixels. 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 Le zero-padding P : on ajoute à l’image en entrée de la couche un contour noir d’épaisseur P pixels. OUBDA Deep learning 31 / 36 Définition du CNN Couche de convolution Couche de Pooling Flattening Le paramétrage des couches Couche fully-connected Architecture d’un CNN Le transfert learning Le paramétrage des couches OUBDA Deep learning 32 / 36 Définition du CNN Couche de convolution Couche de Pooling Flattening Le paramétrage des couches Couche fully-connected Architecture d’un CNN Le transfert learning 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 OUBDA Deep learning 33 / 36 Définition du CNN Couche de convolution Couche de Pooling Flattening Le paramétrage des couches Couche fully-connected Architecture d’un CNN Le transfert learning Le paramétrage des couches : récapitulatif Tout comme l’empilement, le choix des hyperparamètres se fait selon un schéma classique : Pour la couche de convolution, les filtres sont de petite taille et glissés sur l’image d’un pixel à la fois. La valeur du zero-padding est choisie de sorte que la largeur et la hauteur du volume en entrée ne soient pas modifiées en sortie. En général, on choisit alors F=3, P=1, S=1 ou FF=5, P=2, S=1 Pour la couche de pooling, F=2 et S=2 est un choix judicieux. Cela permet d’éliminer 75% des pixels en entrée. On peut également trouver F=3 et S=2 : dans ce cas, les cellules se chevauchent. Choisir des cellules de plus grande taille provoque une perte trop importante d’informations, et donne de moins bons résultats en pratique OUBDA Deep learning 34 / 36 Définition du CNN Couche de convolution Couche de Pooling Flattening Couche fully-connected Architecture d’un CNN Le transfert learning Exécution du plan 1 Définition du CNN 2 Couche de convolution 3 Couche de Pooling 4 Flattening 5 Couche fully-connected 6 Architecture d’un CNN Le paramétrage des couches 7 Le transfert learning OUBDA Deep learning 35 / 36 Définition du CNN Couche de convolution Couche de Pooling Flattening Couche fully-connected Architecture d’un CNN Le transfert learning Le transfert learning Entraîner un réseau de neurones convolutif est très coûteux : plus les couches s’empilent, plus le nombre de convolutions et de paramètres à optimiser est élevé. Le Transfer Learning (ou apprentissage par transfert) : Le principe est d’utiliser les connaissances acquises par un réseau de neurones lors de la résolution d’un problème afin d’en résoudre un autre plus ou moins similaire. On réalise ainsi un transfert de connaissances OUBDA Deep learning 36 / 36