web-dev-qa-db-fra.com

Quel est le nombre de filtres dans CNN?

Je vois actuellement l'API de theeano,

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)

où le filter_shape est un tuple de (num_filter, num_channel, height, width), je ne comprends pas très bien car ce n'est pas le nombre de filtres décidé par la foulée lorsque vous faites glisser la fenêtre de filtrage sur l'image? Comment puis-je spécifier le numéro de filtre comme ceci? Il serait raisonnable pour moi si elle est calculée par le paramètre stride (s’il en existe).

De plus, je suis aussi confus avec le terme carte de caractéristiques, est-ce que ce sont les neurones à chaque couche? Comment sur la taille du lot? Comment sont-ils corrélés?

27
xxx222

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

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

L'image suivante était la meilleure que j'ai pu trouver pour expliquer le concept à un niveau élevé:  enter image description here Notez que 2 filtres de convolution différents sont appliqués à l'image d'entrée, ce qui donne 2 cartes de caractéristiques différentes (la sortie des filtres). Chaque pixel de chaque carte de caractéristiques est une sortie de la couche de convolution.

Par exemple, si vous avez des images d'entrée 28x28 et un calque convolutif avec 20 filtres 7x7 et foulée 1, vous obtiendrez 20 cartes de caractéristiques 22x22 à la sortie de ce calque. Notez que ceci est présenté au calque suivant comme un volume de largeur = hauteur = 22 et profondeur = num_channels = 20. Vous pouvez utiliser la même représentation pour former votre CNN sur des images RVB telles que celles du jeu de données CIFAR10, qui seraient: 32x32x3 volumes (convolution est appliquée uniquement aux 2 dimensions spatiales).

43
rcpinto

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

1
gapy