Introduzione a Deep Learning - unibo.itfioresi/2018/dl/dl-conf.pdf · 2018-02-26 · Introduzione a...

Post on 11-Jul-2020

8 views 0 download

Transcript of Introduzione a Deep Learning - unibo.itfioresi/2018/dl/dl-conf.pdf · 2018-02-26 · Introduzione a...

Introduzione a Deep Learning

Rita Fioresi1

1 Dipartimento di Matematica, Universita’ di Bolognarita.fioresi@unibo.it

February 26, 2018

IndiceIntroduzione Storica

PerceptronReti neurali Artificiali (ANN)Applicazioni

ImagenetLa Sfida ImagenetLa Sfida Imagenet: i vincitori

Il meccanismo dell’algoritmo della visioneLe immaginiLa funzione costo (loss)SGD La discesa al gradiente

L’Algoritmo di Deep LearningIl Modello biologicoFunzioni di attivazioneL’algoritmo di una ANNLe ConvoluzioniDettagli Tecnici

Problemi matematiciGraph Neural Networks GNN

La prima rete neurale: perceptron

Perceptron (1957 Rosenblatt): un algoritmo per la classificazionebinaria.

La prima rete neurale: perceptron

Perceptron (1957 Rosenblatt): un algoritmo per la classificazionebinaria.

f (x) =

{

1 if w · x + b > 0

0 otherwise

Dati (input e labels):

La prima rete neurale: perceptron

Perceptron (1957 Rosenblatt): un algoritmo per la classificazionebinaria.

f (x) =

{

1 if w · x + b > 0

0 otherwise

Dati (input e labels):

D = {(x1, d1), . . . , (xs , ds)}

La prima rete neurale: perceptron

Perceptron (1957 Rosenblatt): un algoritmo per la classificazionebinaria.

f (x) =

{

1 if w · x + b > 0

0 otherwise

Dati (input e labels):

D = {(x1, d1), . . . , (xs , ds)}

Training set con s esempi.

La prima rete neurale: perceptron

Perceptron (1957 Rosenblatt): un algoritmo per la classificazionebinaria.

f (x) =

{

1 if w · x + b > 0

0 otherwise

Dati (input e labels):

D = {(x1, d1), . . . , (xs , ds)}

Training set con s esempi.xj ,i e’ il valore della i -esima caratteristica del j-esimo input.

La prima rete neurale: perceptron

Perceptron (1957 Rosenblatt): un algoritmo per la classificazionebinaria.

f (x) =

{

1 if w · x + b > 0

0 otherwise

Dati (input e labels):

D = {(x1, d1), . . . , (xs , ds)}

Training set con s esempi.xj ,i e’ il valore della i -esima caratteristica del j-esimo input.w e’ la matrice dei pesi.

La prima rete neurale: perceptron

Perceptron (1957 Rosenblatt): un algoritmo per la classificazionebinaria.

f (x) =

{

1 if w · x + b > 0

0 otherwise

Dati (input e labels):

D = {(x1, d1), . . . , (xs , ds)}

Training set con s esempi.xj ,i e’ il valore della i -esima caratteristica del j-esimo input.w e’ la matrice dei pesi.

Mark I Perceptron

Mark I PerceptronLa macchina Perceptron al Laboratorio navale, Cornel 1957.

Mark I PerceptronLa macchina Perceptron al Laboratorio navale, Cornel 1957.

Funzionamento del Perceptron

Funzionamento del Perceptron

◮ Inizializziamo i pesi w (random)

Funzionamento del Perceptron

◮ Inizializziamo i pesi w (random)

◮ Per ogni esempio nel Dataset calcoliamo

Funzionamento del Perceptron

◮ Inizializziamo i pesi w (random)

◮ Per ogni esempio nel Dataset calcoliamo

yj(t) = w0(t)xj ,0 + w1(t)xj ,1 + w2(t)xj ,2 + · · ·+ wn(t)xj ,n

Funzionamento del Perceptron

◮ Inizializziamo i pesi w (random)

◮ Per ogni esempio nel Dataset calcoliamo

yj(t) = w0(t)xj ,0 + w1(t)xj ,1 + w2(t)xj ,2 + · · ·+ wn(t)xj ,n

◮ Aggiorniamo i pesi

Funzionamento del Perceptron

◮ Inizializziamo i pesi w (random)

◮ Per ogni esempio nel Dataset calcoliamo

yj(t) = w0(t)xj ,0 + w1(t)xj ,1 + w2(t)xj ,2 + · · ·+ wn(t)xj ,n

◮ Aggiorniamo i pesi

wi(t + 1) = wi (t) + (dj − yj(t))xj ,i , 0 ≤ i ≤ n.

Funzionamento del Perceptron

◮ Inizializziamo i pesi w (random)

◮ Per ogni esempio nel Dataset calcoliamo

yj(t) = w0(t)xj ,0 + w1(t)xj ,1 + w2(t)xj ,2 + · · ·+ wn(t)xj ,n

◮ Aggiorniamo i pesi

wi(t + 1) = wi (t) + (dj − yj(t))xj ,i , 0 ≤ i ≤ n.

◮ Ripetiamo finche’ l’errore:

Funzionamento del Perceptron

◮ Inizializziamo i pesi w (random)

◮ Per ogni esempio nel Dataset calcoliamo

yj(t) = w0(t)xj ,0 + w1(t)xj ,1 + w2(t)xj ,2 + · · ·+ wn(t)xj ,n

◮ Aggiorniamo i pesi

wi(t + 1) = wi (t) + (dj − yj(t))xj ,i , 0 ≤ i ≤ n.

◮ Ripetiamo finche’ l’errore:

1

s

s∑

j=1

|dj − yj(t)| < ǫ

Classificazione lineare

Classificazione lineare

Perceptron funziona soltanto se il dataset puo’ essere separato inmodo lineare.

Classificazione lineare

Perceptron funziona soltanto se il dataset puo’ essere separato inmodo lineare.

Reti Neurali Artificiali (ANN)

Reti Neurali Artificiali (ANN)Esempio di ANN:

Reti Neurali Artificiali (ANN)Esempio di ANN:

Apprendimento della ANN

Apprendimento della ANNTipi di apprendimento:

Apprendimento della ANNTipi di apprendimento:

◮ Supervisionato (supervised): i pesi vengono appresiattraverso backpropagation e analisi del dataset (perceptron).

Apprendimento della ANNTipi di apprendimento:

◮ Supervisionato (supervised): i pesi vengono appresiattraverso backpropagation e analisi del dataset (perceptron).

◮ Semisupervisionato (semisupervised, reinforced): il dato nonviene fornito, ma e’ ottenuto dall’interazione della rete conl’esterno (es. telecamera).

Apprendimento della ANNTipi di apprendimento:

◮ Supervisionato (supervised): i pesi vengono appresiattraverso backpropagation e analisi del dataset (perceptron).

◮ Semisupervisionato (semisupervised, reinforced): il dato nonviene fornito, ma e’ ottenuto dall’interazione della rete conl’esterno (es. telecamera).

◮ Non supervisionato (unsupervised).

Apprendimento della ANNTipi di apprendimento:

◮ Supervisionato (supervised): i pesi vengono appresiattraverso backpropagation e analisi del dataset (perceptron).

◮ Semisupervisionato (semisupervised, reinforced): il dato nonviene fornito, ma e’ ottenuto dall’interazione della rete conl’esterno (es. telecamera).

◮ Non supervisionato (unsupervised).

I pesi vengono appresi minimizzando la funzione costo (loss)

Apprendimento della ANNTipi di apprendimento:

◮ Supervisionato (supervised): i pesi vengono appresiattraverso backpropagation e analisi del dataset (perceptron).

◮ Semisupervisionato (semisupervised, reinforced): il dato nonviene fornito, ma e’ ottenuto dall’interazione della rete conl’esterno (es. telecamera).

◮ Non supervisionato (unsupervised).

I pesi vengono appresi minimizzando la funzione costo (loss)

Applicazioni principali delle ANN

Applicazioni principali delle ANN◮ Apprendimento Supervisionato: riconoscimento di

immagini/testi/suoni (usi civili, militari, medici e industriali).

Applicazioni principali delle ANN◮ Apprendimento Supervisionato: riconoscimento di

immagini/testi/suoni (usi civili, militari, medici e industriali).◮ Apprendimento Semisupervisionato: macchine uso

domestico, labelling di immagini (GAN).

Applicazioni principali delle ANN◮ Apprendimento Supervisionato: riconoscimento di

immagini/testi/suoni (usi civili, militari, medici e industriali).◮ Apprendimento Semisupervisionato: macchine uso

domestico, labelling di immagini (GAN).◮ Non supervisionato: macchine a guida autonoma, etc.

Applicazioni principali delle ANN◮ Apprendimento Supervisionato: riconoscimento di

immagini/testi/suoni (usi civili, militari, medici e industriali).◮ Apprendimento Semisupervisionato: macchine uso

domestico, labelling di immagini (GAN).◮ Non supervisionato: macchine a guida autonoma, etc.

La Sfida Imagenet ILSVRC:

ImageNet Large Scale Visual Recognition Challenge

La Sfida Imagenet ILSVRC:

ImageNet Large Scale Visual Recognition Challenge

◮ 2010 20000 immagini, 20 categorie: 25% errore.

La Sfida Imagenet ILSVRC:

ImageNet Large Scale Visual Recognition Challenge

◮ 2010 20000 immagini, 20 categorie: 25% errore.

◮ 2011 1 milione di immagini, 1000 categorie: 16% errore.

La Sfida Imagenet ILSVRC:

ImageNet Large Scale Visual Recognition Challenge

◮ 2010 20000 immagini, 20 categorie: 25% errore.

◮ 2011 1 milione di immagini, 1000 categorie: 16% errore.

◮ 2015 1 milione di immagini, 1000 categorie: 4% errore.

La Sfida Imagenet ILSVRC:

ImageNet Large Scale Visual Recognition Challenge

◮ 2010 20000 immagini, 20 categorie: 25% errore.

◮ 2011 1 milione di immagini, 1000 categorie: 16% errore.

◮ 2015 1 milione di immagini, 1000 categorie: 4% errore.

Nel 2017 la sfida e’ stata dichiarata vinta.

La Sfida Imagenet ILSVRC:

ImageNet Large Scale Visual Recognition Challenge

◮ 2010 20000 immagini, 20 categorie: 25% errore.

◮ 2011 1 milione di immagini, 1000 categorie: 16% errore.

◮ 2015 1 milione di immagini, 1000 categorie: 4% errore.

Nel 2017 la sfida e’ stata dichiarata vinta.

La Sfida Imagenet: i vincitori

La Sfida Imagenet: i vincitori

La Sfida Imagenet: i vincitori

◮ 2012 Alexnet: Errore 15% Alex Krizhevsky, Ilya Sutskever,and Geoffrey Hinton (la prima CNN)

La Sfida Imagenet: i vincitori

◮ 2012 Alexnet: Errore 15% Alex Krizhevsky, Ilya Sutskever,and Geoffrey Hinton (la prima CNN)

◮ 2013 ZF Net: Errore 11% Matthew Zeiler, Rob Fergus, NYU.

La Sfida Imagenet: i vincitori

◮ 2012 Alexnet: Errore 15% Alex Krizhevsky, Ilya Sutskever,and Geoffrey Hinton (la prima CNN)

◮ 2013 ZF Net: Errore 11% Matthew Zeiler, Rob Fergus, NYU.

◮ 2014 VGG Net: Errore 7.3% Karen Simonyan, AndrewZisserman, University of Oxford

La Sfida Imagenet: i vincitori

◮ 2012 Alexnet: Errore 15% Alex Krizhevsky, Ilya Sutskever,and Geoffrey Hinton (la prima CNN)

◮ 2013 ZF Net: Errore 11% Matthew Zeiler, Rob Fergus, NYU.

◮ 2014 VGG Net: Errore 7.3% Karen Simonyan, AndrewZisserman, University of Oxford

◮ 2014 GoogLeNet: Errore 6.7%

La Sfida Imagenet: i vincitori

◮ 2012 Alexnet: Errore 15% Alex Krizhevsky, Ilya Sutskever,and Geoffrey Hinton (la prima CNN)

◮ 2013 ZF Net: Errore 11% Matthew Zeiler, Rob Fergus, NYU.

◮ 2014 VGG Net: Errore 7.3% Karen Simonyan, AndrewZisserman, University of Oxford

◮ 2014 GoogLeNet: Errore 6.7%

◮ 2015 Microsoft ResNet: Errore 3.6%

La Sfida Imagenet: i vincitori

◮ 2012 Alexnet: Errore 15% Alex Krizhevsky, Ilya Sutskever,and Geoffrey Hinton (la prima CNN)

◮ 2013 ZF Net: Errore 11% Matthew Zeiler, Rob Fergus, NYU.

◮ 2014 VGG Net: Errore 7.3% Karen Simonyan, AndrewZisserman, University of Oxford

◮ 2014 GoogLeNet: Errore 6.7%

◮ 2015 Microsoft ResNet: Errore 3.6%

Cosa vede il computer?

Cosa vede il computer?

Immagine= insieme di pixels= insieme di vettore tridimensionali

Cosa vede il computer?

Immagine= insieme di pixels= insieme di vettore tridimensionalilarghezza × altezza × 33: canali RGB (Red Green Blue)Ogni coordinata e’ un numero tra 0 e 255 (intensita’ luminosa).

Il classificatore lineare

Il classificatore lineareIl problema: 50000 immagini 32× 32× 3 suddivise in 10 categorie(database CIFAR).

Il classificatore lineareIl problema: 50000 immagini 32× 32× 3 suddivise in 10 categorie(database CIFAR).Score (il classificatore):

Il classificatore lineareIl problema: 50000 immagini 32× 32× 3 suddivise in 10 categorie(database CIFAR).Score (il classificatore):

f (x)r =10∑

r=1

Wrsxs + br

Il classificatore lineareIl problema: 50000 immagini 32× 32× 3 suddivise in 10 categorie(database CIFAR).Score (il classificatore):

f (x)r =10∑

r=1

Wrsxs + br

W matrice dei pesi (inizializzata random).

Il classificatore lineareIl problema: 50000 immagini 32× 32× 3 suddivise in 10 categorie(database CIFAR).Score (il classificatore):

f (x)r =10∑

r=1

Wrsxs + br

W matrice dei pesi (inizializzata random).x vettore immagine

Il classificatore lineareIl problema: 50000 immagini 32× 32× 3 suddivise in 10 categorie(database CIFAR).Score (il classificatore):

f (x)r =10∑

r=1

Wrsxs + br

W matrice dei pesi (inizializzata random).x vettore immaginef (x) da’ un punteggio per ogni classe. Viene assegnata la classecon il valore piu’ grande.

Il classificatore lineareIl problema: 50000 immagini 32× 32× 3 suddivise in 10 categorie(database CIFAR).Score (il classificatore):

f (x)r =10∑

r=1

Wrsxs + br

W matrice dei pesi (inizializzata random).x vettore immaginef (x) da’ un punteggio per ogni classe. Viene assegnata la classecon il valore piu’ grande.

Il classificatore lineareIl problema: 50000 immagini 32× 32× 3 suddivise in 10 categorie(database CIFAR).Score (il classificatore):

f (x)r =10∑

r=1

Wrsxs + br

W matrice dei pesi (inizializzata random).x vettore immaginef (x) da’ un punteggio per ogni classe. Viene assegnata la classecon il valore piu’ grande.

Cross Enthropy Loss: Softmax

Cross Enthropy Loss: Softmax

Li = −logefyi

j efj= fyi + log

j

efj , L =∑

i

Li

Cross Enthropy Loss: Softmax

Li = −logefyi

j efj= fyi + log

j

efj , L =∑

i

Li

yi : classe della i-esima immagine

Cross Enthropy Loss: Softmax

Li = −logefyi

j efj= fyi + log

j

efj , L =∑

i

Li

yi : classe della i-esima immagineLi esprime la probabilita’ condizionata che si verifichi l’evento“classe yi” data l’immagine xi .

Cross Enthropy Loss: Softmax

Li = −logefyi

j efj= fyi + log

j

efj , L =∑

i

Li

yi : classe della i-esima immagineLi esprime la probabilita’ condizionata che si verifichi l’evento“classe yi” data l’immagine xi .bias: bi si aggiungono all’immagine xi , influenzano lo score manon dipendono da xi .

Cross Enthropy Loss: Softmax

Li = −logefyi

j efj= fyi + log

j

efj , L =∑

i

Li

yi : classe della i-esima immagineLi esprime la probabilita’ condizionata che si verifichi l’evento“classe yi” data l’immagine xi .bias: bi si aggiungono all’immagine xi , influenzano lo score manon dipendono da xi .regolarizzazione: λ, si aggiunge un termine per “livellare” i pesi.

Cross Enthropy Loss: Softmax

Li = −logefyi

j efj= fyi + log

j

efj , L =∑

i

Li

yi : classe della i-esima immagineLi esprime la probabilita’ condizionata che si verifichi l’evento“classe yi” data l’immagine xi .bias: bi si aggiungono all’immagine xi , influenzano lo score manon dipendono da xi .regolarizzazione: λ, si aggiunge un termine per “livellare” i pesi.Un classificatore lineare: funziona solo se il database puo’ essereseparato in modo lineare.

Cross Enthropy Loss: Softmax

Li = −logefyi

j efj= fyi + log

j

efj , L =∑

i

Li

yi : classe della i-esima immagineLi esprime la probabilita’ condizionata che si verifichi l’evento“classe yi” data l’immagine xi .bias: bi si aggiungono all’immagine xi , influenzano lo score manon dipendono da xi .regolarizzazione: λ, si aggiunge un termine per “livellare” i pesi.Un classificatore lineare: funziona solo se il database puo’ essereseparato in modo lineare.

Il gradiente

Il gradiente

Il gradiente

Aggiornamento dei pesi:

Il gradiente

Aggiornamento dei pesi:

wij(t + 1) = wij(t)− α∇ Lstoc

Il gradiente

Aggiornamento dei pesi:

wij(t + 1) = wij(t)− α∇ Lstoc

Gradiente stocastico: ∇Lstoc =∑32

i=1∇Lrand(i)

Il gradiente

Aggiornamento dei pesi:

wij(t + 1) = wij(t)− α∇ Lstoc

Gradiente stocastico: ∇Lstoc =∑32

i=1∇Lrand(i)Gradiente vero: ∇L =

∑50000i=1 ∇Li

Il gradiente

Aggiornamento dei pesi:

wij(t + 1) = wij(t)− α∇ Lstoc

Gradiente stocastico: ∇Lstoc =∑32

i=1∇Lrand(i)Gradiente vero: ∇L =

∑50000i=1 ∇Li

Epoca: quando vengono esaminate (quasi) tutte le immagini(attraverso random sampling, senza rimbussolamento!).

Il gradiente

Aggiornamento dei pesi:

wij(t + 1) = wij(t)− α∇ Lstoc

Gradiente stocastico: ∇Lstoc =∑32

i=1∇Lrand(i)Gradiente vero: ∇L =

∑50000i=1 ∇Li

Epoca: quando vengono esaminate (quasi) tutte le immagini(attraverso random sampling, senza rimbussolamento!).

Il gradiente

Aggiornamento dei pesi:

wij(t + 1) = wij(t)− α∇ Lstoc

Gradiente stocastico: ∇Lstoc =∑32

i=1∇Lrand(i)Gradiente vero: ∇L =

∑50000i=1 ∇Li

Epoca: quando vengono esaminate (quasi) tutte le immagini(attraverso random sampling, senza rimbussolamento!).

Il neurone come classificatore lineare

Il neurone come classificatore lineareNeurone biologico

Il neurone come classificatore lineareNeurone biologico

Neurone artificiale

Il neurone come classificatore lineareNeurone biologico

Neurone artificiale

Funzioni di attivazione

Funzioni di attivazione◮ La sigmoide

Funzioni di attivazione◮ La sigmoide

◮ RELU (Rectifying Linear Unit)

Funzioni di attivazione◮ La sigmoide

◮ RELU (Rectifying Linear Unit)

Reti neurali (non convoluzionali)

Reti neurali (non convoluzionali)

Rete Neurale con 2 strati nascosti

Reti neurali (non convoluzionali)

Rete Neurale con 2 strati nascosti

f (x) = W3max(0,W2max(0,W1x))

Reti neurali (non convoluzionali)

Rete Neurale con 2 strati nascosti

f (x) = W3max(0,W2max(0,W1x))

Reti neurali convoluzionali

Reti neurali convoluzionali

Convoluzioni: estraggono le features da ciascuna immagine.

Reti neurali convoluzionali

Convoluzioni: estraggono le features da ciascuna immagine.Rappresentano una convoluzione discreta, ottenuta attraverso unfiltro (kernel).

Reti neurali convoluzionali

Convoluzioni: estraggono le features da ciascuna immagine.Rappresentano una convoluzione discreta, ottenuta attraverso unfiltro (kernel).

Programmazione delle CNN

Programmazione delle CNN

Strumenti principali: TensorFlow (Google), PyTorch (Facebook).

Programmazione delle CNN

Strumenti principali: TensorFlow (Google), PyTorch (Facebook).Computer: GPU (NVidia) non piu’ CPU!

Programmazione delle CNN

Strumenti principali: TensorFlow (Google), PyTorch (Facebook).Computer: GPU (NVidia) non piu’ CPU!Programmazione intrinsecamente parallela e ad oggetti:dimenticare “if else” e “loops”.

Programmazione delle CNN

Strumenti principali: TensorFlow (Google), PyTorch (Facebook).Computer: GPU (NVidia) non piu’ CPU!Programmazione intrinsecamente parallela e ad oggetti:dimenticare “if else” e “loops”.Ogni array caricato in memoria simultaneamente e tutti elementodisponibili contemporaneamente.

Programmazione delle CNN

Strumenti principali: TensorFlow (Google), PyTorch (Facebook).Computer: GPU (NVidia) non piu’ CPU!Programmazione intrinsecamente parallela e ad oggetti:dimenticare “if else” e “loops”.Ogni array caricato in memoria simultaneamente e tutti elementodisponibili contemporaneamente.Libreria Numpy (attenzione, ogni oggetto e’ ridefinito, ognioperatore comune e’ overloaded!)

Programmazione delle CNN

Strumenti principali: TensorFlow (Google), PyTorch (Facebook).Computer: GPU (NVidia) non piu’ CPU!Programmazione intrinsecamente parallela e ad oggetti:dimenticare “if else” e “loops”.Ogni array caricato in memoria simultaneamente e tutti elementodisponibili contemporaneamente.Libreria Numpy (attenzione, ogni oggetto e’ ridefinito, ognioperatore comune e’ overloaded!)Programmazione ad altissimo livello. PyTorch permette diprogrammare le ANN e CNN in poche righe di codice.

Programmazione delle CNN

Strumenti principali: TensorFlow (Google), PyTorch (Facebook).Computer: GPU (NVidia) non piu’ CPU!Programmazione intrinsecamente parallela e ad oggetti:dimenticare “if else” e “loops”.Ogni array caricato in memoria simultaneamente e tutti elementodisponibili contemporaneamente.Libreria Numpy (attenzione, ogni oggetto e’ ridefinito, ognioperatore comune e’ overloaded!)Programmazione ad altissimo livello. PyTorch permette diprogrammare le ANN e CNN in poche righe di codice.

Graph Neural Networks GNN

L’utilizzo dei grafi nella modellazione di computer vision (Bronsteinet al, 2018).

Graph Neural Networks GNN

L’utilizzo dei grafi nella modellazione di computer vision (Bronsteinet al, 2018).

◮ Una immagine e’ una griglia, dunque un grafo ove ogni pixele’ un nodo.

Graph Neural Networks GNN

L’utilizzo dei grafi nella modellazione di computer vision (Bronsteinet al, 2018).

◮ Una immagine e’ una griglia, dunque un grafo ove ogni pixele’ un nodo.

◮ Una immagine tridimensionale e’ un grafo, dove si effettuauna triangolazione della varieta’ corrispondente.

◮ L’insieme delle relazioni tra un gruppo di persone (es.amicizia su facebook) e’ un grafo.

Graph Neural Networks GNN

L’utilizzo dei grafi nella modellazione di computer vision (Bronsteinet al, 2018).

◮ Una immagine e’ una griglia, dunque un grafo ove ogni pixele’ un nodo.

◮ Una immagine tridimensionale e’ un grafo, dove si effettuauna triangolazione della varieta’ corrispondente.

◮ L’insieme delle relazioni tra un gruppo di persone (es.amicizia su facebook) e’ un grafo.

Domande.

Graph Neural Networks GNN

L’utilizzo dei grafi nella modellazione di computer vision (Bronsteinet al, 2018).

◮ Una immagine e’ una griglia, dunque un grafo ove ogni pixele’ un nodo.

◮ Una immagine tridimensionale e’ un grafo, dove si effettuauna triangolazione della varieta’ corrispondente.

◮ L’insieme delle relazioni tra un gruppo di persone (es.amicizia su facebook) e’ un grafo.

Domande.

1. E’ possibile fare la convoluzione sui grafi?

Graph Neural Networks GNN

L’utilizzo dei grafi nella modellazione di computer vision (Bronsteinet al, 2018).

◮ Una immagine e’ una griglia, dunque un grafo ove ogni pixele’ un nodo.

◮ Una immagine tridimensionale e’ un grafo, dove si effettuauna triangolazione della varieta’ corrispondente.

◮ L’insieme delle relazioni tra un gruppo di persone (es.amicizia su facebook) e’ un grafo.

Domande.

1. E’ possibile fare la convoluzione sui grafi?

2. Come cambia la topologia di un grafo se modifico un lato? (oaggiungo un vertice?)

Graph Neural Networks GNN

L’utilizzo dei grafi nella modellazione di computer vision (Bronsteinet al, 2018).

◮ Una immagine e’ una griglia, dunque un grafo ove ogni pixele’ un nodo.

◮ Una immagine tridimensionale e’ un grafo, dove si effettuauna triangolazione della varieta’ corrispondente.

◮ L’insieme delle relazioni tra un gruppo di persone (es.amicizia su facebook) e’ un grafo.

Domande.

1. E’ possibile fare la convoluzione sui grafi?

2. Come cambia la topologia di un grafo se modifico un lato? (oaggiungo un vertice?)

Il gradiente stocastico

Il gradiente stocasticoGradiente stocastico:

Il gradiente stocasticoGradiente stocastico:Invece che minimizzare l’intera loss, siminimizza una piccola parte della loss che viene scelta casualmente(senza rimbussolamento!).

Il gradiente stocasticoGradiente stocastico:Invece che minimizzare l’intera loss, siminimizza una piccola parte della loss che viene scelta casualmente(senza rimbussolamento!).Il deep learning come sistema dinamico (Chaudari, Soatto 2018):

Il gradiente stocasticoGradiente stocastico:Invece che minimizzare l’intera loss, siminimizza una piccola parte della loss che viene scelta casualmente(senza rimbussolamento!).Il deep learning come sistema dinamico (Chaudari, Soatto 2018):

dw(t) = −∇Ldt + βB(t)

Il gradiente stocasticoGradiente stocastico:Invece che minimizzare l’intera loss, siminimizza una piccola parte della loss che viene scelta casualmente(senza rimbussolamento!).Il deep learning come sistema dinamico (Chaudari, Soatto 2018):

dw(t) = −∇Ldt + βB(t)

B(t) e’ un termine stocastico, moto browniano

Il gradiente stocasticoGradiente stocastico:Invece che minimizzare l’intera loss, siminimizza una piccola parte della loss che viene scelta casualmente(senza rimbussolamento!).Il deep learning come sistema dinamico (Chaudari, Soatto 2018):

dw(t) = −∇Ldt + βB(t)

B(t) e’ un termine stocastico, moto browniano

Problemi.

Il gradiente stocasticoGradiente stocastico:Invece che minimizzare l’intera loss, siminimizza una piccola parte della loss che viene scelta casualmente(senza rimbussolamento!).Il deep learning come sistema dinamico (Chaudari, Soatto 2018):

dw(t) = −∇Ldt + βB(t)

B(t) e’ un termine stocastico, moto browniano

Problemi.

1. Stabilire che relazione sussiste tra il sistema dinamico con Lloss effettiva e sistema dinamico con Lstoc.

Il gradiente stocasticoGradiente stocastico:Invece che minimizzare l’intera loss, siminimizza una piccola parte della loss che viene scelta casualmente(senza rimbussolamento!).Il deep learning come sistema dinamico (Chaudari, Soatto 2018):

dw(t) = −∇Ldt + βB(t)

B(t) e’ un termine stocastico, moto browniano

Problemi.

1. Stabilire che relazione sussiste tra il sistema dinamico con Lloss effettiva e sistema dinamico con Lstoc.

2. Stabilire in che regione esistono soluzioni stabili al problema di“minimizzazione” e qual’e’ il loro bacino di stabilita’(Lyapunov).

Il gradiente stocasticoGradiente stocastico:Invece che minimizzare l’intera loss, siminimizza una piccola parte della loss che viene scelta casualmente(senza rimbussolamento!).Il deep learning come sistema dinamico (Chaudari, Soatto 2018):

dw(t) = −∇Ldt + βB(t)

B(t) e’ un termine stocastico, moto browniano

Problemi.

1. Stabilire che relazione sussiste tra il sistema dinamico con Lloss effettiva e sistema dinamico con Lstoc.

2. Stabilire in che regione esistono soluzioni stabili al problema di“minimizzazione” e qual’e’ il loro bacino di stabilita’(Lyapunov).