CNN Notes 1 : L'opération de convolution
Bonjour à tous! Pendant que mon travail avec la spécialisation MLOps se poursuit, je prévois également de rappeler mes anciennes notes sur les CNN et les RNN de la spécialisation Deep Learning. Cette série d'articles se concentre principalement sur le cours-4 de la spécialisation intitulée Convolutional Neural Networks . J'espère que vous apprécierez ces notes et que vous commenterez les domaines à améliorer !
Lors de la création d'un modèle de reconnaissance d'image, en utilisant un NN standard, jusqu'à présent, nous avons utilisé des images qui ne sont que de petite taille, c'est-à-dire (64X64, 24X24, etc.,). Mais dans la vraie vie, les dimensions de l'image que nous voulons généralement utiliser seront (~1000 x ~1000). c'est-à-dire que chaque image sera un vecteur de (~3 millions , 1). et les dimensions des poids seront encore plus. Avec ces paramètres dimensionnels élevés, nous avons besoin de données suffisamment volumineuses pour éviter le surajustement ainsi que des exigences de calcul très élevées. C'est très inefficace.
Pour résoudre ce problème, nous utilisons l' opération de convolution , qui est l'un des éléments fondamentaux de CNN et nous illustrerons les convolutions en utilisant l'exemple de la détection de bord.
Opération de convolution :
Nous utilisons cette opération pour assurer la relation spatiale entre les pixels en apprenant les caractéristiques de l'image à l'aide de petits carrés de données d'entrée , c'est-à-dire que nous prenons un ensemble de pixels, apprenons leur relation déterminée par le filtre et stockons la sortie qui indique la relation spatiale entre le pixels.
Quelle est cette « relation spatiale » ?
Pour comprendre cela, considérons un livre posé sur une table. Comment déterminons-nous que le livre est différent de la table ? Nous, les humains, pouvons instinctivement savoir que le livre est différent du tableau car nous pouvons voir les 3 dimensions du livre, l'analyser et le traiter, c'est-à-dire que nous voyons les ombres projetées par le livre, sa hauteur et de nombreuses autres caractéristiques.
De même, en vision par ordinateur, nous devons d'abord différencier un objet de son environnement, cela se fait en comparant un pixel à son environnement. Dans un NN standard, nous avons étudié chaque pixel et essayé de mapper l'ensemble des pixels sur une sortie, en utilisant une fonction. Maintenant, dans CNN, nous étudions les différences entre un pixel et son environnement pour en extraire des caractéristiques. Ce n'est rien d'autre que la "relation spatiale" susmentionnée.
L'opération que nous effectuons est en fait appelée corrélation croisée en mathématiques. Mais dans la littérature DL, nous appelons cela une opération de convolution.
Pour gagner plus de clarté sur le processus de convolution, prenons un exemple simple d'une matrice 5x5 (image dans ce cas), et un filtre 3x3 :
Dans l'image GIF ci-dessus, nous pouvons voir que toute la matrice 5x5 est transformée en une matrice 3x3 à l'aide d'un filtre 3x3. Cette sortie 3x3 contient la relation spatiale des pixels au milieu de la matrice 5x5 [c'est-à-dire, à partir de la valeur de la position (2,2) à (4,4)]. Ce qui nous fait perdre l'information sur les bords de la matrice. Nous verrons les étapes pour lutter contre cette perte d'informations plus tard lorsque nous discuterons du rembourrage .
Exemple : Détection des contours
La détection des bords est l'application la plus simple utilisant l'opération de convolution, car les valeurs de pixel diffèrent considérablement sur les bords. Lorsque nous observons les pixels sur le bord ou la frontière entre 2 objets différents, disons un visage et son arrière-plan, le bord du visage sera entouré par les pixels du visage qui indiquent la couleur de la peau d'un côté, et la couleur de l'arrière-plan de l'autre. l'autre côté.
On peut aussi reprendre l'exemple précédent du livre sur la table et voir que la texture, la couleur du livre est différente de la table sur laquelle il est posé.
Maintenant, regardons un exemple beaucoup plus simple pour comprendre l'essentiel de ce que nous venons de lire,
Dans cet exemple, vous pouvez voir que la bordure se trouve aux 3e et 4e colonnes, où un côté est clair et l'autre côté est sombre. Qui lorsqu'il est passé à travers un filtre, nous obtenons des colonnes lumineuses au milieu indiquant que le bord est au milieu des pixels considérés. Maintenant, si l'image d'entrée est retournée horizontalement, nous obtenons une sortie opposée comme nous pouvons le voir ci-dessous,
Les -30 indiquent que la transition de gauche à droite s'effectue entre une zone plus sombre de l'image et une zone plus claire , tandis que les +30 indiquent que la transition s'effectue d' une zone plus claire à une zone plus sombre .
On peut remarquer que le filtre que nous avons utilisé est un filtre vertical, qui tente de détecter les bords en partant de la gauche de l'écran. Si nous voulons un filtre pour la détection des contours horizontaux, nous pouvons simplement prendre la transposition du filtre que nous utilisons. Les informations que nous obtenons en utilisant le filtre ci-dessus sont très minimes. Pour obtenir plus d'informations, nous utilisons de nombreux filtres complexes. Il existe de nombreux filtres prédéfinis qui sont des filtres célèbres pour la détection des contours, comme le filtre Sobel ou le filtre Scharr, etc.,
Même si ces filtres fonctionnent, il existe une meilleure façon de le faire. Ce qui consiste à utiliser la rétro-propagation pour apprendre à un filtre ce qu'il doit détecter. Nous en reparlerons très bientôt dans la série. Alors, restez à l'écoute de ma page et n'hésitez pas à consulter mes autres articles en attendant !
Merci d'être passé! Je veillerai à ce que le prochain article sorte comme prévu avec un calendrier précis. Alors, gardez un œil dessus ! En attendant, vous pouvez lire mes articles sur mon projet d'analyse de données ou sur la façon dont la populaire spécialisation Deep Learning se compare au Deep Learning Nanodegree d'Udacity. Ou vous pouvez également consulter mes dernières notes sur la spécialisation MLOps ici .
Suggestions de soumission Mlearning.ai![Qu'est-ce qu'une liste liée, de toute façon? [Partie 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































