Y a-t-il des raisons mathématiques pour la convolution dans les réseaux de neurones au-delà de l'opportunité?

14

Dans les réseaux de neurones convolutifs (CNN), la matrice de poids à chaque étape obtient ses lignes et colonnes inversées pour obtenir la matrice du noyau, avant de procéder à la convolution. Ceci est expliqué sur une série de vidéos de Hugo Larochelle ici :

Calculer les cartes cachées correspondrait à faire une convolution discrète avec un canal de la couche précédente, en utilisant une matrice de noyau [...], et ce noyau est calculé à partir de la matrice de poids cachée Wij , où nous inversons les lignes et les Colonnes.

entrez la description de l'image ici

Si nous devions comparer les étapes réduites d'une convolution à une multiplication matricielle régulière comme dans d'autres types de NN, l' opportunité serait une explication claire . Cependant, ce n'est peut-être pas la comparaison la plus pertinente ...

Dans le traitement d'imagerie numérique, l'application de la convolution d'un filtre à une image ( c'est une excellente vidéo YouTube pour une intuition pratique ) semble liée à:

  1. Le fait que la convolution est associative alors que la corrélation ( croisée) ne l'est pas.
  2. La possibilité d'appliquer des filtres dans le domaine fréquentiel de l'image comme multiplications, car la convolution dans le domaine temporel équivaut à la multiplication dans le domaine fréquentiel ( théorème de convolution ).

Dans cet environnement technique particulier, la corrélation DSP est définie comme:

FI(x,y)=j=NNi=NNF(i,j)I(x+i,y+j)

qui est essentiellement la somme de toutes les cellules d'un produit Hadamard:

FI(x,y)=[F[N,N]I[xN,yN]F[N,0]I[xN,yN]F[N,N]I[xN,y+N]F[0,N]I[x,yN]F[0,0]I[x,y]F[0,N]I[x,y+N]F[N,N]I[x+N,yN]F[N,0]I[x+N,y]F[N,N]I[x+N,y+N]]

est une fonction de filtre (exprimée sous forme de matrice) et I ( x , y ) est la valeur en pixels d'une image à l'emplacement ( x , y ) :F(i,j)I(x,y)(x,y)

entrez la description de l'image ici

L' objectif de la corrélation croisée est d'évaluer la similitude d'une image de sonde avec une image de test. Le calcul d'une carte de corrélation croisée repose sur le théorème de convolution.


D'autre part, la convolution est définie comme:

FI(x,y)=j=NNi=NNF(i,j)I(xi,yj)

qui tant que le filtre est symétrique, c'est la même chose qu'une opération de corrélation avec les lignes et colonnes du filtre retourné:

FI(x,y)=[F[N,N]I[xN,yN]F[N,0]I[xN,yN]F[N,N]I[xN,y+N]F[0,N]I[x,yN]F[0,0]I[x,y]F[0,N]I[x,y+N]F[N,N]I[x+N,yN]F[N,0]I[x+N,y]F[N,N]I[x+N,y+N]]

entrez la description de l'image ici


La convolution dans DSP est destinée à appliquer des filtres à l'image (par exemple, lissage, netteté). Par exemple, après convolution du visage de Joseph Fourier avec un filtre de convolution gaussien : les bords de son visage sont plus flous:[1474141626164726412674162616414741]

entrez la description de l'image ici


Calculativement, les deux opérations sont un produit intérieur de Frobenius, ce qui revient à calculer la trace d'une multiplication matricielle .


Questions (reformulation après commentaires et première réponse):

  1. L'utilisation des convolutions dans CNN est-elle liée à la FFT?

D'après ce que je comprends jusqu'à présent, la réponse est non. Les FFT ont été utilisées pour accélérer la mise en œuvre GPU des convolutions . Cependant, les FFT ne font généralement pas partie de la structure ou des fonctions d'activation dans les CNN, malgré l'utilisation de convolutions dans les étapes de pré-activation.

  1. La convolution et la corrélation croisée dans CNN sont-elles équivalentes?

Oui, ils sont équivalents.

  1. Si c'est simple comme "il n'y a pas de différence", quel est l'intérêt de retourner les poids dans la matrice du noyau?

Ni l'associativité de la convolution (utile dans les preuves mathématiques), ni aucune considération concernant les FT et le théorème de convolution ne sont applicables. En fait, il semble que le retournement n'ait même pas lieu (la corrélation croisée étant simplement mal étiquetée comme convolution) (?).

Antoni Parellada
la source
Antoni pouvez-vous indiquer n'importe quelle source où ils renversent les poids? Comme l'a souligné @hossein, vous pouvez faire n'importe quoi avec la corrélation croisée que vous pouvez faire avec des convolutions, simplement en inversant la commande. Donc, tous ces trucs dans le domaine des fréquences sont sans importance.
seanv507
@ seanv507 J'ai modifié mon OP pour inclure la source de ce que je crois que vous me demandez. Je comprends que la convolution est la même opération que la corrélation croisée avec une matrice de filtre inversée, mais je ne comprends pas pourquoi nous passons en revue la «douleur» de la convolution discrète s'il n'y a rien qui ne puisse être accompli avec corrélation. La réponse donnée est clairement bien informée, mais elle pourrait être intégrée dans un commentaire, et n'explique pas la raison derrière deux opérations distinctes (est-ce une "tradition" du DSP reportée au ML?), Les implications quant au processus d'apprentissage, et la relation avec les FT.
Antoni Parellada
1
Antoni, il n'est pas nécessaire de retourner. C'est plus une convention; dans dsp, les gens parlent de convolution plutôt que de corrélation croisée, et les réseaux neuronaux corrélationnels ne roulent pas de la langue. Mais l'opération la plus naturelle (pour les humains à interpréter) est la corrélation croisée (vous faites correspondre le modèle) pour CNN (pensez par exemple à un filtre de bord vertical plutôt qu'à une rotation symétrique). Je pense donc que Hugo Larochelle parle peut - être sur les bibliothèques numériques où convolution plutôt que de corrélation croisée est fonction standard (il est effectivement dire intercorrélation peut être fait par une convolution.).
seanv507
1
Antoni, d'accord sur les 2 premières questions / réponses, et mon commentaire répondait à la 3ème question.
seanv507
1
Bien qu'il n'y ait pas nécessairement un lien direct entre les CNN et les FFT, il existe des preuves qui montrent que vous pouvez obtenir une accélération des CNN en utilisant les FFT lorsque vous conservez la somme de convolution habituelle. Voir ici par exemple: arxiv.org/pdf/1312.5851.pdf
Alex R.

Réponses:

8

Il n'y a aucune différence dans ce que les réseaux de neurones peuvent faire lorsqu'ils utilisent la convolution ou la corrélation. En effet, les filtres sont appris et si un CNN peut apprendre à effectuer une tâche particulière à l'aide d'une opération de convolution, il peut également apprendre à effectuer la même tâche à l'aide d'une opération de corrélation (il apprendrait la version pivotée de chaque filtre).

Pour trouver plus de détails sur les raisons pour lesquelles les gens trouvent parfois plus intuitif de penser à la convolution qu'à la corrélation, ce message peut être utile.

Reste cette question: s'il n'y a pas de différence entre convolution et corrélation croisée, quel est l'intérêt de retourner les poids dans la matrice du noyau? Je voudrais inclure quelques phrases tirées du livre Deep learning de Ian Goodfellow et al. pour répondre à cette question:

"La seule raison de retourner le noyau est d'obtenir la propriété commutative. Bien que la propriété commutative soit utile pour écrire des preuves, ce n'est généralement pas une propriété importante d'une implémentation de réseau de neurones ... De nombreuses bibliothèques d'apprentissage automatique implémentent la corrélation croisée mais appellent il convolution. "

La conclusion est que, bien que la convolution soit une opération préférée dans les applications classiques de vision industrielle, elle est remplacée par une corrélation dans de nombreuses implémentations des réseaux de neurones convolutionnels.

Hossein
la source
Je vous remercie. J'ai lu avec attention le blog auquel vous accédez, et il semble que l'utilisation de la convolution ne soit pas simplement équivalente à la corrélation et réponde à la sélection des fonctionnalités du domaine fréquentiel. Je suis à la recherche d'une réponse développant à ce sujet.
Antoni Parellada
Comme je le sais, ils sont équivalents dans ce qu'ils peuvent faire , car les deux font un produit scalaire de deux matrices, mais la convolution retourne la matrice de filtre avant le produit scalaire, et puisque les CNN apprennent les filtres, ils peuvent apprendre les filtres inversés.
Hossein
+1 à l'explication Hosseins, mais -1 pour le lien du blog. Le blog est principalement axé sur le matériel, et il est un gars CS sans expérience en convolution et autres concepts de traitement du signal.
seanv507
Je voudrais encore insister pour avoir un paragraphe supplémentaire sur la relation (ou son absence) entre la convolution dans les CNN et les transformées de Fourier.
Antoni Parellada
2

Il existe une raison pratique pour le lien entre les FFT et la convolution.

La convolution est lente dans le domaine temps / image. Appliquer unn×n filtrer sur un pixel nécessite O(n2)multiplications et ajouts. En l'appliquant à chaque pixel d'unN×N l'image nécessite donc n2N2opérations. Cela croît rapidement et le grand nombre d'opérations nécessite non seulement du temps supplémentaire, mais introduit également plus d'erreurs numériques.

Le théorème de convolution dit que la convolution dans le domaine temporel équivaut à une multiplication ponctuelle dans le domaine fréquentiel. Les FFT sont rapides: elles ont de bonnes performances asymptotiquesO(N2JournalN2)et les implémentations réelles sont souvent hautement optimisées. Le passage au domaine de Fourier permet donc d'effectuer une convolution dansO(N2) temps (qui est dominé par la multiplication ponctuelle), au lieu de O(n2N2). Cela peut fournir une accélération considérable, même s'il semble beaucoup plus compliqué de descendre la route FFT -> multiplication -> FFT inverse. Plus ici

Matt Krause
la source