Qu'est-ce qu'un vecteur d'activité dans les réseaux de neurones?

9

Je lisais le nouvel article de Hinton, "Dynamic Routing Between Capsules" et je ne comprenais pas le terme "vecteur d'activité" dans l'abstrait.

Une capsule est un groupe de neurones dont le vecteur d'activité représente les paramètres d'instanciation d'un type spécifique d'entité tel qu'un objet ou une partie d'objet. Nous utilisons la longueur du vecteur d'activité pour représenter la probabilité que l'entité existe et son orientation pour représenter les paramètres d'instanciation. Les capsules actives à un niveau font des prédictions, via des matrices de transformation, pour les paramètres d'instanciation des capsules de niveau supérieur. Lorsque plusieurs prédictions s'accordent, une capsule de niveau supérieur devient active. Nous montrons qu'un système de capsule multicouche formé de manière discriminante atteint des performances de pointe sur MNIST et est considérablement meilleur qu'un réseau convolutionnel pour reconnaître les chiffres se chevauchant fortement. Pour atteindre ces résultats, nous utilisons un mécanisme itératif de routage par accord:

https://arxiv.org/pdf/1710.09829.pdf

Je pensais qu'un vecteur était comme un tableau de données que vous exécutez sur le réseau.

J'ai commencé à suivre le cours d'apprentissage approfondi d'Andrew Ng, mais tout est nouveau et les termes me viennent à l'esprit.

tim_xyz
la source

Réponses:

8

Dans un réseau neuronal traditionnel, les sommets des réseaux sont des neurones et la sortie d'un seul neurone est une valeur unique (un " scalaire "). Ce numéro est appelé son activation . Une couche de neurones dans le réseau génère un vecteur d'activations. Il ne faut pas confondre cela avec les vecteurs d'activité d'un réseau de capsules.

Les réseaux de capsules sont différents car les sommets du réseau sont des capsules plutôt que des neurones. Il s'agit d'une dimension supérieure: la sortie d'une capsule n'est pas un scalaire mais un vecteur représentant un groupe de paramètres liés à l'entrée. D'où le nom du vecteur d' activation .

Motivation

Dans un réseau neuronal, il n'y a pas de structure inhérente entre les sorties scalaires des neurones, c'est quelque chose que les couches suivantes doivent apprendre. Dans les réseaux de capsules, la sortie d'une capsule représente tous les paramètres liés à cela ensemble dans un vecteur, y compris une prédiction pour l'activation des capsules de couche plus profonde. Cela ajoute une structure locale utile.

Par exemple, envisagez la reconnaissance faciale. Si vous avez une capsule qui sait reconnaître les yeux, elle pourrait produire un vecteur d'activité représentant par exemple "puisque j'ai reconnu une position des yeux (x, y) avec une probabilité p = 0,97, je prédis que les paramètres pour l'ensemble du visage seront (f1, ... fn) ".

Comme expliqué dans le document Dynamic Routing Between Capsules auquel vous faites référence, ces informations sont ensuite utilisées de la manière dont les capsules des couches antérieures (les parties: œil, bouche, nez) prédisent les activations des couches plus profondes (visage). Par exemple, un dispositif de reconnaissance faciale ne sera fortement activé que s'il existe un accord entre les dispositifs de reconnaissance des yeux, du nez et de la bouche (les parties) et le dispositif de reconnaissance faciale (l'ensemble) sur l'emplacement du visage (le (f1, ... fn ) paramètres).

Inspiration historique

Les algorithmes de vision par ordinateur plus anciens comme SIFT fonctionnent d'une manière similaire où la reconnaissance est basée sur un accord entre la configuration des caractéristiques multidimensionnelles (points clés) et la configuration de référence.

mjul
la source
1

Je l'ai pris pour signifier quelque chose comme "le vecteur d'activations des neurones dans la capsule". L'activation pour un neurone donné est la somme pondérée de ses entrées, passée par la fonction d'activation (sigmoïde, relu, etc.).

crime mental
la source