MATLABEnvironment
for Neural NetworksDeployment
SEMINARIO PER IL CORSO DI
ENGINEERED ARTIFICIAL SYSTEM
Acura di
Angelo Cardellicchio
1
Ctrl+C/Ctrl+V
• Gli umani, e soprattutto gli accademici,
sono naturalmente portati ad imitare
modelli di successo.
• Ed il nostro cervello, per le sue capacità
di apprendimento, ne è un esempio!
Nascono le Artificial Neural Networks
(ANN), strutture volte a riprodurre
imitare le capacità di apprendimento ed
organizzazione delle reti neurali
biologiche.
2
Credits:Wikipedia
Let’s do something fun!
Generatore di scrittura 'a mano'
Giocatore di BreakOut
Neural Network Playground
3
Meglio approssimare!
• Le ANN ‘classiche’ sono caratterizzate da un unico strato nascosto (shallow
networks).
• Il teorema dell’approssimazione universale afferma che, con un adeguato numero
di neuroni,unashallownetworkpuòapprossimarequalsiasifunzione.
• Nella pratica, l’approssimazione di qualsiasi funzione avviene mediante una
sommatoriapesata.
𝑔(𝑥) ≈
𝑖=1
𝑀
𝑓𝑖 𝑥 𝑤𝑖
4
Basi fisse o adattative?
• Nella formulazione precedente, le funzioni 𝑓𝑖(∙) sono chiamate basi, e, pesato in
manieraopportuna,permettonodiapprossimarela funzione 𝑔(∙).
• Una basepuòessere fissa(fixed)oadattativa(adjustable).
Questiontime:qualetipodibasegarantiscemaggioreflessibilità?
Tipo di approssimatore Forma generica
Polinomiale (fixed basis) 𝑓𝑖 𝑥 = 𝑥 𝑖
Neural Network (adaptive basis) 𝑓𝑖 𝑥 = 𝜎(𝑐𝑖 + 𝑥𝑣𝑖)
5
Perché usare unabase fissa?
• Aumentando il numero di basi fisse utilizzate, è comunque possibile approssimare in maniera
adeguata funzioni complesse.
M=4
M=8
6
Una (semplice…)ANN
∑ 𝜎
7
Trivial,silly,unefficient
• Le ANN utilizzano una funzione di costo per valutare l’errore, ossia la differenza tra
l’uscitadella reteedil targetprefissato.
• I pesi da assegnarea ciascun ramo della retesono appresi valutando iterativamente
la variazionedell’errorein baseallevariazionidi ciascunodei pesi.
• Domanda: proviamo a perturbare ogni peso 𝑤𝑖𝑗 della rete, e valutare gli effetti
complessivi sull’errore.Giusto?
• Risposta:goodluckwiththat.
8
Chainrule
• L’idea illustrata nella slide precedente è quella alla base della famosa chain rule,
chepermettedi‘scomporre’laderivatadiunafunzionecomposta:
𝑑𝑧
𝑑𝑥
=
𝑑𝑧
𝑑𝑦
∙
𝑑𝑦
𝑑𝑥
• Datocheuna ANNèuna funzionecomposta dallefunzioni (somma ed attivazione)
dei singoli layer, usare la chain rule ci permette di valutare la variazione
complessivadell’uscita dellareterispettoalle variazionidei singoli pesi.
9
The Curse of Dimensionality
• È possibile applicare direttamente la chain rule solo nel caso che i layer siano
funzioniscalari.
• Al giorno d’oggi,i layersononormalmentedei tensori!
• In questocaso,il numerodi derivate‘esplode’,e laretediventa ingestibile!
• Occorrequalche accorgimento checi permetta di metterein relazione direttamente
la variazionedell’erroreconla variazionedeisingoli pesi.
• Meetbackpropagation.
10
Boxing
𝑥2
𝑥1
𝐸
𝑓 𝑐1, 𝑐2, 𝑐3 = 𝐸
𝑐1
𝑐2
𝑐3
• Ciinteressalarelazionetragliingressialbox, 𝑐𝑖,el’erroreinuscitadalsistema.
11
Sensibilità
• Definiamo come sensibilità il vettore delle derivate parziali dell’errore rispetto ai
singoli valori 𝑐𝑖.
𝑆 =
𝜕𝐸
𝜕𝑐1
,
𝜕𝐸
𝜕𝑐2
,
𝜕𝐸
𝜕𝑐3
= 𝛿𝑐1, 𝛿𝑐2, 𝛿𝑐3
• Il vettore 𝑆 descrive comevaria 𝐸 in funzionedeisingoli 𝑐𝑖.In generale:
𝐸 = 𝑓(𝑐1, 𝑐2, 𝑐3)
• Di conseguenza, una perturbazione Δ𝑐𝑖 si propagherà ad 𝐸 in base al valore
Δ𝑐𝑖 𝛿𝑐𝑖.
12
Sensibilità
• Vogliamo ora valutare l’effetto dei valori in uscita dal layer precedente sull’errore,
tenendo conto delle considerazioni fatte in precedente. Chiamiamo l’uscita dal
layerprecedente 𝑝1, 𝑝2 .
𝑥2
𝑥1
𝐸
𝑐1
𝑐2
𝑐3
𝜎
𝜎
𝑝1
𝑝2
13
Sensibilità
• Lasensibilità,perla coppia 𝑝1, 𝑝2 ,è datada:
𝑆 𝑝 =
𝜕𝐸
𝜕𝑝1
,
𝜕𝐸
𝜕𝑝2
= {𝛿𝑝1, 𝛿𝑝2}
𝑥2
𝑥1
𝐸
𝑐1
𝑐2
𝑐3
𝜎
𝜎
𝑝1
𝑝2
14
Sensibilità
• Comevaria 𝑐𝑗 rispettoa 𝑝𝑖?
𝛿𝑝𝑖 = 𝜎 𝑝𝑖
𝑗
𝑤𝑖𝑗 𝛿𝑐𝑗
𝑥2
𝑥1
𝐸
𝑐1
𝑐2
𝑐3
𝜎
𝜎
𝑝1
𝑝2
15
Sensibilità
• La relazione 𝛿𝑝𝑖 = 𝜎 𝑝𝑖 ∑ 𝑗 𝑤𝑖𝑗 𝛿𝑐𝑗 mette in relazione la sensibilità del layer 𝑝 con
quella del box. Maèindipendentedaciòcheavvieneall’internodelbox!
• Estendiamo questo concetto, e saremo in grado di valutare come l’errore è influenzato da
ciascun peso propagando quellaformulaverso l’ingresso della rete!
• Abbiamo però bisogno di un punto di partenza: in tal senso, consideriamo l’errore stesso,
genericamentepari a:
𝐸 = 𝑜1 − 𝑡1
2 + 𝑜2 − 𝑡2
2 →
→ 𝑆 𝐸 =
𝜕𝐸
𝜕𝑜1
,
𝜕𝐸
𝜕𝑜2
= 2 𝑜1 − 𝑡1 , 2 𝑜2 − 𝑡2
16
Aggiornamento dei pesi
• Le considerazioni precedenti ci portano alla seguente formula, che mette in relazione
la variazionedell’erroreconquelladelsingolopeso:
𝜕𝐸
𝜕𝑤𝑖𝑗
= 𝜎 𝑝𝑖 𝛿𝑐𝑗
• Questa formula ci permette di calcolare la derivata parziale dell’errore rispetto a
ciascunpesodellarete.
• Tutto ciò è possibile perché conosciamo i valori 𝛿𝑐𝑗, grazie all’algoritmo di
backpropagation!
17
Backpropagation – recap
1. Inizializzazione pesi ad un valore casuale (stochastic backpropagation),
impostazionelearning rate efunzionedicosto/criterio distop.
2. Sceltadiunvettore degli ingressi casuale.
3. Primaiterazione.
4. Calcolodelle sensibilità diciascunlayermediantebackpropagation.
5. Aggiornamentodei pesi in basealgradiente.
6. Seil criterio distop è rispettato, stop,altrimenti torna alpunto 2.
18
Meet Mr.Deep Learning
• Il deeplearningè, assiemeal concettodibigdata,‘thenextbig thing’.
• Rappresenta una rivoluzione nel campo del pattern recognition: tradizionalmente,
infatti, gli step di feature selection e matching sono fatti ‘a mano’, grazie
all’esperienzaedallecompetenzedi unesperto.
• Il deeplearning‘automatizza’questoprocesso.
Feature
Selection
Feature
Matching
Ranking
19
Meet Mr.Deep Learning
Deep
Learning
Approccio
classico
𝑓1
…
𝑓𝑛
𝑓1
…
𝑓𝑛
20
Credits:Wikipedia
DeepLearning e CNN
• Le Convolutional Neural Networks (CNN) sono uno dei modelli di rete più usati
nel campo del deep learning, ed hanno un numero di strati molto elevato (da cui la
definizionedi deep).
• Question time: se le ANN sono degli approssimatori universali, quali sono i
vantaggiderivantidall’usodiarchitetturedeep?
21
Credits:Wikipedia
DeepLearning e CNN
Gli strati delle CNN sono organizzati in maniera tale da riproporre il comportamento
del cervello umano,cheestraelefeaturein maniera‘gerarchica’.
Contorni
Forme
Tessitura
22
DeepLearning e CNN
Per approssimare efficacemente il funzionamento di un’architettura deep, occorre un
elevato numerodineuroninell’hiddenlayerdiunareteshallow.
23
…
A deeper lookinto CNNs…
Credits:Wikipedia
𝑦𝑖𝑗 =
𝑢𝑣
𝑤 𝑢𝑣 𝑥𝑖+𝑢,𝑗+𝑣
24
• LeCNNsonocompostedavaritipi dilayer.Esaminiamoi trepiùcomuni.
• Il primo è il layer di convoluzione, nel quale l’immagine (o, generalmente, il
pattern)è convolutacon unkernel.
A deeper lookinto CNNs…
Credits:Wikipedia
25
• Il secondo strato, che normalmente segue quello di convoluzione, è il layer di
pooling, che partiziona l’immagine in ingresso secondo un certo schema e, per ogni
partizione, restituisce un unico valore, diminuendo progressivamente le
dimensioni spazialidell’immagine.
A deeper lookinto CNNs…
Credits:Wikipedia
26
• Il terzo strato è legato alla funzione di attivazione. Ve ne sono di vario tipo, ma la
più usataèla ReLU(RectifiedLinearUnit).
𝜎 𝑥 = max 𝑥, 0
Credits:All world’sengineers
MatConvNet
• Cosaè?
• LibreriaMATLABperutilizzareleCNN
• MaMATLABnonusail Neural NetworkToolbox?
• Sì, ma questo non permette di definire CNN, tant’è che MatConvNet è ormai
lostandard‘defacto’usatoanchedaMathWorksneisuoitutorial.
• MATLABè lasoluzionemigliore per il deep learning?
• Ricorriamo alla tipica risposta che un ingegnere dà ad una domanda di
questotipo:‘Itdepends.’
27
Grazie per l’attenzione!
28

MATLAB Environment for Neural Network Deployment

  • 1.
    MATLABEnvironment for Neural NetworksDeployment SEMINARIOPER IL CORSO DI ENGINEERED ARTIFICIAL SYSTEM Acura di Angelo Cardellicchio 1
  • 2.
    Ctrl+C/Ctrl+V • Gli umani,e soprattutto gli accademici, sono naturalmente portati ad imitare modelli di successo. • Ed il nostro cervello, per le sue capacità di apprendimento, ne è un esempio! Nascono le Artificial Neural Networks (ANN), strutture volte a riprodurre imitare le capacità di apprendimento ed organizzazione delle reti neurali biologiche. 2 Credits:Wikipedia
  • 3.
    Let’s do somethingfun! Generatore di scrittura 'a mano' Giocatore di BreakOut Neural Network Playground 3
  • 4.
    Meglio approssimare! • LeANN ‘classiche’ sono caratterizzate da un unico strato nascosto (shallow networks). • Il teorema dell’approssimazione universale afferma che, con un adeguato numero di neuroni,unashallownetworkpuòapprossimarequalsiasifunzione. • Nella pratica, l’approssimazione di qualsiasi funzione avviene mediante una sommatoriapesata. 𝑔(𝑥) ≈ 𝑖=1 𝑀 𝑓𝑖 𝑥 𝑤𝑖 4
  • 5.
    Basi fisse oadattative? • Nella formulazione precedente, le funzioni 𝑓𝑖(∙) sono chiamate basi, e, pesato in manieraopportuna,permettonodiapprossimarela funzione 𝑔(∙). • Una basepuòessere fissa(fixed)oadattativa(adjustable). Questiontime:qualetipodibasegarantiscemaggioreflessibilità? Tipo di approssimatore Forma generica Polinomiale (fixed basis) 𝑓𝑖 𝑥 = 𝑥 𝑖 Neural Network (adaptive basis) 𝑓𝑖 𝑥 = 𝜎(𝑐𝑖 + 𝑥𝑣𝑖) 5
  • 6.
    Perché usare unabasefissa? • Aumentando il numero di basi fisse utilizzate, è comunque possibile approssimare in maniera adeguata funzioni complesse. M=4 M=8 6
  • 7.
  • 8.
    Trivial,silly,unefficient • Le ANNutilizzano una funzione di costo per valutare l’errore, ossia la differenza tra l’uscitadella reteedil targetprefissato. • I pesi da assegnarea ciascun ramo della retesono appresi valutando iterativamente la variazionedell’errorein baseallevariazionidi ciascunodei pesi. • Domanda: proviamo a perturbare ogni peso 𝑤𝑖𝑗 della rete, e valutare gli effetti complessivi sull’errore.Giusto? • Risposta:goodluckwiththat. 8
  • 9.
    Chainrule • L’idea illustratanella slide precedente è quella alla base della famosa chain rule, chepermettedi‘scomporre’laderivatadiunafunzionecomposta: 𝑑𝑧 𝑑𝑥 = 𝑑𝑧 𝑑𝑦 ∙ 𝑑𝑦 𝑑𝑥 • Datocheuna ANNèuna funzionecomposta dallefunzioni (somma ed attivazione) dei singoli layer, usare la chain rule ci permette di valutare la variazione complessivadell’uscita dellareterispettoalle variazionidei singoli pesi. 9
  • 10.
    The Curse ofDimensionality • È possibile applicare direttamente la chain rule solo nel caso che i layer siano funzioniscalari. • Al giorno d’oggi,i layersononormalmentedei tensori! • In questocaso,il numerodi derivate‘esplode’,e laretediventa ingestibile! • Occorrequalche accorgimento checi permetta di metterein relazione direttamente la variazionedell’erroreconla variazionedeisingoli pesi. • Meetbackpropagation. 10
  • 11.
    Boxing 𝑥2 𝑥1 𝐸 𝑓 𝑐1, 𝑐2,𝑐3 = 𝐸 𝑐1 𝑐2 𝑐3 • Ciinteressalarelazionetragliingressialbox, 𝑐𝑖,el’erroreinuscitadalsistema. 11
  • 12.
    Sensibilità • Definiamo comesensibilità il vettore delle derivate parziali dell’errore rispetto ai singoli valori 𝑐𝑖. 𝑆 = 𝜕𝐸 𝜕𝑐1 , 𝜕𝐸 𝜕𝑐2 , 𝜕𝐸 𝜕𝑐3 = 𝛿𝑐1, 𝛿𝑐2, 𝛿𝑐3 • Il vettore 𝑆 descrive comevaria 𝐸 in funzionedeisingoli 𝑐𝑖.In generale: 𝐸 = 𝑓(𝑐1, 𝑐2, 𝑐3) • Di conseguenza, una perturbazione Δ𝑐𝑖 si propagherà ad 𝐸 in base al valore Δ𝑐𝑖 𝛿𝑐𝑖. 12
  • 13.
    Sensibilità • Vogliamo oravalutare l’effetto dei valori in uscita dal layer precedente sull’errore, tenendo conto delle considerazioni fatte in precedente. Chiamiamo l’uscita dal layerprecedente 𝑝1, 𝑝2 . 𝑥2 𝑥1 𝐸 𝑐1 𝑐2 𝑐3 𝜎 𝜎 𝑝1 𝑝2 13
  • 14.
    Sensibilità • Lasensibilità,perla coppia𝑝1, 𝑝2 ,è datada: 𝑆 𝑝 = 𝜕𝐸 𝜕𝑝1 , 𝜕𝐸 𝜕𝑝2 = {𝛿𝑝1, 𝛿𝑝2} 𝑥2 𝑥1 𝐸 𝑐1 𝑐2 𝑐3 𝜎 𝜎 𝑝1 𝑝2 14
  • 15.
    Sensibilità • Comevaria 𝑐𝑗rispettoa 𝑝𝑖? 𝛿𝑝𝑖 = 𝜎 𝑝𝑖 𝑗 𝑤𝑖𝑗 𝛿𝑐𝑗 𝑥2 𝑥1 𝐸 𝑐1 𝑐2 𝑐3 𝜎 𝜎 𝑝1 𝑝2 15
  • 16.
    Sensibilità • La relazione𝛿𝑝𝑖 = 𝜎 𝑝𝑖 ∑ 𝑗 𝑤𝑖𝑗 𝛿𝑐𝑗 mette in relazione la sensibilità del layer 𝑝 con quella del box. Maèindipendentedaciòcheavvieneall’internodelbox! • Estendiamo questo concetto, e saremo in grado di valutare come l’errore è influenzato da ciascun peso propagando quellaformulaverso l’ingresso della rete! • Abbiamo però bisogno di un punto di partenza: in tal senso, consideriamo l’errore stesso, genericamentepari a: 𝐸 = 𝑜1 − 𝑡1 2 + 𝑜2 − 𝑡2 2 → → 𝑆 𝐸 = 𝜕𝐸 𝜕𝑜1 , 𝜕𝐸 𝜕𝑜2 = 2 𝑜1 − 𝑡1 , 2 𝑜2 − 𝑡2 16
  • 17.
    Aggiornamento dei pesi •Le considerazioni precedenti ci portano alla seguente formula, che mette in relazione la variazionedell’erroreconquelladelsingolopeso: 𝜕𝐸 𝜕𝑤𝑖𝑗 = 𝜎 𝑝𝑖 𝛿𝑐𝑗 • Questa formula ci permette di calcolare la derivata parziale dell’errore rispetto a ciascunpesodellarete. • Tutto ciò è possibile perché conosciamo i valori 𝛿𝑐𝑗, grazie all’algoritmo di backpropagation! 17
  • 18.
    Backpropagation – recap 1.Inizializzazione pesi ad un valore casuale (stochastic backpropagation), impostazionelearning rate efunzionedicosto/criterio distop. 2. Sceltadiunvettore degli ingressi casuale. 3. Primaiterazione. 4. Calcolodelle sensibilità diciascunlayermediantebackpropagation. 5. Aggiornamentodei pesi in basealgradiente. 6. Seil criterio distop è rispettato, stop,altrimenti torna alpunto 2. 18
  • 19.
    Meet Mr.Deep Learning •Il deeplearningè, assiemeal concettodibigdata,‘thenextbig thing’. • Rappresenta una rivoluzione nel campo del pattern recognition: tradizionalmente, infatti, gli step di feature selection e matching sono fatti ‘a mano’, grazie all’esperienzaedallecompetenzedi unesperto. • Il deeplearning‘automatizza’questoprocesso. Feature Selection Feature Matching Ranking 19
  • 20.
  • 21.
    DeepLearning e CNN •Le Convolutional Neural Networks (CNN) sono uno dei modelli di rete più usati nel campo del deep learning, ed hanno un numero di strati molto elevato (da cui la definizionedi deep). • Question time: se le ANN sono degli approssimatori universali, quali sono i vantaggiderivantidall’usodiarchitetturedeep? 21 Credits:Wikipedia
  • 22.
    DeepLearning e CNN Glistrati delle CNN sono organizzati in maniera tale da riproporre il comportamento del cervello umano,cheestraelefeaturein maniera‘gerarchica’. Contorni Forme Tessitura 22
  • 23.
    DeepLearning e CNN Perapprossimare efficacemente il funzionamento di un’architettura deep, occorre un elevato numerodineuroninell’hiddenlayerdiunareteshallow. 23 …
  • 24.
    A deeper lookintoCNNs… Credits:Wikipedia 𝑦𝑖𝑗 = 𝑢𝑣 𝑤 𝑢𝑣 𝑥𝑖+𝑢,𝑗+𝑣 24 • LeCNNsonocompostedavaritipi dilayer.Esaminiamoi trepiùcomuni. • Il primo è il layer di convoluzione, nel quale l’immagine (o, generalmente, il pattern)è convolutacon unkernel.
  • 25.
    A deeper lookintoCNNs… Credits:Wikipedia 25 • Il secondo strato, che normalmente segue quello di convoluzione, è il layer di pooling, che partiziona l’immagine in ingresso secondo un certo schema e, per ogni partizione, restituisce un unico valore, diminuendo progressivamente le dimensioni spazialidell’immagine.
  • 26.
    A deeper lookintoCNNs… Credits:Wikipedia 26 • Il terzo strato è legato alla funzione di attivazione. Ve ne sono di vario tipo, ma la più usataèla ReLU(RectifiedLinearUnit). 𝜎 𝑥 = max 𝑥, 0
  • 27.
    Credits:All world’sengineers MatConvNet • Cosaè? •LibreriaMATLABperutilizzareleCNN • MaMATLABnonusail Neural NetworkToolbox? • Sì, ma questo non permette di definire CNN, tant’è che MatConvNet è ormai lostandard‘defacto’usatoanchedaMathWorksneisuoitutorial. • MATLABè lasoluzionemigliore per il deep learning? • Ricorriamo alla tipica risposta che un ingegnere dà ad una domanda di questotipo:‘Itdepends.’ 27
  • 28.