Quel est le nombre de filtres dans CNN?

je suis actuellement en train de voir l'API de théano,

theano.tensor.nnet.conv2d(input, filters, input_shape=None, filter_shape=None, border_mode='valid', subsample=(1, 1), filter_flip=True, image_shape=None, **kwargs)

filter_shape est un n-uplet (num_filter, num_channel, height, width), je suis confus à ce sujet parce que n'est-ce pas le nombre de filtre décidé par la foulée tout en glissant la fenêtre de filtre sur l'image? Comment puis-je spécifier un numéro de filtre comme celui-ci? Il serait raisonnable pour moi si elle est calculée par le paramètre stride (s'il y en a).

aussi, je suis confus avec le terme carte de caractéristique aussi bien, est-ce les neurones à chaque couche? Comment à propos de la taille du lot? Comment sont-ils corrélés?

25
demandé sur mrry 2016-03-27 06:31:21

2 réponses

le nombre de filtres est le nombre de neurones, puisque chaque neurone exécute une convolution différente sur l'entrée à la couche (plus précisément, les poids d'entrée des neurones forment des noyaux de convolution).

une carte de fonctionnalité est le résultat de l'application d'un filtre (donc, vous avez autant de cartes de fonctionnalité que de filtres), et sa taille est le résultat de la taille de la fenêtre/noyau de votre filtre et de la foulée.

L'image suivante a été la meilleure que j'ai pu trouver pour expliquer le concept à haute niveau: enter image description here Notez que 2 filtres convolutionnels différents sont appliqués à l'image d'entrée, résultant en 2 cartes de caractéristiques différentes (la sortie des filtres). Chaque pixel de chaque carte est une sortie de la couche convolutionnelle.

par exemple, si vous avez des images d'entrée 28x28 et une couche convolutionnelle avec 20 filtres 7x7 et stride 1, vous obtiendrez 20 cartes de fonctionnalités 22x22 à la sortie de cette couche. Notez que ceci est présenté à la couche suivante comme un volume avec largeur = hauteur = 22 et profondeur = num_channels = 20. Vous pouvez utiliser la même représentation pour former votre CNN sur des images RVB comme celles de l'ensemble de données CIFAR10, qui seraient des volumes 32x32x3 (la convolution est appliquée seulement aux 2 dimensions spatiales).

34
répondu rcpinto 2018-09-11 22:48:31

le nombre de filtres est un hyper-paramètre qui peut être accordé. Le nombre de neurones dans une couche convolutionnelle est égal à la taille de la sortie de la couche. Dans le cas des images, c'est la taille de la carte.

1
répondu gapy 2018-07-17 02:03:03