Fonctionnalité extraite par la mise en commun maximale par rapport à la mise en commun moyenne

8

Dans le deep learning, et son application à la vision par ordinateur, est-il possible de dire quel type de fonctionnalités ces deux types d'extraits de pooling? par exemple, est-il possible de dire que le pool max extrait les bords? Pouvons-nous dire quelque chose de similaire concernant la mise en commun moyenne?

PS n'hésitez pas à recommander si stackoverflow est plus approprié.

Éditer
la source

Réponses:

11

Je ne dirais pas non plus les fonctionnalités d'extrait. Au lieu de cela, ce sont les couches convolutives qui construisent / extraient les entités, et les couches de mise en commun les compressent à une fidélité inférieure. La différence réside dans la manière dont la compression se produit et quel type de fidélité est conservé:

  • Une couche max-pool compressée en prenant l'activation maximale dans un bloc. Si vous avez un bloc avec une activation généralement faible, mais un peu d'activation importante, vous perdrez les informations sur les activations faibles. Je pense que cela signifie "ce type de fonctionnalité a été détecté dans cette zone générale".
  • Une couche de pool moyen se comprime en prenant l'activation moyenne dans un bloc. Si de grandes activations sont compensées par des activations négatives, les activations compressées globales ne ressembleront à aucune activation du tout. En revanche, vous conservez certaines informations sur les activations faibles dans l'exemple précédent.
Matthew Drury
la source
4

mon avis est que la mise en commun max & mean n'a rien à voir avec le type de fonctionnalités, mais avec l'invariance de traduction.

Imaginez-vous apprendre à reconnaître un «A» contre un «B» (pas de variation dans les pixels de A et de B). D'abord dans une position fixe dans l'image. Cela peut se faire par une régression logistique (1 neurone): les poids finissent par être un modèle de la différence A - B.

Maintenant, que se passe-t-il si vous vous entraînez à reconnaître à différents endroits de l'image. Vous ne pouvez pas le faire avec une régression logistique, en balayant l'image (c'est-à-dire en rapprochant une couche convolutionnelle avec un filtre) et en étiquetant tous les balayages de l'image A ou B selon le cas, car l'apprentissage des différentes positions interfère - vous essayez en fait d'apprendre la moyenne d'AB comme A / B sont passés à travers votre filtre - mais ce n'est qu'un flou.

avec un regroupement maximal, l'apprentissage n'est effectué que sur le lieu de l'activation maximale (qui, nous l'espérons, est centré sur la lettre). Je ne suis pas si sûr de la mise en commun moyenne - j'imagine que plus d' apprentissage (c'est-à-dire l'ajustement du poids) se fait à l'emplacement d'activation maximum et cela évite le flou) ...

Je vous encourage à simplement implémenter un réseau aussi simple avec 2 classes et 1 filtre pour la couche convolutionnelle, puis le pool max / mean et 1 nœud de sortie et inspecter les poids / performances.

seanv507
la source