J'étudie les réseaux de neurones convolutifs (CNN) en raison de leurs applications en vision par ordinateur. Je connais déjà les réseaux de neurones standard à alimentation, donc j'espère que certaines personnes ici peuvent m'aider à faire un pas de plus dans la compréhension des CNN. Voici ce que je pense des CNN:
- Dans les NN traditionnels, nous avons des données d'apprentissage où chaque élément se compose d'un vecteur caractéristique que nous entrons dans le NN dans la "couche d'entrée", donc avec la reconnaissance d'image, nous pourrions simplement avoir chaque pixel comme une entrée. Ce sont nos vecteurs de fonctionnalités. Alternativement, nous pourrions créer manuellement d'autres vecteurs de caractéristiques - probablement plus petits -.
- L'avantage du CNN est qu'il peut générer des vecteurs de caractéristiques plus forts qui sont plus invariants à la distorsion et à la position de l'image. Comme le montre l'image suivante (à partir de ce tutoriel ), les CNN génèrent des cartes d'entités qui sont ensuite alimentées vers un réseau de neurones standard (donc c'est vraiment une étape de prétraitement géante).
- Nous obtenons ces «meilleures» fonctionnalités en alternant convolution et sous-échantillonnage. Je comprends le fonctionnement du sous-échantillonnage. Pour chaque carte d'entités, prenez simplement un sous-ensemble des pixels, ou nous pouvons faire la moyenne des valeurs des pixels.
Mais ce que je suis principalement confus, c'est comment fonctionne l'étape de convolution. Je connais les convolutions de la théorie des probabilités (densité pour la somme de deux variables aléatoires), mais comment fonctionnent-elles dans les CNN et pourquoi sont-elles efficaces?
Ma question est similaire à celle-ci mais en particulier, je ne sais pas pourquoi la première étape de convolution fonctionne.
la source
Je n'ai aucune idée de ce que vous entendez par «pourquoi la première étape de convolution fonctionne». Pour qu'un CNN réussisse, il doit avoir plusieurs couches. L'une des idées fondamentales derrière CNN et de nombreuses autres approches d'apprentissage en profondeur est que des signaux plus gros peuvent être identifiés par la corrélation spatiale de leurs petites parties qui peuvent être peu représentées. En d'autres termes, les images peuvent sembler complexes mais elles sont faites à partir d'une combinaison de quelques éléments de base. Pour la vision par ordinateur, la structure de base des images est généralement composée de bords et de coins. CNN essaie d'exploiter la rareté de la structure dans une image en recherchant des structures localisées communes. C'est ce que la première couche du CNN tente de déterminer. Considérez une convolution comme un filtre de correspondance qui recherche des signaux qui correspondent à un modèle spécifique. Son efficacité dépend des données disponibles. Heureusement, le monde est plein de répétitions à petite échelle, donc CNN fonctionne bien pour les tâches de vision par ordinateur.
la source
Cette vidéo explique très bien la base de la convolution.
la source