Cette question se résume à "comment fonctionnent exactement les couches de convolution .
Supposons que j'ai une image en niveaux de gris . L'image a donc un canal. Dans la première couche, j'applique une convolution avec des filtres et un remplissage. Ensuite, j'ai une autre couche de convolution avec convolutions et des filtres . Combien de cartes d'entités ai-je?3 × 3 k 1 5 × 5 k 2
Convolution de type 1
La première couche est exécutée. Après cela, j'ai cartes de fonctionnalités (une pour chaque filtre). Chacun d'eux a la taille . Chaque pixel a été créé en prenant pixels de l'image d'entrée rembourrée. n × m 3 ⋅ 3 = 9
Ensuite, la deuxième couche est appliquée. Chaque filtre unique est appliqué séparément à chacune des cartes d' entités . Il en des cartes d' pour chacune des cartes d' . Il y a donc cartes d' après la deuxième couche. Chaque pixel de chacune des nouvelles cartes d'entités a été créé en prenant "pixels" de la carte d'entités rembourrée d'avant.k 1 k 1 × k 2 5 ⋅ 5 = 25
Le système doit apprendre les .
Convolution de type 2.1
Comme auparavant: la première couche est exécutée. Après cela, j'ai cartes de fonctionnalités (une pour chaque filtre). Chacun d'eux a la taille . Chaque pixel a été créé en prenant pixels de l'image d'entrée rembourrée. n × m 3 ⋅ 3 = 9
Contrairement à avant: Ensuite, la deuxième couche est appliquée. Chaque filtre est appliqué à la même région, mais toutes les cartes d' entités précédentes. Il en des cartes d' au total après l'exécution de la deuxième couche. Chaque pixel de chacune des nouvelles cartes d' été créé en prenant "pixels" des cartes d' rembourrées d'avant.k 2 ⋅ 5 ⋅ 5 = 25 ⋅ k 2
Le système doit apprendre les .
Convolution de type 2.2
Comme ci-dessus, mais au lieu d'avoir paramètres par filtre qui doivent être appris et simplement copiés pour les autres cartes d' entrée, vous avez paramètres à apprendre.
Question
- Le type 1 ou le type 2 est-il généralement utilisé?
- Quel type est utilisé dans Alexnet ?
- Quel type est utilisé dans GoogLeNet ?
- Si vous dites type 1: Pourquoi les circonvolutions un sens? Ne multiplient-ils pas seulement les données par une constante?
- Si vous dites type 2: veuillez expliquer le coût quadratique ("Par exemple, dans un réseau de vision profonde, si deux couches convolutionnelles sont chaînées, toute augmentation uniforme du nombre de leurs filtres entraîne une augmentation quadratique du calcul")
Pour toutes les réponses, veuillez fournir des preuves (articles, manuels, documentation des cadres) que votre réponse est correcte.
Question bonus 1
Le regroupement est-il toujours appliqué uniquement par carte d'entités ou est-il également effectué sur plusieurs cartes d'entités?
Question bonus 2
Je suis relativement sûr que le type 1 est correct et je me suis trompé avec le papier GoogLe. Mais il y a aussi des circonvolutions 3D. Disons que vous avez 1337 cartes de caractéristiques de taille et que vous appliquez un filtre . Comment faites-vous glisser le filtre sur les cartes d'entités? (De gauche à droite, de haut en bas, de la première carte d'entités à la dernière carte d'entités?) Est-ce important tant que vous le faites de manière cohérente?3 × 4 × 5
Ma recherche
- J'ai lu les deux articles d'en haut, mais je ne sais toujours pas ce qui est utilisé.
- J'ai lu la documentation des lasagnes
- J'ai lu la documentation de theano
- J'ai lu les réponses sur Comprendre les réseaux de neurones convolutifs (sans suivre tous les liens)
- J'ai lu les réseaux neuronaux convolutionnels (LeNet) . Surtout la figure 1 me rend relativement sûr que le type 2.1 est le bon. Cela correspondrait également au commentaire «coût quadratique» dans GoogLe Net et à une expérience pratique que j'ai eue avec Caffee.