Contributo dell'Involucro nel Deep Energy Retrofit degli edifici esistenti
Introduzione a Deep Learning - unibo.itfioresi/2018/dl/dl-conf.pdf · 2018-02-26 · Introduzione a...
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 [email protected]
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).