Quelle est la différence entre les termes "noyau" et "filtre" dans le contexte des réseaux de neurones à convolution?
37
Quelle est la différence entre les termes "noyau" et "filtre" dans le contexte des réseaux de neurones à convolution?
Réponses:
Dans le contexte des réseaux neuronaux convolutionnels, kernel = filter = feature detect.
Voici une excellente illustration du didacticiel d’apprentissage approfondi de Stanford (également expliqué par Denny Britz ).
Le filtre est la fenêtre coulissante jaune et sa valeur est:
la source
Une carte de fonctionnalités est identique à un filtre ou "noyau" dans ce contexte particulier. Les poids du filtre déterminent quelles caractéristiques spécifiques sont détectées.
Ainsi, par exemple, Franck a fourni un excellent visuel. Notez que son filtre / détecteur de caractéristiques a x1 le long des éléments diagonaux et x0 tous les autres éléments. Cette pondération du noyau détecterait ainsi dans l'image des pixels ayant une valeur de 1 le long des diagonales de l'image.
Observez que la caractéristique convolue résultante montre des valeurs de 4 partout où l’image a un "1" le long des valeurs diagonales du filtre 3x3 (détectant ainsi le filtre dans cette section spécifique 3x3 de l’image), et des valeurs inférieures de 2 dans les zones de l'image où ce filtre ne correspond pas aussi fortement.
la source
Actuellement, il existe un problème de nomenclature dans ce domaine. Il existe de nombreux termes décrivant la même chose et même des termes utilisés indifféremment pour des concepts différents! Prenons comme exemple la terminologie utilisée pour décrire le résultat d’une couche de convolution: cartes de caractéristiques, canaux, activations, tenseurs, plans, etc.
D'après wikipedia, "Dans le traitement des images, un noyau est une petite matrice".
D'après wikipedia, "une matrice est un tableau rectangulaire organisé en lignes et en colonnes".
Eh bien, je ne peux pas dire que c'est la meilleure terminologie, mais il vaut mieux que les termes "noyau" et "filtre" soient utilisés indifféremment. De plus, nous avons besoin d’ un mot pour décrire le concept des tableaux 2D distincts qui forment un filtre.
la source
Les réponses existantes sont excellentes et répondent de manière exhaustive à la question. Je veux juste ajouter que les filtres dans les réseaux de convolution sont partagés sur toute l'image (c'est-à-dire que l'entrée est convolutionnée avec le filtre, comme visualisé dans la réponse de Franck). Le champ réceptif d'un neurone particulier sont toutes des unités d'entrée qui affectent le neurone en question. Le champ récepteur d'un neurone dans un réseau de convolution est généralement plus petit que celui d'un neurone dans un réseau dense, grâce aux filtres partagés (également appelé partage de paramètres ).
Le partage de paramètres confère un avantage certain aux CNN, à savoir une propriété appelée équivariance de la traduction . Cela signifie que si l'entrée est perturbée ou traduite, la sortie est également modifiée de la même manière. Ian Goodfellow donne un excellent exemple dans le Deep Learning Book concernant la manière dont les praticiens peuvent capitaliser sur l'équivariance des CNN:
la source