Was ist ein Aktivitätsvektor in neuronalen Netzen?


9

Ich las Hintons neues Papier "Dynamisches Routing zwischen Kapseln" und verstand den Begriff "Aktivitätsvektor" in der Zusammenfassung nicht.

Eine Kapsel ist eine Gruppe von Neuronen, deren Aktivitätsvektor die Instanziierungsparameter eines bestimmten Entitätstyps wie eines Objekts oder eines Objektteils darstellt. Wir verwenden die Länge des Aktivitätsvektors, um die Wahrscheinlichkeit darzustellen, dass die Entität existiert, und ihre Ausrichtung, um die Instanziierungsparameter darzustellen. Aktive Kapseln auf einer Ebene machen über Transformationsmatrizen Vorhersagen über die Instanziierungsparameter von Kapseln höherer Ebene. Wenn mehrere Vorhersagen übereinstimmen, wird eine Kapsel höherer Ebene aktiv. Wir zeigen, dass ein diskriminierend trainiertes mehrschichtiges Kapselsystem auf MNIST eine Leistung auf dem neuesten Stand der Technik erzielt und bei der Erkennung stark überlappender Ziffern erheblich besser ist als ein Faltungsnetz. Um diese Ergebnisse zu erzielen, verwenden wir einen iterativen Routing-by-Agreement-Mechanismus:

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

Ich dachte, ein Vektor ist wie ein Array von Daten, die Sie durch das Netzwerk laufen lassen.

Ich habe angefangen, Andrew Ngs Deep-Learning-Kurs durchzuarbeiten, aber es ist alles neu und Begriffe gehen mir über den Kopf.

Antworten:


8

In einem traditionellen neuronalen Netzwerk sind die Netzwerkscheitelpunkte Neuronen und die Ausgabe eines einzelnen Neurons ist ein einzelner Wert (ein " Skalar "). Diese Nummer wird als Aktivierung bezeichnet . Eine Schicht von Neuronen im Netzwerk gibt einen Aktivierungsvektor aus. Wir sollten dies nicht mit den Aktivitätsvektoren in einem Kapselnetzwerk verwechseln.

Kapselnetzwerke unterscheiden sich, da die Netzwerkscheitelpunkte eher Kapseln als Neuronen sind. Sie sind höherdimensional: Die Ausgabe einer Kapsel ist kein Skalar, sondern ein Vektor, der eine Gruppe von Parametern darstellt, die sich auf die Eingabe beziehen. Daher der Name Aktivierungsvektor .

Motivation

In einem neuronalen Netzwerk gibt es keine inhärente Struktur zwischen den skalaren Ausgängen der Neuronen. Dies müssen die folgenden Schichten lernen. In Kapselnetzwerken repräsentiert die Ausgabe einer Kapsel alle Parameter, die sich darauf beziehen, zusammen in einem Vektor, einschließlich einer Vorhersage für die Aktivierung von Kapseln mit tieferen Schichten. Dies fügt eine nützliche lokale Struktur hinzu.

Betrachten Sie beispielsweise die Gesichtserkennung. Wenn Sie eine Kapsel haben, die weiß, wie man Augen erkennt, könnte sie einen Aktivitätsvektor ausgeben, der z. B. "da ich eine Augenposition (x, y) mit einer Wahrscheinlichkeit von p = 0,97 erkannt habe, sage ich voraus, dass die Parameter für das gesamte Gesicht (f1, ... fn) ".

Wie im Artikel "Dynamisches Routing zwischen Kapseln" erläutert , wird diese Information dann so verwendet, dass die Kapseln in früheren Schichten (Teile: Auge, Mund, Nase) die Aktivierung tieferer Schichten (Gesicht) vorhersagen. Beispielsweise wird ein Gesichtserkenner nur dann stark aktiviert, wenn zwischen dem Augen-, Nasen- und Munderkenner (den Teilen) und dem Gesichtserkenner (dem Ganzen) Übereinstimmung darüber besteht, wo sich das Gesicht befindet (der (f1, ... fn) ) Parameter).

Historische Inspiration

Ältere Computer-Vision-Algorithmen wie SIFT funktionieren auf ähnliche Weise, wenn die Erkennung auf einer Übereinstimmung zwischen der Konfiguration mehrdimensionaler Merkmale (Schlüsselpunkte) und der Referenzkonfiguration basiert.


1

Ich habe es so verstanden wie "den Vektor der Aktivierung der Neuronen in der Kapsel". Die Aktivierung für ein bestimmtes Neuron ist die gewichtete Summe seiner Eingaben, die durch die Aktivierungsfunktion (Sigmoid, Relu usw.) geleitet werden.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.