Relation entre la convolution en mathématiques et CNN

10

J'ai lu l' explication de la convolution et je la comprends dans une certaine mesure. Quelqu'un peut-il m'aider à comprendre comment cette opération est liée à la convolution dans les réseaux neuronaux convolutionnels? Le filtre est-il une fonction gqui applique du poids?

Vladimir Lénine
la source
C'est exactement ce que je lis et je vois de là que la convolution dans CNN est une opération matricielle. Et la convolution "fonctionnelle" n'y est jamais utilisée? Il ne s'agit donc que de 2 opérations différentes portant le même nom?
VladimirLenin
2
Il est possible que la différence que vous voyez se situe entre des vues discrètes et continues de la convolution - c'est essentiellement la même opération, mais doit être effectuée différemment dans ces deux espaces différents. Les CNN utilisent des convolutions discrètes. Et ils ne le font que parce que c'est un moyen pratique d'exprimer les mathématiques des connexions (cela s'applique dans les deux directions - c'est une commodité mathématique compte tenu de la conception, et probablement qu'une des raisons pour lesquelles cette conception est populaire car elle correspond parfaitement à un puits déjà comprise dans le traitement du signal)
Neil Slater

Réponses:

2

En utilisant la notation de la page wikipedia, la convolution dans un CNN va être le noyau dont nous apprendrons quelques poids afin d'extraire les informations dont nous avons besoin et ensuite peut-être d'appliquer une fonction d'activation.g

Convolutions discrètes

À partir de la page wikipedia, la convolution est décrite comme

(Fg)[n]=m=-infinfF[m]g[n-m]

Par exemple, en supposant est la fonction et est la fonction de convolution ,uneFbg

entrez la description de l'image ici

Pour résoudre ce problème, nous pouvons d'abord utiliser l'équation, nous inversons la fonction verticalement, en raison du qui apparaît dans l'équation. Ensuite, nous calculerons la somme pour chaque valeur de . Lors de la modification de , la fonction d'origine ne bouge pas, mais la fonction de convolution est décalée en conséquence. À partir de ,b-mnnn=0

c[0]=mune[m]b[-m]=00,25+00,5+11+0,50+10+10=1

c[1]=mune[m]b[-m]=00,25+10,5+0,51+10+10=1

c[2]=mune[m]b[-m]=10,25+0,50,5+11+10+10=1,5

c[3]=mune[m]b[-m]=10+0,50,25+10,5+11=1,625

c[4]=mune[m]b[-m]=10+0,50+10,25+10,5+01=0,75

c[5]=mune[m]b[-m]=10+0,50+10+10,25+00,501=0,25

Comme vous pouvez le voir, c'est exactement ce que nous obtenons sur le graphique . Nous avons donc déplacé la fonction sur la fonction .c[n]b[n]une[n]

Convolution discrète 2D

Par exemple, si nous avons la matrice en vert

entrez la description de l'image ici

avec le filtre à convolution

entrez la description de l'image ici

Ensuite, l'opération résultante est une multiplication par élément et l'addition des termes comme indiqué ci-dessous. Tout comme le montre la page wikipedia, ce noyau (matrice orange) est déplacé sur toute la fonction (matrice verte) .gF

entrez la description de l'image ici

extrait du lien référencé @Hobbes. Vous remarquerez qu'il n'y a pas de retournement du noyau comme nous l'avons fait pour le calcul explicite de la convolution ci-dessus. C'est une question de notation comme le souligne @Media. Cela devrait être appelé corrélation croisée. Cependant, sur le plan du calcul, cette différence n'affecte pas les performances de l'algorithme car le noyau est entraîné de telle sorte que ses pondérations sont les mieux adaptées à l'opération, l'ajout de l'opération de basculement obligerait simplement l'algorithme à apprendre les pondérations dans différentes cellules du noyau pour accueillir le flip. Nous pouvons donc omettre le flip.g

JahKnows
la source
1

Oui, ils sont liés. Par exemple, considérons le lissage gaussien (en.wikipedia.org/wiki/Gaussian_blur) qui est une convolution avec un noyau de valeurs gaussiennes. Un CNN apprend les poids des filtres (c.-à-d. Les noyaux) et peut ainsi apprendre à effectuer un lissage si nécessaire.

MD004
la source
1

Bien qu'ils soient CNNdes réseaux de neurones convolutifs, ce qu'ils font est appelé corrélation croisée en mathématiques et non convolution. Jetez un oeil ici .

Maintenant, avant de continuer, il y a un commentaire technique que je veux faire à propos de la corrélation croisée contre les convolutions et juste pour les faits ce que vous devez faire pour mettre en œuvre des réseaux de neurones convolutionnels. Si vous lisez différents manuels de mathématiques ou manuels de traitement du signal, il y a une autre incohérence possible dans la notation qui est que, si vous regardez le manuel de mathématiques typique, la façon dont la convolution est définie avant de faire le produit de l'élément Y et de sommer, il y a en fait une autre étape ...

Médias
la source