SlideShare a Scribd company logo
1 of 32
UNIVERSIT ´A DEGLI STUDI DI BERGAMO
DIPARTIMENTO DI INGEGNERIA
CORSO DI LAUREA MAGISTRALE IN INGEGNERIA
INFORMATICA
RETI NEURALI DI CONVOLUZIONE PER LA
VISIONE ARTIFICIALE
Relatore
Mario Verdicchio
Laureando
Daniele Ettore Ciriello
13 giugno 2016
Benvenuti e grazie di essere presenti, io sono Daniele Ciriello e ho
scritto la mia tesi magistrale su reti neurali di convoluzione per la
visione artificiale.
Indice
Introduzione
Fondamenti di reti neurali artificiali
Stato dell’arte
Implementazione
Risultati
Sviluppi futuri
2 di 32
RETI NEURALI DI CONVOLUZIONE PER LA VISIONE ARTIFICIALE
La presentazione si divide in sei parti, inizialmente introduco la
visione artificiale e le reti neurali, di cui mostro anche i concetti
fondamentali e lo stato dell’arte per quanto riguarda compiti di
classificazione di immagini, dopodich´e presento le diverse parti del
progetto implementato ed i risultati di alcune sperimentazioni, per
concludere con possibili sviluppi futuri e applicazioni nella pratica.
Indice
Introduzione
Fondamenti di reti neurali artificiali
Stato dell’arte
Implementazione
Risultati
Sviluppi futuri
3 di 32
RETI NEURALI DI CONVOLUZIONE PER LA VISIONE ARTIFICIALE
Iniziamo quindi con l’introdurre i concetti di visione artificiale e di rete
neurale artificiale.
Visione artificiale
Acquisizione, processo, analisi e comprensione di immagini e
dati ad alta dimensionalit`a
Esempi di applicazioni:
Processi di controllo
Navigazione
Rilevamento di eventi
Organizzazione dell’informazione
Interazione
4 di 32
RETI NEURALI DI CONVOLUZIONE PER LA VISIONE ARTIFICIALE
La visione artificiale `e una branchia dell’informatica che si occupa
dell’acquisizione, processo, analisi e comprensione di informazioni
contenute in immagini e dati ad alta dimensionalit`a (provenienti) dal
mondo reale, con lo scopo di produrre informazione numerica o
simbolica, ad esempio in forma di decisione.
Rappresenta la base per molti sistemi di intelligenza artificiale,
trovando applicazioni ad esempio nei processi di controllo, nei sistemi
di navigazione, di organizzazione dell’informazione e sistemi di
interazione uomo macchina.
Il nucleo di queste applicazioni sono spesso problemi di
classificazione di immagini, in cui un sistema deve decidere la classe
di appartenenza di un’immagine tra un insieme di classi predefinite.
Reti neurali e visione artificiale
Paradigma per la trattazione dell’informazione ispirato al
sistema nervoso biologico
Modelli decisionali non lineari altamente scalabili
Impostano autonomamente i parametri ideali mediante
algoritmi di apprendimento
Necessitano di grandi insiemi di dati di addestramento
5 di 32
RETI NEURALI DI CONVOLUZIONE PER LA VISIONE ARTIFICIALE
Negli ultimi anni `e stato possibile ottenere progressi notevoli grazie
alle reti neurali di convoluzione, che oggi costituiscono lo stato
dell’arte nella risoluzione di problemi di classificazione di immagini ed
altri problemi di visione artificiale. Le reti neurali artificiali sono modelli
ispirati dal sistema nervoso biologico che Possono rappresentare
modelli decisionali non lineari altamente scalabili, utilizzando
algoritmi di apprendimento si permette alla rete di impostare
autonomamente i parametri che minimizzano il costo dell’errore.
Indice
Introduzione
Fondamenti di reti neurali artificiali
Stato dell’arte
Implementazione
Risultati
Sviluppi futuri
6 di 32
RETI NEURALI DI CONVOLUZIONE PER LA VISIONE ARTIFICIALE
Vediamo dunque alcuni concetti fondamentali delle reti neurali
artificiali.
Unit`a neurali
Unit`a neurale
x1
x2
...
xn
b y
w1
w2
wn
y = f(w · x + b)
w: pesi
b: scostamento
f: funzione di attivazione
Funzioni di attivazione
. . . . . .
7 di 32
RETI NEURALI DI CONVOLUZIONE PER LA VISIONE ARTIFICIALE
L’elemento alla base delle reti neurali artificiali `e l’unit`a neurale o
neurone artificiale, che prende in ingresso n valori da x a x, a cui
corrispondono n pesi w, ingressi e pesi possono essere visti come
due vettori x e w, L’uscita dell’unit`a neurale corrisponde quindi
all’applicazione di una funzione detta di attivazione alla somma tra
prodotto scalare tra ingressi e pesi sommato e un parametro b detto
scostamento.
La funzione di attivazione pi`u semplice e la prima ad essere utilizzata
`e la funzione a gradino, le unit`a neurali che la utilizzano sono detti
percettroni. La funzione di attivazione pi`u celebre in letteratura,
anche se ormai non pi`u utilizzata, `e la funzione sigmoidale, anche
detta funzione logistica In letteratura si trovano anche funzioni simili
alla funzione logistica, come la funzione tangente iperbolica, la
funzione di attivazione pi`u utilizzata oggi `e la funzione di
raddrizzamento e le unit`a neurali che la utilizzano sono chiamate
ReLU (rectifier linear unit).
Reti neurali feed-forward
II strato
na-
scosto
I strato
na-
scosto
strato
di input
strato di
output
y1 = x, yj = f(Wj · y −1 + bj )
8 di 32
RETI NEURALI DI CONVOLUZIONE PER LA VISIONE ARTIFICIALE
Disponendo a strati questi elementi si costituiscono le reti neurali, in
particolare, I modelli feed-forward classici prevedono la composizione
di diversi strati in cui, il primo strato `e chiamato di ingresso e
rappresenta gli ingressi della rete, l’ultimo strato `e chiamato di uscita
perch´e riporta l’uscita della rete, e gli strati interni sono chiamati
nascosti in quanto non sono n´e di ingresso e n´e di uscita. Strati come
questi si chiamano completamente connessi o affini, in cui gli ingressi
di ogni neurone corrispondono alle uscite di tutti i neuroni dello strato
precedente.
Strati di convoluzione
Gruppi di neuroni che condividono i pesi tra loro
Ciascun neurone prende in ingresso una porzione di x
Molto efficienti nella trattazione di immagini
x1 x2 x3 x4 x5
A A A A
y1 y2 y3 y4
...
xn−1 xn
A
yn
9 di 32
RETI NEURALI DI CONVOLUZIONE PER LA VISIONE ARTIFICIALE
Esistono diverse altre tipologie di strato, un tipo di strato molto
importante, soprattutto per quanto riguarda problemi di visione
artificiale e piu in generale di pattern recognition, `e lo strato di
convoluzione. Lo strato di convoluzione consiste in gruppi di neuroni,
in cui ogni neurone, prende in ingresso una porzione di x, e condivide
i valori dei pesi e dello scostamento con gli altri neuroni dello stesso
gruppo.
In immagine di vede uno strato di convoluzione monodimensionale
composto da neuroni di tipo A che pu`o prendere il nome di filtro e
prende in ingresso un segmento di x, nel caso di problemi di visione
artificiale gli strati sono bidimensionali e prendono quindi in ingresso
delle aree di x.
Altre tipologie di strato
Pooling
Softmax
Normalizzazione
10 di 32
RETI NEURALI DI CONVOLUZIONE PER LA VISIONE ARTIFICIALE
Gli strati di convoluzione sono spesso intervallati da strati di pooling
che effettuano un sotto-campionamento dell’ingresso
mantendendone inalterato il numero di canali, un altro strato
importante `e lo strato softmax, utilizzato come strato di uscita nei
problemi di classificazione, in quanto i valori del vettore y in uscita
alla funzione softmax possono essere visti come una distribuzione di
probabilit`a.
Un altro strato importante `e lo strato di normalizzazione che
normalizza appunto i valori in un intervallo unitario lungo ciascun
canale dell’ingresso .
La modularit`a di questi semplici concetti permette la composizione di
modelli complessi e specifici.
Indice
Introduzione
Fondamenti di reti neurali artificiali
Stato dell’arte
Implementazione
Risultati
Sviluppi futuri
11 di 32
RETI NEURALI DI CONVOLUZIONE PER LA VISIONE ARTIFICIALE
Per esporre lo stato dell’arte mostro i risultati di una competizione che
si tiene annualmente attraendo centinaia di istituzioni da tutto il
mondo, e che `e diventata un punto di riferimento per la valutazione di
sistemi di visione artificiale
ILSVRC
ImageNet Large-Scale Visual Recognition Challenge
1000 classi di
oggetti
1.2 M immagini
di
addestramento
500 k immagini
di validazione
12 di 32
RETI NEURALI DI CONVOLUZIONE PER LA VISIONE ARTIFICIALE
ILSRVC `e un a competizione composta da diversi compiti di visione
artificiale come localizzazione e classificazione di oggetti in immagini
immagini, con il passare degli anni sono nati anche altri sotto-task
come la classificazione di scene o la localizzazione e classificazione
di oggetti nei filmati. Questa competizione `e diventata ormai un punto
di riferimento per l’analisi prestazionale delle reti di convoluzione su
larga scala.
Il task di classificazione prevede un insieme di addestramento di 1,2
milioni di immagini e 1000 classi, nell’anno 2015 sono stati superati i
livelli di errore medio di un essere umano.
ILSVRC
Blu: visione artificiale tradizionale
Viola: deep learning
Rosso: capacit`a umane
13 di 32
RETI NEURALI DI CONVOLUZIONE PER LA VISIONE ARTIFICIALE
In figura si pu`o vedere come da quando sono stati utilizzati sistemi
basati su apprendimento profondo, ovvero algoritmi di apprendimento
di reti aventi pi`u di uno strato nascosto, `e stato possibile ottenere
progressi notevoli, fino a superare le capacit`a umane medie nel 2015.
Si pu`o vedere anche come i modelli neurali abbiano ormai sostituito
gli approcci di visione artificiale classici.
Reti residuali
14 di 32
RETI NEURALI DI CONVOLUZIONE PER LA VISIONE ARTIFICIALE
la rete che ha vinto tutte le competizioni nell’anno 2015 `e un modello
di convoluzione chiamato residuale, proposto dal team MSRA, e
consiste in una rete di convoluzione a cui viene applicato il concetto
dell’apprendimento residuale.
La struttura di base in centro viene chiamata rete piana ed `e inspirata
alle reti VGG, modello presentato alla stessa competizione l’anno
precedente (in alto), riportando un residuo dei valori di ingresso in
uscita ad un gruppo di strati di convoluzione utilizzando le cosiddette
connessioni scorciatoia, creando quindi una rete di convoluzione
residuale come quella in basso
Indice
Introduzione
Fondamenti di reti neurali artificiali
Stato dell’arte
Implementazione
Risultati
Sviluppi futuri
15 di 32
RETI NEURALI DI CONVOLUZIONE PER LA VISIONE ARTIFICIALE
Il mio obiettivo era quindi di riprodurre i risultati ottenuti con il modello
residuale, su dataset pi`u semplici.
Panoramica del progetto
PyFunt
Libreria per lo sviluppo e l’addestramento di reti neurali di
convoluzione
PyDatSet
Libreria per il caricamento di diversi dataset e collezione di
funzioni per aumentare artificialmente gli insiemi di
addestramento
Deep-residual-networks-pyfunt
Implementazione e addestramento delle reti residuali
parametriche su diversi dataset
16 di 32
RETI NEURALI DI CONVOLUZIONE PER LA VISIONE ARTIFICIALE
Il progetto si divide in tre repository principali sviluppate nel
linguaggio Python. Pyfunt che contiene la libreria per lo sviluppo e
l’addestramento di reti neurali e reti neurali di convoluzione, Pydatset
che consiste in una collezione di funzioni per il caricamento di diversi
dataset in ambiente python e funzioni per l’aumento artificiale dei dati
di addestramento, e la repository che contiene l’implementazione del
modello residuale parametrico pi`u l’applicazione principale che
utilizza le altre due librerie per caricare i dataset ed effettuarne
l’addestramento.
Tutti e tre i repository sono pubblicati con licenza open-source su
github in modo che chiunque voglia possa utilizzarli e contribuire allo
sviluppo.
Package Diagram
17 di 32
RETI NEURALI DI CONVOLUZIONE PER LA VISIONE ARTIFICIALE
in questo diagramma si pu`o vedere come le diverse parti del progetto
interagiscono tra loro per effettuare l’apprendimento del modello
residuale, in particolare l’applicazione principale crea un oggetto
resnet che utilizza le implementazioni degli strati e le funzioni di
attivazione fornite da pyfunt, dopodich´e viene creato un oggetto
solver fornito dalla stessa libreria, a cui si passa il modello, l’insieme
dei dati di addestramento come numero di epoche e tasso di
apprendimento. pyfunt contiene anche utilit`a per la verifica della
corretta implementazione degli strati e per la visualizzazione dei pesi
del primo strato di convoluzione.
Indice
Introduzione
Fondamenti di reti neurali artificiali
Stato dell’arte
Implementazione
Risultati
Sviluppi futuri
18 di 32
RETI NEURALI DI CONVOLUZIONE PER LA VISIONE ARTIFICIALE
Passiamo quindi ai risultati delle sperimentazioni su diversi dataset
CIFAR-10 - Canadian Institute For Advanced
Research
60 k immagini
(50 k + 10 k)
RGB 32x32
10 classi:
aeroplano
automobile
uccello
gatto
cervo
cane
rana
cavallo
nave
camion
19 di 32
RETI NEURALI DI CONVOLUZIONE PER LA VISIONE ARTIFICIALE
Volendo replicare i risultati delle reti residuali ho addestrato il modello
da me implementato sul dataset CIFAR 10, composto da 60000
immagini RGB da 32 pixel per lato spalmate su 10 classi disgiunte.
Questo `e un dataset molto semplice rispetto a quello mostrato
precedentemente ma essendo molto vario permette di verificare
facilmente se un modello apprende correttamente dagli esempi.
CIFAR-10 – Risultati
Accuratezza: 90.41 %; parametri: ˜248 k
20 di 32
RETI NEURALI DI CONVOLUZIONE PER LA VISIONE ARTIFICIALE
Per valutare il comportamento di una rete si possono analizzare le
curve di addestramento, che riportano il valore della media mobile del
costo ad ogni iterazione, ed i valori di errore sui dati di addestramento
le linee tratteggiate e l’errore sui dati di validazione le linee continue.
In questo caso, utilizzando una rete composta da 20 strati, `e evidente
osservando gli errori il fenomeno tipico di questi modelli, chiamato
sovra-dattamento, secondo cui la rete utilizza i numerosi parametri
per apprendere caratteristiche specifiche dell’insieme di
addestramento, senza generalizzare abbastanza sull’insieme di
validazione. Memorizzando in un certo senso le immagini di
addestramento.
Aumentando artificialmente l’insieme dei dati di addestramento `e
possibile ridurre questo fenomeno ed ottenere migliori risultati anche
sull’insieme di validazione.
MNIST – Mixed National Institute of Standards
and Technology
70 k immagini
(60 k + 10 k)
B/N 28x28 di
cifre scritte a
mano
10 classi
(cifre da 0 a 9)
21 di 32
RETI NEURALI DI CONVOLUZIONE PER LA VISIONE ARTIFICIALE
Il dataset mnist `e stato presentato per la prima volta nel 1991 ed
composto da 60 mila immagini bianco/nero da 28 pixel per lato
raffiguranti cifre scritte a mano
MNIST – Risultati
Accuratezza: 99.64 %; parametri: 442 k
22 di 32
RETI NEURALI DI CONVOLUZIONE PER LA VISIONE ARTIFICIALE
Un altro modo per ridurre il fenomeno del sovra-adattamento nei
modelli residuali `e aumentarne il numero di strati e del numero di
neuroni, in questo caso per i primi due esperimenti ho dimezzato il
numero di neuroni utilizzati nel caso precedente. Utilizzando una rete
da 32 strati ho raggiunto un accuratezza del 99.64%, che vuol dire
che la rete classifica erroneamente 36 immagini alla fine
dell’addestramento.
Il numero dei filtri di ciascuno strato parte in questo caso da 16 e
raddoppia sporadicamente fino a 64
MNIST – Risultati
23 di 32
RETI NEURALI DI CONVOLUZIONE PER LA VISIONE ARTIFICIALE
In quest’immagine si possono vedere tutte e 36 le immagini
classificate erroneamente dalla rete, al centro di ogni cella vi `e
l’immagine originale, in alto a sinistra la classe corretta, in basso a
sinistra la classificazione errata ed in basso a destra la seconda
predizione per confidenza.
Si pu`o vedere quindi come in molti casi la seconda classificazione
per probabilit`a sia la maggior parte delle volte corretta, inoltre si
possono vedere alcuni esempi che sono praticamente indistinguibili
anche per un occhio umano.
SFDDD - State Farm Distracted Driver Detection
˜22 k immagini RGB
640x480 di guidatori
10 classi di distrazione:
guida sicura
scrivendo al telefono (R)
parlando al telefono (R)
scrivendo al telefono (L)
parlando al telefono (L)
toccando la radio
bevendo
raggiungendo i sedili
posteriori
parlando con il passeggero
truccandosi o pettinandosi
24 di 32
RETI NEURALI DI CONVOLUZIONE PER LA VISIONE ARTIFICIALE
L’ultimo dataset su cui ho addestrato il modello residuale `e stato
fornito dall’agenzia assicurativa State Farm in collaborazione con
kaggle, un ente che raccoglie diverse competizioni in ambito
dell’apprendimento automatico. In questo caso l’agenzia assicurativa
ha voluto verificare i livelli di precisione ottenibili nella classificazione
di immagini RGB 640x480 di guidatori in 10 classi di distrazione:
Guida sicura, scrivendo al telefono con la mano destra, parlando al
telefono con la mano destra, scrivendo al telefono con la mano
sinistra, toccando la radio, eccetera...
Per semplificare il dataset e l’addestramento, ho ridimensionato le
immagini a 64 per 48 pixel, selezionando per l’addestramento una
porzione casuale di ciascuna immagine ad ogni iterazione, e per la
validazione la porzione 32 per 32 centrale.
SFSDDD – Risultati
Accuratezza: 99.75 %, parametri: ˜636 k
25 di 32
RETI NEURALI DI CONVOLUZIONE PER LA VISIONE ARTIFICIALE
Essendo che la competizione non `e ancora terminata, l’insieme di
validazione non `e pubblico, quindi ho utilizzato un insieme di 2000
immagini estratte casualmente dalle circa 22 mila dell’insieme di
addestramento. Analizzando le curve di apprendimento di due reti
residuali di rispettivamente 32 e 44 strati. nonostante la differenza nei
valori del costo `e pressoch´e impercettibile, e nonostante la rete
riesca a riconoscere la totalit`a dei campioni di addestramento in
entrambi i modelli, con il modello da 44 strati ho raggiunto
un’accuratezza del 99.75 per cento sul mio insieme di validazione.
SFSDDD – Mappe di salienza
26 di 32
RETI NEURALI DI CONVOLUZIONE PER LA VISIONE ARTIFICIALE
Valutando e visualizzando i valori delle derivate del costo, rispetto
alle immagini di ingresso, `e possibile osservare le cosiddette mappe
di salienza, in cui le zone pi`u chiare rappresentano le porzioni di
immagine che hanno maggiormente contribuito alla classificazione
corretta da parte della rete, in questo caso ad esempio vi sono alcuni
esempi per la classe ”parlando al telefono con la mano destra”. `e
interessante notare ad esempio come influiscono le zone del volante
dove solitamente risiedono le mani o le zone dove dovrebbe risiedere
il braccio, nella quarta immagine si pu`o vedere invece che la zona
che ha influito maggiormente `e quella della testa.
Indice
Introduzione
Fondamenti di reti neurali artificiali
Stato dell’arte
Implementazione
Risultati
Sviluppi futuri
27 di 32
RETI NEURALI DI CONVOLUZIONE PER LA VISIONE ARTIFICIALE
Veniamo quindi alla conclusione in cui descrivo alcune possibilit`a di
sviluppo futuro e di applicazioni per il progetto implementato.
Sviluppi futuri
Estensione del framework
Implementazione di altri modelli
Addestramento su altri dataset
28 di 32
RETI NEURALI DI CONVOLUZIONE PER LA VISIONE ARTIFICIALE
In un futuro prossimo mi piacerebbe continuare il progetto,
estendendo la libreria implementata, ad esempio permettendo
l’utilizzo di librerie per il calcolo accelerato su GPU. o sviluppando
altre tipologie di strato, implementando altre versioni del modello
residuale o nuovi modelli che verranno presentati in futuro, o
addestrando la rete su altri dataset o per la risoluzione di altri
problemi inerenti alla visione artificiale.
Possibili applicazioni
Medicina
. . .
Robotica
. . .
Navigazione
. . .
Fisica, scienze naturali, intrattenimento e arte, ...
29 di 32
RETI NEURALI DI CONVOLUZIONE PER LA VISIONE ARTIFICIALE
Alcune possibili applicazioni in cui vengono utilizzate reti di
convoluzione sono in medicina per la diagnosi di disagi a livello
toracico a partire dalle immagini di radiografie, localizzazione e
segmentazione di masse tumorali nel cervello, o del pancreas dalle
immagini delle sezioni del tronco, utile in quanto il pancreas varia
molto di dimensione e forma da persona a persona. In robotica, nei
sistemi di coordinazione occhio mano in bracci a 7 gradi di libert`a, per
migliorare le capacit`a locomotorie di robot su terreni irregolari tramite
algoritmi di reinforcement learning, e per il miglioramento dei rapporti
tra robot domestici e umani tramite reti per la classificazione di
espressioni facciali. In navigazione vengono utilizzate in modo
massivo nei sistemi per veicoli autonomi, ad esempio per il
rilevamento e la classificazione di strade a partire dalle immagini
satellitari, classificazione di immagini di cartelli stradali.
Inoltre sono state utilizzati modelli neurali con successo in fisica,
scienze naturali per esempio per la classificazione di fiori in botanica
o di plancton in biologia, e molti altri ancora.
UNIVERSIT ´A DEGLI STUDI DI BERGAMO
DIPARTIMENTO DI INGEGNERIA
CORSO DI LAUREA MAGISTRALE IN INGEGNERIA
INFORMATICA
RETI NEURALI DI CONVOLUZIONE PER LA
VISIONE ARTIFICIALE
Relatore
Mario Verdicchio
Laureando
Daniele Ettore Ciriello
13 giugno 2016
Grazie dell’attenzione.
Crediti delle immagini (1 di 2)
Slide Immagine Crediti URL (http://)
10 Super Vision UofT goo.gl/fbyXSK
10 UvA-Euvision UvA goo.gl/ltNvaP
12 ILSRVC samples ImageNet goo.gl/PvFCAv
13 ILSRVC results 1 NVIDIA goo.gl/QkG3Nf
13 ILSRVC results 2 NVIDIA goo.gl/THMZ1X
14 ResNet MSRA goo.gl/uR0ZXL
29 Medi1 NVIDIA goo.gl/DdPSvD
29 Medi2 BRATS goo.gl/rGgz22
29 Medi3 SPIE goo.gl/R5mbmj
29 Rob1 Google goo.gl/6BycQ7
29 Rob2 UBC goo.gl/A585Iz
29 Rob3 MSRC goo.gl/3exWqJ
31 di 32
RETI NEURALI DI CONVOLUZIONE PER LA VISIONE ARTIFICIALE
Crediti delle immagini (2 di 2)
Slide Immagine Crediti URL (http://)
29 Nav1 Google goo.gl/DFgPcl
29 Nav2 DeepOSM goo.gl/sR72BF
29 Nav4 IDSIA goo.gl/SR16Uk
32 di 32
RETI NEURALI DI CONVOLUZIONE PER LA VISIONE ARTIFICIALE

More Related Content

What's hot

CRADLE: Clustering by RAndom minimization Dispersion based LEarning - Un algo...
CRADLE: Clustering by RAndom minimization Dispersion based LEarning - Un algo...CRADLE: Clustering by RAndom minimization Dispersion based LEarning - Un algo...
CRADLE: Clustering by RAndom minimization Dispersion based LEarning - Un algo...
Leonardo Di Donato
 

What's hot (6)

Misure
MisureMisure
Misure
 
Super risoluzione di immagini di volti con tecniche di deep learning a fini i...
Super risoluzione di immagini di volti con tecniche di deep learning a fini i...Super risoluzione di immagini di volti con tecniche di deep learning a fini i...
Super risoluzione di immagini di volti con tecniche di deep learning a fini i...
 
Slides of my Master's Thesis
Slides of my Master's ThesisSlides of my Master's Thesis
Slides of my Master's Thesis
 
Distributed and Parallel Architecture, from grid to MapReduce, hadoop
Distributed and Parallel Architecture, from grid to MapReduce, hadoopDistributed and Parallel Architecture, from grid to MapReduce, hadoop
Distributed and Parallel Architecture, from grid to MapReduce, hadoop
 
CRADLE: Clustering by RAndom minimization Dispersion based LEarning - Un algo...
CRADLE: Clustering by RAndom minimization Dispersion based LEarning - Un algo...CRADLE: Clustering by RAndom minimization Dispersion based LEarning - Un algo...
CRADLE: Clustering by RAndom minimization Dispersion based LEarning - Un algo...
 
From parallel architecture to mapreduce hadoop passing on grid, UNIFI course
From parallel architecture to mapreduce hadoop passing on grid, UNIFI courseFrom parallel architecture to mapreduce hadoop passing on grid, UNIFI course
From parallel architecture to mapreduce hadoop passing on grid, UNIFI course
 

Similar to Pres Tesi LM-2016+transcript_ita

La psicologiacognitiva
La psicologiacognitivaLa psicologiacognitiva
La psicologiacognitiva
iva martini
 
Tesi laurea Cristian Randieri: TECNICHE DI SOFT COMPUTING PER LA MODELLISTICA...
Tesi laurea Cristian Randieri: TECNICHE DI SOFT COMPUTING PER LA MODELLISTICA...Tesi laurea Cristian Randieri: TECNICHE DI SOFT COMPUTING PER LA MODELLISTICA...
Tesi laurea Cristian Randieri: TECNICHE DI SOFT COMPUTING PER LA MODELLISTICA...
Cristian Randieri PhD
 
Tesi - Distrettualizzazione di reti acquedottistiche mediante la teoria delle...
Tesi - Distrettualizzazione di reti acquedottistiche mediante la teoria delle...Tesi - Distrettualizzazione di reti acquedottistiche mediante la teoria delle...
Tesi - Distrettualizzazione di reti acquedottistiche mediante la teoria delle...
Maurizio Peretto
 
PresentazioneTesi_ManuelaTesta
PresentazioneTesi_ManuelaTestaPresentazioneTesi_ManuelaTesta
PresentazioneTesi_ManuelaTesta
Manuela Testa
 
Valutazione delle prestazioni di un protocollo di routing (Surge) per reti di...
Valutazione delle prestazioni di un protocollo di routing (Surge) per reti di...Valutazione delle prestazioni di un protocollo di routing (Surge) per reti di...
Valutazione delle prestazioni di un protocollo di routing (Surge) per reti di...
Andrea Marchetti
 

Similar to Pres Tesi LM-2016+transcript_ita (20)

Reti Neurali Su Personal Computer + Fuzzy Logic
Reti Neurali Su Personal Computer + Fuzzy LogicReti Neurali Su Personal Computer + Fuzzy Logic
Reti Neurali Su Personal Computer + Fuzzy Logic
 
Complexity education by Valerio Eletti (3/4)
Complexity education by Valerio Eletti (3/4)Complexity education by Valerio Eletti (3/4)
Complexity education by Valerio Eletti (3/4)
 
La psicologiacognitiva
La psicologiacognitivaLa psicologiacognitiva
La psicologiacognitiva
 
Tesi laurea Cristian Randieri: TECNICHE DI SOFT COMPUTING PER LA MODELLISTICA...
Tesi laurea Cristian Randieri: TECNICHE DI SOFT COMPUTING PER LA MODELLISTICA...Tesi laurea Cristian Randieri: TECNICHE DI SOFT COMPUTING PER LA MODELLISTICA...
Tesi laurea Cristian Randieri: TECNICHE DI SOFT COMPUTING PER LA MODELLISTICA...
 
Tesi Laurea Cristian Randieri
Tesi Laurea  Cristian RandieriTesi Laurea  Cristian Randieri
Tesi Laurea Cristian Randieri
 
Introduzione sulla system biology nel contesto delle biotecnologie moderne Ti...
Introduzione sulla system biology nel contesto delle biotecnologie moderne Ti...Introduzione sulla system biology nel contesto delle biotecnologie moderne Ti...
Introduzione sulla system biology nel contesto delle biotecnologie moderne Ti...
 
Tesi - Distrettualizzazione di reti acquedottistiche mediante la teoria delle...
Tesi - Distrettualizzazione di reti acquedottistiche mediante la teoria delle...Tesi - Distrettualizzazione di reti acquedottistiche mediante la teoria delle...
Tesi - Distrettualizzazione di reti acquedottistiche mediante la teoria delle...
 
Cmplx school spoleto_ve_reti1su3_22ago2016
Cmplx school spoleto_ve_reti1su3_22ago2016Cmplx school spoleto_ve_reti1su3_22ago2016
Cmplx school spoleto_ve_reti1su3_22ago2016
 
PROGETTAZIONE ED IMPLEMENTAZIONE DI STRUMENTI PER LA VALUTAZIONE DI RETI COMP...
PROGETTAZIONE ED IMPLEMENTAZIONE DI STRUMENTI PER LA VALUTAZIONE DI RETI COMP...PROGETTAZIONE ED IMPLEMENTAZIONE DI STRUMENTI PER LA VALUTAZIONE DI RETI COMP...
PROGETTAZIONE ED IMPLEMENTAZIONE DI STRUMENTI PER LA VALUTAZIONE DI RETI COMP...
 
Sistemi Neurorobotici - WWW.OLOSCIENCE.COM
Sistemi Neurorobotici - WWW.OLOSCIENCE.COMSistemi Neurorobotici - WWW.OLOSCIENCE.COM
Sistemi Neurorobotici - WWW.OLOSCIENCE.COM
 
Blockchain e AI: verso una nuova finanza
Blockchain e AI: verso una nuova finanzaBlockchain e AI: verso una nuova finanza
Blockchain e AI: verso una nuova finanza
 
Graph partitioning: implementazione dell'algoritmo spettrale e confronto con ...
Graph partitioning: implementazione dell'algoritmo spettrale e confronto con ...Graph partitioning: implementazione dell'algoritmo spettrale e confronto con ...
Graph partitioning: implementazione dell'algoritmo spettrale e confronto con ...
 
La metodologia statistica nel data mining
La metodologia statistica nel data miningLa metodologia statistica nel data mining
La metodologia statistica nel data mining
 
PresentazioneTesi_ManuelaTesta
PresentazioneTesi_ManuelaTestaPresentazioneTesi_ManuelaTesta
PresentazioneTesi_ManuelaTesta
 
Extended Summary of Self-building Neural Networks
Extended Summary of Self-building Neural NetworksExtended Summary of Self-building Neural Networks
Extended Summary of Self-building Neural Networks
 
Valutazione delle prestazioni di un protocollo di routing (Surge) per reti di...
Valutazione delle prestazioni di un protocollo di routing (Surge) per reti di...Valutazione delle prestazioni di un protocollo di routing (Surge) per reti di...
Valutazione delle prestazioni di un protocollo di routing (Surge) per reti di...
 
L’Approccio Anticipatorio In Robotica: Un' Analisi Comparativa
L’Approccio Anticipatorio In Robotica: Un' Analisi ComparativaL’Approccio Anticipatorio In Robotica: Un' Analisi Comparativa
L’Approccio Anticipatorio In Robotica: Un' Analisi Comparativa
 
I principi base dell’intelligenza artificiale spiegata ai non tecnici
I principi base dell’intelligenza artificiale spiegata ai non tecnici I principi base dell’intelligenza artificiale spiegata ai non tecnici
I principi base dell’intelligenza artificiale spiegata ai non tecnici
 
Macchina2 g
Macchina2 gMacchina2 g
Macchina2 g
 
AV_slides
AV_slidesAV_slides
AV_slides
 

Recently uploaded

Recently uploaded (9)

Presentzione Matematica similitudini circonferenze e omotetie.pptx
Presentzione  Matematica similitudini circonferenze e omotetie.pptxPresentzione  Matematica similitudini circonferenze e omotetie.pptx
Presentzione Matematica similitudini circonferenze e omotetie.pptx
 
Descrizione della struttura architettonica Eretteo.pptx
Descrizione della struttura architettonica Eretteo.pptxDescrizione della struttura architettonica Eretteo.pptx
Descrizione della struttura architettonica Eretteo.pptx
 
GIORNATA TECNICA 18/04 | DE ROSA Roberto
GIORNATA TECNICA 18/04 | DE ROSA RobertoGIORNATA TECNICA 18/04 | DE ROSA Roberto
GIORNATA TECNICA 18/04 | DE ROSA Roberto
 
GIORNATA TECNICA 18/04 | SPIZZIRRI Massimo
GIORNATA TECNICA 18/04 | SPIZZIRRI MassimoGIORNATA TECNICA 18/04 | SPIZZIRRI Massimo
GIORNATA TECNICA 18/04 | SPIZZIRRI Massimo
 
GIORNATA TECNICA 18/04 | DE LEO Antonio
GIORNATA TECNICA 18/04  | DE LEO AntonioGIORNATA TECNICA 18/04  | DE LEO Antonio
GIORNATA TECNICA 18/04 | DE LEO Antonio
 
GIORNATA TECNICA 18/04 | BENANTI Alessandro
GIORNATA TECNICA 18/04 | BENANTI AlessandroGIORNATA TECNICA 18/04 | BENANTI Alessandro
GIORNATA TECNICA 18/04 | BENANTI Alessandro
 
GIORNATA TECNICA DA AQP 18/04 | ZONNO Serena
GIORNATA TECNICA DA AQP 18/04 | ZONNO SerenaGIORNATA TECNICA DA AQP 18/04 | ZONNO Serena
GIORNATA TECNICA DA AQP 18/04 | ZONNO Serena
 
GIORNATA TECNICA 18/04 | LITTERIO Raffaele
GIORNATA TECNICA 18/04 | LITTERIO RaffaeleGIORNATA TECNICA 18/04 | LITTERIO Raffaele
GIORNATA TECNICA 18/04 | LITTERIO Raffaele
 
GIORNATA TECNICA DA AQP 18/04 | MOTTA Simone
GIORNATA TECNICA DA AQP 18/04 | MOTTA SimoneGIORNATA TECNICA DA AQP 18/04 | MOTTA Simone
GIORNATA TECNICA DA AQP 18/04 | MOTTA Simone
 

Pres Tesi LM-2016+transcript_ita

  • 1. UNIVERSIT ´A DEGLI STUDI DI BERGAMO DIPARTIMENTO DI INGEGNERIA CORSO DI LAUREA MAGISTRALE IN INGEGNERIA INFORMATICA RETI NEURALI DI CONVOLUZIONE PER LA VISIONE ARTIFICIALE Relatore Mario Verdicchio Laureando Daniele Ettore Ciriello 13 giugno 2016 Benvenuti e grazie di essere presenti, io sono Daniele Ciriello e ho scritto la mia tesi magistrale su reti neurali di convoluzione per la visione artificiale.
  • 2. Indice Introduzione Fondamenti di reti neurali artificiali Stato dell’arte Implementazione Risultati Sviluppi futuri 2 di 32 RETI NEURALI DI CONVOLUZIONE PER LA VISIONE ARTIFICIALE La presentazione si divide in sei parti, inizialmente introduco la visione artificiale e le reti neurali, di cui mostro anche i concetti fondamentali e lo stato dell’arte per quanto riguarda compiti di classificazione di immagini, dopodich´e presento le diverse parti del progetto implementato ed i risultati di alcune sperimentazioni, per concludere con possibili sviluppi futuri e applicazioni nella pratica.
  • 3. Indice Introduzione Fondamenti di reti neurali artificiali Stato dell’arte Implementazione Risultati Sviluppi futuri 3 di 32 RETI NEURALI DI CONVOLUZIONE PER LA VISIONE ARTIFICIALE Iniziamo quindi con l’introdurre i concetti di visione artificiale e di rete neurale artificiale.
  • 4. Visione artificiale Acquisizione, processo, analisi e comprensione di immagini e dati ad alta dimensionalit`a Esempi di applicazioni: Processi di controllo Navigazione Rilevamento di eventi Organizzazione dell’informazione Interazione 4 di 32 RETI NEURALI DI CONVOLUZIONE PER LA VISIONE ARTIFICIALE La visione artificiale `e una branchia dell’informatica che si occupa dell’acquisizione, processo, analisi e comprensione di informazioni contenute in immagini e dati ad alta dimensionalit`a (provenienti) dal mondo reale, con lo scopo di produrre informazione numerica o simbolica, ad esempio in forma di decisione. Rappresenta la base per molti sistemi di intelligenza artificiale, trovando applicazioni ad esempio nei processi di controllo, nei sistemi di navigazione, di organizzazione dell’informazione e sistemi di interazione uomo macchina. Il nucleo di queste applicazioni sono spesso problemi di classificazione di immagini, in cui un sistema deve decidere la classe di appartenenza di un’immagine tra un insieme di classi predefinite.
  • 5. Reti neurali e visione artificiale Paradigma per la trattazione dell’informazione ispirato al sistema nervoso biologico Modelli decisionali non lineari altamente scalabili Impostano autonomamente i parametri ideali mediante algoritmi di apprendimento Necessitano di grandi insiemi di dati di addestramento 5 di 32 RETI NEURALI DI CONVOLUZIONE PER LA VISIONE ARTIFICIALE Negli ultimi anni `e stato possibile ottenere progressi notevoli grazie alle reti neurali di convoluzione, che oggi costituiscono lo stato dell’arte nella risoluzione di problemi di classificazione di immagini ed altri problemi di visione artificiale. Le reti neurali artificiali sono modelli ispirati dal sistema nervoso biologico che Possono rappresentare modelli decisionali non lineari altamente scalabili, utilizzando algoritmi di apprendimento si permette alla rete di impostare autonomamente i parametri che minimizzano il costo dell’errore.
  • 6. Indice Introduzione Fondamenti di reti neurali artificiali Stato dell’arte Implementazione Risultati Sviluppi futuri 6 di 32 RETI NEURALI DI CONVOLUZIONE PER LA VISIONE ARTIFICIALE Vediamo dunque alcuni concetti fondamentali delle reti neurali artificiali.
  • 7. Unit`a neurali Unit`a neurale x1 x2 ... xn b y w1 w2 wn y = f(w · x + b) w: pesi b: scostamento f: funzione di attivazione Funzioni di attivazione . . . . . . 7 di 32 RETI NEURALI DI CONVOLUZIONE PER LA VISIONE ARTIFICIALE L’elemento alla base delle reti neurali artificiali `e l’unit`a neurale o neurone artificiale, che prende in ingresso n valori da x a x, a cui corrispondono n pesi w, ingressi e pesi possono essere visti come due vettori x e w, L’uscita dell’unit`a neurale corrisponde quindi all’applicazione di una funzione detta di attivazione alla somma tra prodotto scalare tra ingressi e pesi sommato e un parametro b detto scostamento. La funzione di attivazione pi`u semplice e la prima ad essere utilizzata `e la funzione a gradino, le unit`a neurali che la utilizzano sono detti percettroni. La funzione di attivazione pi`u celebre in letteratura, anche se ormai non pi`u utilizzata, `e la funzione sigmoidale, anche detta funzione logistica In letteratura si trovano anche funzioni simili alla funzione logistica, come la funzione tangente iperbolica, la funzione di attivazione pi`u utilizzata oggi `e la funzione di raddrizzamento e le unit`a neurali che la utilizzano sono chiamate ReLU (rectifier linear unit).
  • 8. Reti neurali feed-forward II strato na- scosto I strato na- scosto strato di input strato di output y1 = x, yj = f(Wj · y −1 + bj ) 8 di 32 RETI NEURALI DI CONVOLUZIONE PER LA VISIONE ARTIFICIALE Disponendo a strati questi elementi si costituiscono le reti neurali, in particolare, I modelli feed-forward classici prevedono la composizione di diversi strati in cui, il primo strato `e chiamato di ingresso e rappresenta gli ingressi della rete, l’ultimo strato `e chiamato di uscita perch´e riporta l’uscita della rete, e gli strati interni sono chiamati nascosti in quanto non sono n´e di ingresso e n´e di uscita. Strati come questi si chiamano completamente connessi o affini, in cui gli ingressi di ogni neurone corrispondono alle uscite di tutti i neuroni dello strato precedente.
  • 9. Strati di convoluzione Gruppi di neuroni che condividono i pesi tra loro Ciascun neurone prende in ingresso una porzione di x Molto efficienti nella trattazione di immagini x1 x2 x3 x4 x5 A A A A y1 y2 y3 y4 ... xn−1 xn A yn 9 di 32 RETI NEURALI DI CONVOLUZIONE PER LA VISIONE ARTIFICIALE Esistono diverse altre tipologie di strato, un tipo di strato molto importante, soprattutto per quanto riguarda problemi di visione artificiale e piu in generale di pattern recognition, `e lo strato di convoluzione. Lo strato di convoluzione consiste in gruppi di neuroni, in cui ogni neurone, prende in ingresso una porzione di x, e condivide i valori dei pesi e dello scostamento con gli altri neuroni dello stesso gruppo. In immagine di vede uno strato di convoluzione monodimensionale composto da neuroni di tipo A che pu`o prendere il nome di filtro e prende in ingresso un segmento di x, nel caso di problemi di visione artificiale gli strati sono bidimensionali e prendono quindi in ingresso delle aree di x.
  • 10. Altre tipologie di strato Pooling Softmax Normalizzazione 10 di 32 RETI NEURALI DI CONVOLUZIONE PER LA VISIONE ARTIFICIALE Gli strati di convoluzione sono spesso intervallati da strati di pooling che effettuano un sotto-campionamento dell’ingresso mantendendone inalterato il numero di canali, un altro strato importante `e lo strato softmax, utilizzato come strato di uscita nei problemi di classificazione, in quanto i valori del vettore y in uscita alla funzione softmax possono essere visti come una distribuzione di probabilit`a. Un altro strato importante `e lo strato di normalizzazione che normalizza appunto i valori in un intervallo unitario lungo ciascun canale dell’ingresso . La modularit`a di questi semplici concetti permette la composizione di modelli complessi e specifici.
  • 11. Indice Introduzione Fondamenti di reti neurali artificiali Stato dell’arte Implementazione Risultati Sviluppi futuri 11 di 32 RETI NEURALI DI CONVOLUZIONE PER LA VISIONE ARTIFICIALE Per esporre lo stato dell’arte mostro i risultati di una competizione che si tiene annualmente attraendo centinaia di istituzioni da tutto il mondo, e che `e diventata un punto di riferimento per la valutazione di sistemi di visione artificiale
  • 12. ILSVRC ImageNet Large-Scale Visual Recognition Challenge 1000 classi di oggetti 1.2 M immagini di addestramento 500 k immagini di validazione 12 di 32 RETI NEURALI DI CONVOLUZIONE PER LA VISIONE ARTIFICIALE ILSRVC `e un a competizione composta da diversi compiti di visione artificiale come localizzazione e classificazione di oggetti in immagini immagini, con il passare degli anni sono nati anche altri sotto-task come la classificazione di scene o la localizzazione e classificazione di oggetti nei filmati. Questa competizione `e diventata ormai un punto di riferimento per l’analisi prestazionale delle reti di convoluzione su larga scala. Il task di classificazione prevede un insieme di addestramento di 1,2 milioni di immagini e 1000 classi, nell’anno 2015 sono stati superati i livelli di errore medio di un essere umano.
  • 13. ILSVRC Blu: visione artificiale tradizionale Viola: deep learning Rosso: capacit`a umane 13 di 32 RETI NEURALI DI CONVOLUZIONE PER LA VISIONE ARTIFICIALE In figura si pu`o vedere come da quando sono stati utilizzati sistemi basati su apprendimento profondo, ovvero algoritmi di apprendimento di reti aventi pi`u di uno strato nascosto, `e stato possibile ottenere progressi notevoli, fino a superare le capacit`a umane medie nel 2015. Si pu`o vedere anche come i modelli neurali abbiano ormai sostituito gli approcci di visione artificiale classici.
  • 14. Reti residuali 14 di 32 RETI NEURALI DI CONVOLUZIONE PER LA VISIONE ARTIFICIALE la rete che ha vinto tutte le competizioni nell’anno 2015 `e un modello di convoluzione chiamato residuale, proposto dal team MSRA, e consiste in una rete di convoluzione a cui viene applicato il concetto dell’apprendimento residuale. La struttura di base in centro viene chiamata rete piana ed `e inspirata alle reti VGG, modello presentato alla stessa competizione l’anno precedente (in alto), riportando un residuo dei valori di ingresso in uscita ad un gruppo di strati di convoluzione utilizzando le cosiddette connessioni scorciatoia, creando quindi una rete di convoluzione residuale come quella in basso
  • 15. Indice Introduzione Fondamenti di reti neurali artificiali Stato dell’arte Implementazione Risultati Sviluppi futuri 15 di 32 RETI NEURALI DI CONVOLUZIONE PER LA VISIONE ARTIFICIALE Il mio obiettivo era quindi di riprodurre i risultati ottenuti con il modello residuale, su dataset pi`u semplici.
  • 16. Panoramica del progetto PyFunt Libreria per lo sviluppo e l’addestramento di reti neurali di convoluzione PyDatSet Libreria per il caricamento di diversi dataset e collezione di funzioni per aumentare artificialmente gli insiemi di addestramento Deep-residual-networks-pyfunt Implementazione e addestramento delle reti residuali parametriche su diversi dataset 16 di 32 RETI NEURALI DI CONVOLUZIONE PER LA VISIONE ARTIFICIALE Il progetto si divide in tre repository principali sviluppate nel linguaggio Python. Pyfunt che contiene la libreria per lo sviluppo e l’addestramento di reti neurali e reti neurali di convoluzione, Pydatset che consiste in una collezione di funzioni per il caricamento di diversi dataset in ambiente python e funzioni per l’aumento artificiale dei dati di addestramento, e la repository che contiene l’implementazione del modello residuale parametrico pi`u l’applicazione principale che utilizza le altre due librerie per caricare i dataset ed effettuarne l’addestramento. Tutti e tre i repository sono pubblicati con licenza open-source su github in modo che chiunque voglia possa utilizzarli e contribuire allo sviluppo.
  • 17. Package Diagram 17 di 32 RETI NEURALI DI CONVOLUZIONE PER LA VISIONE ARTIFICIALE in questo diagramma si pu`o vedere come le diverse parti del progetto interagiscono tra loro per effettuare l’apprendimento del modello residuale, in particolare l’applicazione principale crea un oggetto resnet che utilizza le implementazioni degli strati e le funzioni di attivazione fornite da pyfunt, dopodich´e viene creato un oggetto solver fornito dalla stessa libreria, a cui si passa il modello, l’insieme dei dati di addestramento come numero di epoche e tasso di apprendimento. pyfunt contiene anche utilit`a per la verifica della corretta implementazione degli strati e per la visualizzazione dei pesi del primo strato di convoluzione.
  • 18. Indice Introduzione Fondamenti di reti neurali artificiali Stato dell’arte Implementazione Risultati Sviluppi futuri 18 di 32 RETI NEURALI DI CONVOLUZIONE PER LA VISIONE ARTIFICIALE Passiamo quindi ai risultati delle sperimentazioni su diversi dataset
  • 19. CIFAR-10 - Canadian Institute For Advanced Research 60 k immagini (50 k + 10 k) RGB 32x32 10 classi: aeroplano automobile uccello gatto cervo cane rana cavallo nave camion 19 di 32 RETI NEURALI DI CONVOLUZIONE PER LA VISIONE ARTIFICIALE Volendo replicare i risultati delle reti residuali ho addestrato il modello da me implementato sul dataset CIFAR 10, composto da 60000 immagini RGB da 32 pixel per lato spalmate su 10 classi disgiunte. Questo `e un dataset molto semplice rispetto a quello mostrato precedentemente ma essendo molto vario permette di verificare facilmente se un modello apprende correttamente dagli esempi.
  • 20. CIFAR-10 – Risultati Accuratezza: 90.41 %; parametri: ˜248 k 20 di 32 RETI NEURALI DI CONVOLUZIONE PER LA VISIONE ARTIFICIALE Per valutare il comportamento di una rete si possono analizzare le curve di addestramento, che riportano il valore della media mobile del costo ad ogni iterazione, ed i valori di errore sui dati di addestramento le linee tratteggiate e l’errore sui dati di validazione le linee continue. In questo caso, utilizzando una rete composta da 20 strati, `e evidente osservando gli errori il fenomeno tipico di questi modelli, chiamato sovra-dattamento, secondo cui la rete utilizza i numerosi parametri per apprendere caratteristiche specifiche dell’insieme di addestramento, senza generalizzare abbastanza sull’insieme di validazione. Memorizzando in un certo senso le immagini di addestramento. Aumentando artificialmente l’insieme dei dati di addestramento `e possibile ridurre questo fenomeno ed ottenere migliori risultati anche sull’insieme di validazione.
  • 21. MNIST – Mixed National Institute of Standards and Technology 70 k immagini (60 k + 10 k) B/N 28x28 di cifre scritte a mano 10 classi (cifre da 0 a 9) 21 di 32 RETI NEURALI DI CONVOLUZIONE PER LA VISIONE ARTIFICIALE Il dataset mnist `e stato presentato per la prima volta nel 1991 ed composto da 60 mila immagini bianco/nero da 28 pixel per lato raffiguranti cifre scritte a mano
  • 22. MNIST – Risultati Accuratezza: 99.64 %; parametri: 442 k 22 di 32 RETI NEURALI DI CONVOLUZIONE PER LA VISIONE ARTIFICIALE Un altro modo per ridurre il fenomeno del sovra-adattamento nei modelli residuali `e aumentarne il numero di strati e del numero di neuroni, in questo caso per i primi due esperimenti ho dimezzato il numero di neuroni utilizzati nel caso precedente. Utilizzando una rete da 32 strati ho raggiunto un accuratezza del 99.64%, che vuol dire che la rete classifica erroneamente 36 immagini alla fine dell’addestramento. Il numero dei filtri di ciascuno strato parte in questo caso da 16 e raddoppia sporadicamente fino a 64
  • 23. MNIST – Risultati 23 di 32 RETI NEURALI DI CONVOLUZIONE PER LA VISIONE ARTIFICIALE In quest’immagine si possono vedere tutte e 36 le immagini classificate erroneamente dalla rete, al centro di ogni cella vi `e l’immagine originale, in alto a sinistra la classe corretta, in basso a sinistra la classificazione errata ed in basso a destra la seconda predizione per confidenza. Si pu`o vedere quindi come in molti casi la seconda classificazione per probabilit`a sia la maggior parte delle volte corretta, inoltre si possono vedere alcuni esempi che sono praticamente indistinguibili anche per un occhio umano.
  • 24. SFDDD - State Farm Distracted Driver Detection ˜22 k immagini RGB 640x480 di guidatori 10 classi di distrazione: guida sicura scrivendo al telefono (R) parlando al telefono (R) scrivendo al telefono (L) parlando al telefono (L) toccando la radio bevendo raggiungendo i sedili posteriori parlando con il passeggero truccandosi o pettinandosi 24 di 32 RETI NEURALI DI CONVOLUZIONE PER LA VISIONE ARTIFICIALE L’ultimo dataset su cui ho addestrato il modello residuale `e stato fornito dall’agenzia assicurativa State Farm in collaborazione con kaggle, un ente che raccoglie diverse competizioni in ambito dell’apprendimento automatico. In questo caso l’agenzia assicurativa ha voluto verificare i livelli di precisione ottenibili nella classificazione di immagini RGB 640x480 di guidatori in 10 classi di distrazione: Guida sicura, scrivendo al telefono con la mano destra, parlando al telefono con la mano destra, scrivendo al telefono con la mano sinistra, toccando la radio, eccetera... Per semplificare il dataset e l’addestramento, ho ridimensionato le immagini a 64 per 48 pixel, selezionando per l’addestramento una porzione casuale di ciascuna immagine ad ogni iterazione, e per la validazione la porzione 32 per 32 centrale.
  • 25. SFSDDD – Risultati Accuratezza: 99.75 %, parametri: ˜636 k 25 di 32 RETI NEURALI DI CONVOLUZIONE PER LA VISIONE ARTIFICIALE Essendo che la competizione non `e ancora terminata, l’insieme di validazione non `e pubblico, quindi ho utilizzato un insieme di 2000 immagini estratte casualmente dalle circa 22 mila dell’insieme di addestramento. Analizzando le curve di apprendimento di due reti residuali di rispettivamente 32 e 44 strati. nonostante la differenza nei valori del costo `e pressoch´e impercettibile, e nonostante la rete riesca a riconoscere la totalit`a dei campioni di addestramento in entrambi i modelli, con il modello da 44 strati ho raggiunto un’accuratezza del 99.75 per cento sul mio insieme di validazione.
  • 26. SFSDDD – Mappe di salienza 26 di 32 RETI NEURALI DI CONVOLUZIONE PER LA VISIONE ARTIFICIALE Valutando e visualizzando i valori delle derivate del costo, rispetto alle immagini di ingresso, `e possibile osservare le cosiddette mappe di salienza, in cui le zone pi`u chiare rappresentano le porzioni di immagine che hanno maggiormente contribuito alla classificazione corretta da parte della rete, in questo caso ad esempio vi sono alcuni esempi per la classe ”parlando al telefono con la mano destra”. `e interessante notare ad esempio come influiscono le zone del volante dove solitamente risiedono le mani o le zone dove dovrebbe risiedere il braccio, nella quarta immagine si pu`o vedere invece che la zona che ha influito maggiormente `e quella della testa.
  • 27. Indice Introduzione Fondamenti di reti neurali artificiali Stato dell’arte Implementazione Risultati Sviluppi futuri 27 di 32 RETI NEURALI DI CONVOLUZIONE PER LA VISIONE ARTIFICIALE Veniamo quindi alla conclusione in cui descrivo alcune possibilit`a di sviluppo futuro e di applicazioni per il progetto implementato.
  • 28. Sviluppi futuri Estensione del framework Implementazione di altri modelli Addestramento su altri dataset 28 di 32 RETI NEURALI DI CONVOLUZIONE PER LA VISIONE ARTIFICIALE In un futuro prossimo mi piacerebbe continuare il progetto, estendendo la libreria implementata, ad esempio permettendo l’utilizzo di librerie per il calcolo accelerato su GPU. o sviluppando altre tipologie di strato, implementando altre versioni del modello residuale o nuovi modelli che verranno presentati in futuro, o addestrando la rete su altri dataset o per la risoluzione di altri problemi inerenti alla visione artificiale.
  • 29. Possibili applicazioni Medicina . . . Robotica . . . Navigazione . . . Fisica, scienze naturali, intrattenimento e arte, ... 29 di 32 RETI NEURALI DI CONVOLUZIONE PER LA VISIONE ARTIFICIALE Alcune possibili applicazioni in cui vengono utilizzate reti di convoluzione sono in medicina per la diagnosi di disagi a livello toracico a partire dalle immagini di radiografie, localizzazione e segmentazione di masse tumorali nel cervello, o del pancreas dalle immagini delle sezioni del tronco, utile in quanto il pancreas varia molto di dimensione e forma da persona a persona. In robotica, nei sistemi di coordinazione occhio mano in bracci a 7 gradi di libert`a, per migliorare le capacit`a locomotorie di robot su terreni irregolari tramite algoritmi di reinforcement learning, e per il miglioramento dei rapporti tra robot domestici e umani tramite reti per la classificazione di espressioni facciali. In navigazione vengono utilizzate in modo massivo nei sistemi per veicoli autonomi, ad esempio per il rilevamento e la classificazione di strade a partire dalle immagini satellitari, classificazione di immagini di cartelli stradali. Inoltre sono state utilizzati modelli neurali con successo in fisica, scienze naturali per esempio per la classificazione di fiori in botanica o di plancton in biologia, e molti altri ancora.
  • 30. UNIVERSIT ´A DEGLI STUDI DI BERGAMO DIPARTIMENTO DI INGEGNERIA CORSO DI LAUREA MAGISTRALE IN INGEGNERIA INFORMATICA RETI NEURALI DI CONVOLUZIONE PER LA VISIONE ARTIFICIALE Relatore Mario Verdicchio Laureando Daniele Ettore Ciriello 13 giugno 2016 Grazie dell’attenzione.
  • 31. Crediti delle immagini (1 di 2) Slide Immagine Crediti URL (http://) 10 Super Vision UofT goo.gl/fbyXSK 10 UvA-Euvision UvA goo.gl/ltNvaP 12 ILSRVC samples ImageNet goo.gl/PvFCAv 13 ILSRVC results 1 NVIDIA goo.gl/QkG3Nf 13 ILSRVC results 2 NVIDIA goo.gl/THMZ1X 14 ResNet MSRA goo.gl/uR0ZXL 29 Medi1 NVIDIA goo.gl/DdPSvD 29 Medi2 BRATS goo.gl/rGgz22 29 Medi3 SPIE goo.gl/R5mbmj 29 Rob1 Google goo.gl/6BycQ7 29 Rob2 UBC goo.gl/A585Iz 29 Rob3 MSRC goo.gl/3exWqJ 31 di 32 RETI NEURALI DI CONVOLUZIONE PER LA VISIONE ARTIFICIALE
  • 32. Crediti delle immagini (2 di 2) Slide Immagine Crediti URL (http://) 29 Nav1 Google goo.gl/DFgPcl 29 Nav2 DeepOSM goo.gl/sR72BF 29 Nav4 IDSIA goo.gl/SR16Uk 32 di 32 RETI NEURALI DI CONVOLUZIONE PER LA VISIONE ARTIFICIALE