Quelle est la définition d'une «carte de caractéristiques» (ou «carte d'activation») dans un réseau de neurones convolutionnels?

33

 Contexte d'introduction

Au sein d'un réseau neuronal convolutionnel, nous avons généralement une structure / un flux général qui ressemble à ceci:

  1. image d'entrée (c'est-à-dire un vecteur 2D x)

(La 1ère couche convolutionnelle (Conv1) commence ici ...)

  1. convoluez un ensemble de filtres ( w1) le long de l'image 2D (c.-à-d. faites les z1 = w1*x + b1multiplications du produit scalaire), où z1est 3D et b1est biais.
  2. appliquer une fonction d'activation (par exemple ReLu) pour rendre z1non linéaire (par exemple a1 = ReLu(z1)), où a1est 3D.

(La 2e couche convolutionnelle (Conv2) commence ici ...)

  1. convoluer un ensemble de filtres le long des activations nouvellement calculées (c.-à-d. faire les z2 = w2*a1 + b2multiplications des produits scalaires), où z2est 3D et et b2est biais.
  2. appliquer une fonction d'activation (par exemple ReLu) pour rendre z2non linéaire (par exemple a2 = ReLu(z2)), où a2est 3D.

 La question

La définition du terme «carte des caractéristiques» semble varier d'une littérature à l'autre. Concrètement:

  • Pour la 1ère couche convolutionnelle, la "carte des entités" correspond-elle au vecteur d'entrée x, ou au produit scalaire de sortie z1, ou aux activations de sortie a1, ou au "processus" de conversion xen a1, ou autre chose?
  • De même, pour la 2e couche convolutionnelle, la «carte des caractéristiques» correspond-elle aux activations d'entrée a1, ou au produit scalaire de sortie z2, ou à l'activation de sortie a2, ou au «processus» de conversion a1en a2, ou autre chose?

De plus, est-il vrai que le terme «carte d'entités» est exactement le même que «carte d'activation»? (ou signifient-ils réellement deux choses différentes?)

 Références supplémentaires:

Extraits de réseaux neuronaux et d'apprentissage en profondeur - Chapitre 6 :

* La nomenclature est utilisée librement ici. En particulier, j'utilise "carte des fonctionnalités" pour signifier non pas la fonction calculée par la couche convolutionnelle, mais plutôt l'activation des neurones cachés sortis de la couche. Ce type d'abus léger de la nomenclature est assez courant dans la littérature de recherche.


Extraits de Visualizing and Understanding Convolutional Networks par Matt Zeiler :

Dans cet article, nous introduisons une technique de visualisation qui révèle les stimuli d'entrée qui excitent les cartes de caractéristiques individuelles à n'importe quelle couche du modèle. [...] Notre approche, en revanche, fournit une vue non paramétrique de l'invariance, montrant quels modèles de l'ensemble d'apprentissage activent la carte des caractéristiques. [...] une opération de contraste local qui normalise les réponses sur les cartes d'entités. [...] Pour examiner une activation de convnet donnée, nous mettons à zéro toutes les autres activations de la couche et passons les cartes d'entités en entrée à la couche deconvnet attachée. [...] Le convnet utilise des non-linéarités relu, qui rectifient les cartes d'entités assurant ainsi que les cartes d'entités sont toujours positives. [...] Le convnet utilise des filtres appris pour convoluer les cartes d'entités de la couche précédente. [...] Fig. 6, ces visualisations sont des représentations précises du motif d'entrée qui stimule la carte d'entités donnée dans le modèle [...] lorsque les parties de l'image d'entrée d'origine correspondant au motif sont occluses, nous constatons une baisse d'activité distincte dans la carte d'entités. [...]

Remarques: introduit également les termes "carte d'entités" et "carte d'entités rectifiées" sur la figure 1.


Snippets de Stanford CS231n chapitre sur CNN :

[...] Un piège dangereux qui peut être facilement remarqué avec cette visualisation est que certaines cartes d'activation peuvent être toutes nulles pour de nombreuses entrées différentes, ce qui peut indiquer des filtres morts, et peut être un symptôme de taux d'apprentissage élevés [...] Activations d'apparence typique sur la première couche CONV (à gauche) et la cinquième couche CONV (à droite) d'un AlexNet formé regardant une photo d'un chat. Chaque boîte affiche une carte d'activation correspondant à un filtre. Notez que les activations sont rares (la plupart des valeurs sont nulles, dans cette visualisation représentée en noir) et principalement locales.


Extraits de A-Beginner's-Guide-To-Understanding-Convolutional-Neural-Networks

[...] Chaque emplacement unique sur le volume d'entrée produit un nombre. Après avoir fait glisser le filtre sur tous les emplacements, vous découvrirez que ce qui vous reste est un tableau de nombres 28 x 28 x 1, que nous appelons une carte d'activation ou une carte d'entités.

Atlas7
la source

Réponses:

27

Une carte d'entités, ou carte d'activation, correspond aux activations de sortie pour un filtre donné (a1 dans votre cas) et la définition est la même quelle que soit la couche sur laquelle vous vous trouvez.

La carte des fonctionnalités et la carte d' activation signifient exactement la même chose. On l'appelle une carte d'activation car c'est une cartographie qui correspond à l'activation de différentes parties de l'image, et aussi une carte d'entités car c'est aussi une cartographie de l'endroit où un certain type d'entité se trouve dans l'image. Une activation élevée signifie qu'une certaine fonctionnalité a été trouvée.

Une "carte d'entités rectifiée" n'est qu'une carte d'entités créée à l'aide de Relu. Vous pourriez peut-être voir le terme "carte des fonctionnalités" utilisé pour le résultat des produits scalaires (z1) car il s'agit également d'une carte de l'emplacement de certaines fonctionnalités dans l'image, mais ce n'est pas courant à voir.

Frobot
la source
1
Merci pour la contribution. Votre réponse est conforme à ma compréhension (c'est-à-dire que les cartes d'activation sont les a1, a2etc.). Dans Conv2, je suppose que j'appellerais a1la carte d'activation d'entrée et a2la carte d'activation de sortie. Dans Conv1, je xl'image d'entrée et a1la carte d'activation de sortie.
Atlas7
4

avant de parler de la signification de la carte d'entités, définissons simplement le terme de vecteur d'entités.

le vecteur d'entité est une représentation vectorielle des objets. Par exemple, une voiture peut être représentée par [nombre de roues, porte. windows, age ..etc].

la carte d'entités est une fonction qui prend des vecteurs d'entités dans un espace et les transforme en vecteurs d'entités dans un autre. Par exemple, étant donné un vecteur d'entité [volume, poids, hauteur, largeur], il peut renvoyer [1, volume / poids, hauteur * largeur] ou [hauteur * largeur] ou même simplement [volume]

HISI
la source