Che cos'è un vettore di attività nelle reti neurali?


9

Stavo leggendo il nuovo articolo di Hinton, "Dynamic Routing Between Capsules" e non ho capito il termine "attività vettoriale" in astratto.

Una capsula è un gruppo di neuroni il cui vettore di attività rappresenta i parametri di istanza di un tipo specifico di entità come un oggetto o una parte di oggetto. Usiamo la lunghezza del vettore di attività per rappresentare la probabilità che l'entità esista e il suo orientamento per rappresentare i parametri di istanza. Le capsule attive a un livello fanno previsioni, tramite matrici di trasformazione, per i parametri di istanziazione delle capsule di livello superiore. Quando più previsioni concordano, diventa attiva una capsula di livello superiore. Dimostriamo che un sistema a capsule multistrato addestrato in modo discriminante raggiunge prestazioni all'avanguardia su MNIST ed è notevolmente migliore di una rete convoluzionale nel riconoscere cifre altamente sovrapposte. Per ottenere questi risultati utilizziamo un meccanismo iterativo di routing per accordo:

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

Pensavo che un vettore fosse come una matrice di dati che si sta eseguendo attraverso la rete.

Ho iniziato a lavorare attraverso il corso di apprendimento profondo di Andrew Ng, ma è tutto nuovo e i termini vanno oltre la mia testa.

Risposte:


8

In una rete neurale tradizionale, i vertici delle reti sono neuroni e l'output di un singolo neurone è un singolo valore (uno " scalare "). Questo numero è chiamato la sua attivazione . Uno strato di neuroni nella rete genera un vettore di attivazioni. Non dovremmo confonderlo con i vettori di attività in una rete di capsule.

Le reti di capsule sono diverse poiché i vertici della rete sono capsule anziché neuroni. Sono di dimensione superiore: l'output di una Capsule non è uno scalare ma un vettore che rappresenta un gruppo di parametri relativi all'input. Da qui il vettore di attivazione del nome .

Motivazione

In una rete neurale non esiste una struttura intrinseca tra le uscite scalari dei neuroni, questo è qualcosa che i seguenti strati devono imparare. In Capsule Networks l'output di una capsula rappresenta tutti i parametri correlati a quello insieme in un vettore, inclusa una previsione per l'attivazione di capsule di livello più profondo. Ciò aggiunge un'utile struttura locale.

Ad esempio, considera il riconoscimento facciale. Se hai una capsula che sa riconoscere gli occhi, potrebbe emettere un vettore di attività che rappresenta ad es. "Poiché ho riconosciuto una posizione dell'occhio (x, y) con probabilità p = 0.97 prevedo che i parametri per l'intero viso saranno (f1, ... fn) ".

Come spiegato nel documento Routing dinamico tra le capsule , si fa riferimento a queste informazioni, quindi vengono utilizzate nel modo in cui le capsule negli strati precedenti (le parti: occhio, bocca, naso) predicono l'attivazione di strati più profondi (viso). Ad esempio, un riconoscitore di volti verrà fortemente attivato solo quando vi è un accordo tra i riconoscitori di occhi, naso e bocca (le parti) e il riconoscitore di volti (l'intero) su dove si trova il volto (il (f1, ... fn ) parametri).

Ispirazione storica

Gli algoritmi di visione artificiale precedenti come SIFT funzionano in modo simile in cui il riconoscimento si basa sull'accordo tra la configurazione di caratteristiche multidimensionali (punti chiave) e la configurazione di riferimento.


1

Ho pensato che significasse qualcosa come "il vettore delle attivazioni dei neuroni nella capsula". L'attivazione per un dato neurone è la somma ponderata dei suoi input, passati attraverso la funzione di attivazione (sigmoid, relu, ecc.).

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.