Comprendere le reti di capsule di Hinton. Parte IV: Architettura CapsNet

Supponiamo che l’etichetta corretta sia 1, questo significa che il primo DigitCap è responsabile della codifica della presenza della cifra 1. Per questa funzione di perdita di DigitCap T_c sarà uno e per tutti i restanti nove DigitCaps T_c sarà 0. Quando T_c è 1, viene calcolato il primo termine della funzione di perdita e il secondo diventa zero. Per il nostro esempio, per calcolare la perdita del primo DigitCap prendiamo il vettore di output di questo DigitCap e lo sottraiamo da m+, che è fissato a 0.9. Quindi manteniamo il valore risultante solo nel caso in cui sia maggiore di zero e lo quadriamo. In caso contrario, restituire 0. In altre parole, la perdita sarà zero se il DigitCap corretto prevede l’etichetta corretta con probabilità maggiore di 0,9 e sarà diverso da zero se la probabilità è inferiore a 0,9.

Valore della funzione di perdita per DigitCap corretto e errato. Si noti che il grafico rosso è “schiacciato” verticalmente rispetto a quello verde. Ciò è dovuto al moltiplicatore lambda dalla formula. Fonte: autore.

Per i DigitCaps che non corrispondono all’etichetta corretta, T_c sarà zero e quindi verrà valutato il secondo termine (corrispondente alla parte (1 — T_c)). In questo caso possiamo vedere che la perdita sarà zero se il DigitCap mismatching predice un’etichetta errata con probabilità inferiore a 0.1 e diversa da zero se predice un’etichetta errata con probabilità superiore a 0.1.

Infine, nella formula il coefficiente lambda è incluso per la stabilità numerica durante l’allenamento (il suo valore è fissato a 0,5). I due termini nella formula hanno quadrati perché questa funzione di perdita ha norma L2 e gli autori apparentemente considerano questa norma per funzionare meglio.

Parte II. Decoder.

Architettura decoder CapsNet. Fonte: carta originale.

Decoder prende un vettore a 16 dimensioni dal DigitCap corretto e impara a decodificarlo in un’immagine di una cifra (si noti che utilizza solo il vettore DigitCap corretto durante l’allenamento e ignora quelli errati). Decoder viene utilizzato come un regolarizzatore, prende l’uscita del DigitCap corretto come input e impara a ricreare un’immagine 28 per 28 pixel, con la funzione di perdita essendo distanza euclidea tra l’immagine ricostruita e l’immagine di ingresso. Decoder forze capsule per imparare le caratteristiche che sono utili per ricostruire l’immagine originale. Più l’immagine ricostruita è vicina all’immagine di input, meglio è. Esempi di immagini ricostruite possono essere visti nell’immagine qui sotto.

Riga superiore: immagini originali. Riga inferiore: immagini ricostruite. Fonte: carta originale.

Strato 4. Completamente collegato # 1

Ingresso: 16×10.
Uscita: 512.
Numero di parametri: 82432.

Ogni uscita del livello inferiore viene ponderata e diretta in ciascun neurone del livello completamente connesso come input. Ogni neurone ha anche un termine di bias. Per questo livello ci sono input 16×10 che sono tutti diretti a ciascuno dei 512 neuroni di questo livello. Pertanto, ci sono (16×10 + 1)x512 parametri addestrabili.

Per i seguenti due strati di calcolo è lo stesso: numero di parametri = (numero di ingressi + bias) x numero di neuroni nel livello. Questo è il motivo per cui non vi è alcuna spiegazione per i livelli 2 e 3 completamente collegati.

Strato 5. Completamente collegato # 2

Ingresso: 512.
Uscita: 1024.
Numero di parametri: 525312.

Strato 6. Completamente collegato # 3

Ingresso: 1024.
Output: 784 (che dopo aver rimodellato restituisce un’immagine decodificata 28×28).
Numero di parametri: 803600.

Numero totale di parametri nella rete: 8238608.

Conclusione

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.