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 , où nous inversons les lignes et les Colonnes.
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 à:
- Le fait que la convolution est associative alors que la corrélation ( croisée) ne l'est pas.
- 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:
qui est essentiellement la somme de toutes les cellules d'un produit Hadamard:
où 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 ) :
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:
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é:
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:
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):
- 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.
- La convolution et la corrélation croisée dans CNN sont-elles équivalentes?
Oui, ils sont équivalents.
- 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) (?).