1. From CNN to Capsules
Speaker: Matteo Alberti
Community Machine Learning@ DeepLearningItalia
E-mail: m.alberti12@campus.unimib.it
2. Dal Percettrone alle architetture
multistrato (MLP)
𝑎𝑖 = 𝑓( 𝑖 𝑤𝑖 𝑥𝑖 + 𝑏𝑖) “Separatore non lineare del piano”
𝑓 𝑥 funzione di attivazione non lineare
senza 𝑓 𝑥 la nostra ANN si reduce ad un separatore lineare:
𝐿 𝑇 = 𝑊𝑇 𝐿 𝑇−1 = 𝑊𝑇 𝑊𝑇−1 𝐿 𝑇−2 = ⋯ 𝑊𝑇 𝑊𝑇−1. . . 𝑊1 𝐿0 = 𝑊𝐿0
Un singolo neurone non è capace di approssimare bene
alcune decision function non lineari
Possiamo però modellizzare strutture di neuroni connessi
fra loro. L’output di un layer diventa l’input di quello
sucessivo
3. Funzioni di attivazione
Esistono molte funzioni di attivazioni
Nelle reti neurali profonde è utile aver funzioni di
attivazioni “leggere”
Sigmoide: 𝑦 = 𝜎 𝑥 = 1/(1 + ⅇ−𝑥
)
è un caso particolare di una funzione logistica
Al crescere della profondità da problem con
l’aggiornamento dei pesi
Rectified Linear Unit (ReLu): 𝑦 = max(0, 𝑥)
Accellera la convergenza dell’aggioranmento dei
pesi
4. Reti Neurali Convoluzionali (CNN)
Nelle fully connected netwoks (MLP) ogni neurone è connesso ad ogni
neurone del layer precedente.
MLP non scala bene con immagini (memoria e computazione)
CNN connette solo una piccolo parte di neuroni e ne condivide i pesi
5. Layer convoluzionale
Un layer convoluzionale consiste in un insieme di filtri di apprendimento
Ogni filtro è piccolo lungo altezza e larghezza ma esteso nella prodonfità
Durante la forward propagation si trasla ciascun filtro lungo la larghezza e
l’altezza del volume di input.
6. Layer convoluzionale
Viene Prodotta un’activation map bidimensionale per quel filtro.
Man mano che si sposta il filtro lungo l’area dell’input, si effettua un
prodotto scalare fra i valori del filtro e quelli della porzione di input
L’accodamento di tutte queste activation map, per tutti i filtri, lungo la
dimensione della profondità forma il volume di output di un layer
convoluzionale
Qui sotto è riportato l’output di un layer convolutionale
7. Operatore di pooling
Pooling layer può essere applicato dopo un layer convoluzionale
Serve per ridurre progressivamente la dimensione spaziale e di
conseguenza il numero di parametric
Esistono differenti versione il Pooling, il principale è il max-pooling
8. Allenamento dei pesi
L’allenamento dei pesi in una rete CNN avviene in due fasi:
Forward Propagation
Le funzioni di attivazioni vengono attivate da sinistra a destra
Consiste in una somma peseta dei dati di input
I pesi non vengono modificati
BackPropagation:
L’obiettivo è di ottimizzare i pesi attraverso un aggiornamento
Riceve in input l’output prodotto dal forward pass e calcola per ogni layer
𝛿𝑖
𝑙
= (
𝑗=1
𝑙+1
𝜃𝑗𝑖
𝑙
𝛿𝑗
𝑙+1
) 𝑔′
(
𝑗=1
𝑙−1
𝜃𝑖𝑗
𝑙−1
ℎ𝑗
𝑙−1
+ 𝑏𝑖
𝑙−1
)
E le relative derivate parziali:
∆𝜃𝑖𝑗
𝑗
= ℎ𝑗
𝑙
𝛿𝑖
𝑙+1
∆𝑏𝑖
𝑙
= 𝛿𝑖
𝑙+1
9. Architetture di Reti Neurali Profonde
LeNet: consiste in una sequenza di 3 layer: 1990
3 conv layer ((3,3) con ReLu activation) seguito da Max-pooling (2,2)
2 Fully Connected Layer (sigmoide)
AlexNet: sequenza di 8 layer: 2012
Convolutional layer (96 filters, stride=4, ReLu)
4 x Max-pooling (2x2) + Layer Convolutivo (5x5)
3 X FC fino a quando il vettore di input ha la stessa dimensione del numero di classi
GoogLeNet: aumento sia della profondità che della larghezza 2014
Funzione di concatenamento dei layer (convoluzioni 1x1, 3x3, 5x5)
Inception module per la riduzione del numero di parametri
10. Reti Neurali Profonde Residuali
Rete estremamente profonda
Risoluzione parziale al problema del gradiente
Sfrutta il concetto di residual learning:
Sottopone l’input x alla sequenza di convoluzioni ottenendo
F(x) e di sommare al risultato lo stesso x, ottenendo:
H(x) = F(x) + x
Vengono concatenati più blocchi di questo
tipo che imparano non da una trasformazione
diretta ma da F(x), minimizzando l’errore
residuale.
11. L’utilizzo del Max-Pooling ed il problema
con le CNN
Max-pooling ci permette di ridurre la dimensionalità spaziale
Ci permette inoltre un’Invarianza a «leggere rototraslazioni»
Ma CNN tendono ad imparare mnemonicamente
Necessità di forte data augmentation
12. L’utilizzo del Max-Pooling ed il
problema con le CNN
Inoltre aumentando il grado di astrazione e complessità delle figure
andiamo a perdere la gerarchia delle parti perdendo le informazioni
spaziali delle features estratte
13. L’intuizione
Rendering Inverso: “Dalle informazioni visive, l’immagine viene
decostruita in base ad una rappresentazione gerarchica cercando farle
combaciare con le combinazioni di features già memorizzate”
La Freccia viene memorizzata come combinazione delle figure
geometriche interne e della loro relativo posizione spaziale
14. Architettura
Architettura shallow (2 strati nascosti)
Le innovazioni in questa struttura sono Le Capsule: Un gruppo di neuroni
Strato Convolutionale per estrarre features di basso livello
PrimaryCaps:
Ogni capsula rappresenta una features
Racchiundono informazioni realtivi all’immagine
15. Una struttura Capsulare
I neuroni artificiali producono un singolo scalare
Una capsula produce invece racchiude tutte le informazioni rilevanti in un
vettore dove:
La lunghezza del vettore codifica la probabilità del rilevamento di una
caratteristica
Lo stato della caratteristica (rotazione, traslazione) viene codificata con la
direzione del vettore stesso
Questa proprietà la definiremo ‘equivarianza’
16. Funzione di attivazione: " Squash"
𝑣𝑗 =
𝑠 𝑗
2
1+ 𝑠 𝑗
2
𝑠 𝑗
𝑠 𝑗
Andiamo ad agire unicamente sulla norma.
Vj viene compresso fra 0 ed 1
𝑠 𝑗
𝑠 𝑗
è il versore (conserva la direzione)
𝑠 𝑗
2
1+ 𝑠 𝑗
2 Ridimensiona il vettore di input in modo che abbia compresa fra
0 ed 1
17. Dynamic Routing – forward pass
1) Capsule a livello l ed il loro output 𝑢 𝑗 𝑖, r numero di iterazioni del routing
2) 𝑏𝑖𝑗 coefficiente temporaneo necessario per iterazione inizializzato a zero
4) 𝑐𝑖 è peso per capsule di «basso livello», utilizzo del softmax per ottenere uno scalare non
negativo con somma ad uno. Prima iterazione 𝑐𝑖𝑗 è uguale per tutte le capsule essendo
inizializzato da 𝑏𝑖𝑗
19. Dynamic Routing – forward pass
5) Per ogni capsula di «alto livello» calcoliamo una combinazione lineare dei dati di input
pesati con i coefficienti 𝑐𝑖𝑗 ossia andiamo a sommarli e ridimensionarli
6) Applichiamo la funzione di squash per «normalizzare» ad 1 e preservar l’orientamento del
vettore
21. EM Routing – Expected Maximization
Finire le figure
22. Allenamento delle CapsNet
Una volta fissato il passo forward
Alleno i pesi 𝑤𝑖𝑗 con la back-propagation in modo da massimizzare la norma
della capsula relativa alla classe di target ( 𝐿 𝜇
𝑖
)
Un’altra versione della rete utilizza un’MLP (come Autoencoding) al fine di
ricostruire l’immagine di input 𝐿 𝑝
𝑖
Loss Funcion 𝐿 𝑖
= 𝐿 𝜇
𝑖
+ p 𝐿 𝑝
𝑖
23. Accuratezze su MNIST
Parametri CNN : 35.4 M (Deep)
Parametri Capsnet (8.2 M)
Robustezza alle Trasformazioni Affini:
CNN 66%
CapsuleNet 79%
24. Pro
Necessitano una quantità di dati inferiore dei corrispettivi modelli
La struttura Capsulare permette una gerarchia delle parti
Risulta robusta alle trasformazioni affini
Alta capacità discriminatoria su oggetti sovrapposti
25. Contro
Ancora in fase di studio, non perfermanti su large datasets
Il processo di routing-by-agreement rallenta di molto la fase di training
aumentando in maniera esponenziale il numero di parametri