Pourquoi alambiquer si Max Pooling va juste sous-échantillonner l'image de toute façon?

14

L'idée d'appliquer des filtres pour faire quelque chose comme identifier les bords, est une idée plutôt cool.

Par exemple, vous pouvez prendre une image d'un 7. Avec certains filtres, vous pouvez vous retrouver avec des images transformées qui mettent en valeur différentes caractéristiques de l'image d'origine. L'original 7:

entrez la description de l'image ici

peut être vécu par le réseau comme:

entrez la description de l'image ici

Remarquez comment chaque image a extrait un bord différent de l'original 7.

Tout cela est très bien, mais disons que la couche suivante de votre réseau est une couche Max Pooling.

Ma question est, en général, cela ne semble-t-il pas un peu exagéré? Nous avons simplement été très prudents et délibérés avec l'identification des bords à l'aide de filtres - maintenant, nous ne nous soucions plus de rien, car nous avons foutu le bord des valeurs de pixels! Veuillez me corriger si je me trompe, mais nous sommes passés de 25 X 25 à 2 X 2! Pourquoi ne pas simplement aller directement à Max Pooling, ne finirons-nous pas par la même chose?

Dans le prolongement de ma question, je ne peux m'empêcher de me demander ce qui se passerait si, par coïncidence, chacun des 4 carrés avait juste un pixel avec la même valeur maximale. Ce n'est sûrement pas un cas rare, non? Soudain, toutes vos images d'entraînement se ressemblent exactement.

Monica Heddneck
la source

Réponses:

16

Le regroupement maximal ne sous-échantillonne pas l'image. Il sous-échantillonne les fonctions (telles que les bords) que vous venez d'extraire. Ce qui signifie que vous obtenez plus approximativement où se trouvent ces arêtes ou autres caractéristiques. Souvent, c'est exactement ce dont le réseau a besoin pour la généralisation - pour le classer, il n'a pas besoin de savoir qu'il y a un bord vertical allant de 10,5 à 10,20, mais qu'il y a un bord approximativement vertical à environ 1/3 de bord gauche d'environ 2/3 de la hauteur de l'image.

Ces catégories de fonctionnalités plus grossières couvrent intrinsèquement plus de variations dans l'image d'entrée pour un coût très faible, et la réduction de la taille de la carte des fonctionnalités est également un bel effet secondaire, ce qui rend le réseau plus rapide.

Pour que cela fonctionne bien, vous devez toujours extraire des fonctionnalités pour commencer, ce que le regroupement maximal ne fait pas, de sorte que la couche convolutionnelle est nécessaire. Vous devriez constater que vous pouvez sous-échantillonner l'image d'origine (à 14 x 14) au lieu d'utiliser la première couche de regroupement maximal, et vous obtiendrez toujours une précision assez raisonnable. Combien de mise en commun à faire et où ajouter ces couches est encore un autre problème d'hyper-paramètre lors de la construction d'un réseau neuronal profond.

Neil Slater
la source
6

Nous ne pouvons pas passer directement de la couche d'entrée au regroupement maximal en raison de l' convolution layerintervalle. La raison de la convolution est d'extraire des entités. Le regroupement maximal sous-échantillonne les fonctionnalités qui ont été extraites. Si vous pensez qu'il y a des fonctionnalités qui manquent en raison du saut direct d'une grande matrice à une couche de regroupement maximale, vous pouvez ajouter plus de couches de convolution entre les deux jusqu'à ce que vous sembliez satisfait d'une taille, puis effectuez un regroupement maximal pour qu'elle soit n'est pas exagéré.

Le regroupement maximal, qui est une forme de sous-échantillonnage, est utilisé pour identifier les caractéristiques les plus importantes. Mais la mise en commun moyenne et diverses autres techniques peuvent également être utilisées. Je travaille normalement avec du texte et non avec des images. Pour moi, les valeurs ne sont normalement pas toutes identiques. Mais s'ils le sont aussi, cela ne ferait pas beaucoup de différence car il choisit simplement la plus grande valeur.

Une très bonne compréhension de wiki -The intuition is that once a feature has been found, its exact location isn't as important as its rough location relative to other features. The function of the pooling layer is to progressively reduce the spatial size of the representation to reduce the amount of parameters and computation in the network, and hence to also control overfitting. It is common to periodically insert a pooling layer in-between successive conv layers in a CNN architecture. The pooling operation provides a form of translation invariance.

Hima Varsha
la source
Pouvez-vous expliquer la dernière phrase The pooling operation provides a form of translation invariance?
HelloWorld
@StudentT Cela signifie que la sortie du max-pool sera à peu près la même si la fonction est détectée n'importe où dans l'image. Déplacez la chose dans l'image qui active la fonctionnalité et une entrée différente dans le max-pool sera maximale mais la sortie du max-pool devrait être la même.
mrmcgreg
@mrmcgreg Je crois que cela est vrai pour la mise en commun globale, pas la mise en commun maximale. Le regroupement maximal fournit une sorte d'invariance aux traductions locales dans la région du pool (par exemple 2x2). Cela permet une certaine gigue dans les fonctionnalités.
geometrikal
0

La convolution consiste essentiellement à filtrer l'image avec un filtre de pixels plus petit pour réduire la taille de l'image sans perdre la relation entre les pixels (paramètres du réseau), le regroupement réduit également la taille spatiale en extrayant Max, Avg ou Sum des pixels à la taille du filtre, cependant, il peut manquer un paramètre important dans le processus que la convolution ré-atteindre en ne réduisant pas la taille de manière significative.

parmar de siddharth
la source