Data Mining - unich.it€¦ · 03/02/20 Data Mining - Reti neurali artificiali 2 Cosa è una rete...
Transcript of Data Mining - unich.it€¦ · 03/02/20 Data Mining - Reti neurali artificiali 2 Cosa è una rete...
Data MiningReti neurali artificiali
Prof. Gianluca AmatoCorso di Laurea Magistrale in “Digital Marketing”
Università “G. d’Annunzio” di Chieti-PescaraUltimo aggiornamento: 3 feb 2020
03/02/20 Data Mining - Reti neurali artificiali 2
Cosa è una rete neurale artificiale
● Nasce nell’ambito delle ricerche in intelligenza artificiale
● È un modello predittivo:● Può essere usato sia per problemi di classificazione
che per problemi di regressione● È basato sul funzionamento del cervello umano
● Il cervello umano è composto da circa 100 miliardi di oggetti chiamati neuroni● Ogni neurone svolge una funzione molto elementare● Il numero elevato di neuroni e delle loro connessioni dà
origine all’intelligenza umana
03/02/20 Data Mining - Reti neurali artificiali 3
Il neurone biologico
● Il neurone somma i segnali provenienti dai dendriti e “spara” un impulso dagli assoni quando si supera una certa soglia.
03/02/20 Data Mining - Reti neurali artificiali 4
Il vero neurone biologico
03/02/20 Data Mining - Reti neurali artificiali 5
Cibernetica
● I primi esperimenti con neuroni artificiali nascono nel campo della cibernetica.
● Obiettivo: costruire cervelli artificiali per capire meglio come funziona il cervello degli esseri viventi
● Si tratta di macchine analogiche e non di computer digitali.
● 1948, Elmer and Elsie, le tartarughe di W. Grey Walter.
● ELectroMEchanical Robot, Light-Sensitive.
● Robot autonomi sensibili alla luce.
03/02/20 Data Mining - Reti neurali artificiali 6
Nascita del percettrone
● 1957, Perceptron, Frank Rosenblatt: la prima rete neurale artificiale● Il New York Times dell’8 luglio 1958 scrive:
● The Navy revealed the embryo of an electronic computer today that it expects will be able to walk, talk, see, write, reproduce itself and be conscious of its existence.
03/02/20 Data Mining - Reti neurali artificiali 7
Il percettrone
03/02/20 Data Mining - Reti neurali artificiali 8
Percettrone: un esempio
La classe è 1 se almeno due dei tre attributi X sono 1, altrimenti è -1
X1 X2 X3 Y1 0 0 -11 0 1 11 1 0 11 1 1 10 0 1 -10 1 0 -10 1 1 10 0 0 -1
X1
X2
X3
Y
Black box
Output
Input
03/02/20 Data Mining - Reti neurali artificiali 9
Percettrone: un esempio
X1 X2 X3 Y1 0 0 -11 0 1 11 1 0 11 1 1 10 0 1 -10 1 0 -10 1 1 10 0 0 -1
X1
X2
X3
Y
Black box
0.3
0.3
0.3 t=0.4
Outputnode
Inputnodes
0 if1
0 if1)( where
)4.03.03.03.0( 321
x
xxsign
XXXsignY
03/02/20 Data Mining - Reti neurali artificiali 10
Percettrone: un esempio
X1 X2 X3 Y1 0 0 -11 0 1 11 1 0 11 1 1 10 0 1 -10 1 0 -10 1 1 10 0 0 -1
X1
X2
X3
Y
Black box
0.3
0.3
0.3 t=0.4
Outputnode
Inputnodes
Y=sign(0.3 X1+0.3 X2+0.3 X3−0.4)
X1 = 1, X2 = 0, X3 =1 → Y = sign(0.2) = 1
03/02/20 Data Mining - Reti neurali artificiali 11
Percettrone: un altro esempio
● Insieme di dati MNIST: immagini di cifre con risoluzione di 28 × 28 pixel.● Vogliamo riconoscere una cifra.● Un neurone per ogni cifra.● wi : uno per input/pixel.
● Alcuni positivi, per attivarsi con la cifra cercata.● Alcuni negativi, per escludere altre cifre.
03/02/20 Data Mining - Reti neurali artificiali 12
Percettrone: un altro esempio
● Insieme di dari MNIST: immagini di cifre con risoluzione 28 × 28.● Vogliamo riconoscere una cifra.● Un neurone per ogni cifra.● wi : uno per input/pixel.
● Alcuni positivi, per attivarsi con la cifra cercata.● Alcuni negativi, per escludere altre cifre.
03/02/20 Data Mining - Reti neurali artificiali 13
Come si stabiliscono i pesi?
● Inizializzare i pesi in maniera casuale ● w(0) = (w0, w1, …, wd)
● Ripetere● Per ognuna delle istanze di addestramento (xi, yi)
– Calcolare f(w(k), xi) valore di output del percettrone– Aggiornare i pesi
dove λ è un iper-parametro chiamato learning rate
Finché non si raggiunge una condizione di stop
w j(k+1)
=w j(k )
+λ ( y i−f (w(k ) , xi)) xij
03/02/20 Data Mining - Reti neurali artificiali 14
Come si stabiliscono i pesi
● Formula aggiornamento pesi:
● Intuizione● Ci basiamo sull’errore e = yi – f(w,xi):
● Consideriamo il caso xij > 0
– Se y=f(w,x), e = 0, non ci sono aggiornamenti– Se y>f(w,x), e > 0, il wj peso deve essere incrementato
per ridurre l’errore– Se y<f(w,x), e < 0, il peso wj deve essere diminuito per
ridurre l’errore (in valore assoluto)
w j(k+1)
=w j(k )
+λ ( y i−f (w(k ) , xi)) xij
03/02/20 Data Mining - Reti neurali artificiali 15
Esempio di apprendimento
X1 X2 X3 Y1 0 0 -11 0 1 11 1 0 11 1 1 10 0 1 -10 1 0 -10 1 1 10 0 0 -1
Epoch w0 w1 w2 w3
0 0 0 0 01 -0.2 0 0.2 0.22 -0.2 0 0.4 0.23 -0.4 0 0.4 0.24 -0.4 0.2 0.4 0.45 -0.6 0.2 0.4 0.26 -0.6 0.4 0.4 0.2
1.0λ
w0 w1 w2 w3
0 0 0 0 01 -0.2 -0.2 0 02 0 0 0 0.23 0 0 0 0.24 0 0 0 0.25 -0.2 0 0 06 -0.2 0 0 07 0 0 0.2 0.28 -0.2 0 0.2 0.2
Prima epoca Riassunto epoche
03/02/20 Data Mining - Reti neurali artificiali 16
Capacità del percettrone (1)
● Poiché f(w,x) è una combinazione lineare delle variabili in input, la frontiera di decisione è lineare (un iper-piano)
● Per problemi che non sono separabili linearmente, il percettrone fallisce.
03/02/20 Data Mining - Reti neurali artificiali 17
Capacità del percettrone (2)
● Esempio di problema non linearmente separabile
XOR Data
x1 x2 y0 0 -11 0 10 1 11 1 -1
21 xxy
03/02/20 Data Mining - Reti neurali artificiali 18
Quanto funziona in pratica?
● Nel riconoscimento delle immagini MNIST, il tasso di errore è del 12%
● Si può fare di meglio?● Sì, ma servono delle reti multistrato
03/02/20 Data Mining - Reti neurali artificiali 19
Reti multistrato e XOR
● Le reti multistrato possono risolvere anche problemi non linearmente separabili
XOR Data
n1
n2
n3
n4
n5
x1
x2
InputLayer
HiddenLayer
OutputLayer
y
w31
w32
w41
w42
w53
w54
03/02/20 Data Mining - Reti neurali artificiali 20
Apprendimento con reti multistrato
● Nella regola di apprendimento del percettrone compare il termine di errore e = y – f(x,w)● Come determinare l’errore nei nodi interni, per i quali il
valore reale y non è noto?● Si potrebbe approssimare l’errore nei nodi interni con
l’errore nei nodi di output● Non si capisce come modifiche ai nodi interni
influiscono sull’errore complessivo● Nessuna garanzia che il processo di aggiornamento dei
pesi converga
03/02/20 Data Mining - Reti neurali artificiali 21
Il primo inverno delle reti neurali1969-1981
● 1969, esce il libro “Perceptrons”, di Marvin Minsky e Seymour Papert: prima analisi matematica di un rete neurale.
● Descrive i fallimenti (XOR), i meriti e il futuro (reti multistrato) dei percettroni.
● Ma nessuno sa come addestrare efficacemente reti multistrato.
03/02/20 Data Mining - Reti neurali artificiali 22
Il primo inverno delle reti neurali1969-1981
● 1969, esce il libro “Perceptrons”, di Marvin Minsky e Seymour Papert: prima analisi matematica di un rete neurale.
● Descrive i fallimenti (XOR), i meriti e il futuro (reti multistrato) dei percettroni.
● Ma nessuno sa come addestrare efficacemente reti multistrato.
03/02/20 Data Mining - Reti neurali artificiali 23
Rinascita, 1982-1993
● 1974, Paul Werbos, Beyond Regression: New Tools for Prediction and Analysis in the Behavioral Sciences, PhD thesis:
● algoritmo back-propagation;● è ora possibile addestrare reti neurali con più di uno strato.
● 1986, Geoffrey Hinton e David Rumelhart rendono popolare la back-propagation.
● Reinforcement Learning, tecnica di apprendimento che non richiede un insieme di addestramento:
● 1995, TD-gammon, una rete neurale addestrata con reinforcement learning che gioca a backgammon al livello di un campione del mondo.
03/02/20 Data Mining - Reti neurali artificiali 24
Funzioni di attivazione
● Nelle reti multistrato, la funzione di attivazione a scalino è spesso rimpiazzata da altre
● Funzioni di attivazioni più comuni:
03/02/20 Data Mining - Reti neurali artificiali 25
Algoritmo di back-propagation
● I dettagli sono un po’ complessi, ma si tratta di un caso speciale di un metodo generale noto come “discesa del gradiente”● C’è una funzione di errore che determina la distanza tra
i dati desiderati e quelli ottenuti veramente. – Esempio (f è la funzione calcolata dall’intera rete neurale)
E=∑i=1
N
Loss( y i , yi)
Loss( y , y)=( y− y)2
y i= f (w , xi)
03/02/20 Data Mining - Reti neurali artificiali 26
Esempio di funzione di errore
● Si vuole minimizzare l’errore. Per far ciò, si modificano leggermente i pesi nella direzione in cui l’errore scende.
03/02/20 Data Mining - Reti neurali artificiali 27
Minimi locali
● Talvolta il metodo di discesa del gradiente rimane bloccato su minimi locali
03/02/20 Data Mining - Reti neurali artificiali 28
Reti feed-forward
● Si dice profonda (deep) se ha molti (≥ 3) strati nascosti, altrimenti si dice superficiale (shallow)
03/02/20 Data Mining - Reti neurali artificiali 29
Disegno di una rete feed-forward
● Numero di nodi nello strato di input● Un input per ogni attributo binario o continuo● k o log2 k nodi per ogni attributo categoriale con k valori
● Numero di nodi nello strato di output● Un output per un problema di classificazione binario● k o log2 k nodi nel caso di k classi
● Numero di nodi negli strati nascosti● Numero di strati nascosti● Pesi iniziali● Learning rate
03/02/20 Data Mining - Reti neurali artificiali 30
Il secondo inverno delle reti neurali1994 - 2006
● 1991, Sepp Hochreiter, Untersuchungen zu dynamischen neuronalen Netzen, Diploma thesis:
● La back-propagation applicata a reti neurali profonde soffre del problema del “vanishing gradient”;
● Effetto simile al libro Perceptrons: fine della ricerca.● Le reti superficiali (shallow) possono essere usate solo per
compiti semplici.● Le tecniche usate per il backgammon non funzionano, ad
esempio, su scacchi e Go.● Ma Deep Blue nel 1997 sconfigge il campione del mondo di
scacchi usando tecniche più tradizionali.● Appaiono altre tecniche promettenti non basate su reti neurali:
random forest e support vector machine.
03/02/20 Data Mining - Reti neurali artificiali 31
Gli irriducibili
● Alcuni ricercatori perseverano a lavorare sulle reti neurali● Ad esempio il gruppo dei canadesi in foto: Geoffrey Hinton,
Yann LeCun, Yoshua Bengio, che lavorano grazie ai finanziamenti del Canadian Institute for Advanced Research (CIFAR).
● A partire dal 2006 si ottengono vari successi che rendono possibile l’addestramento delle reti profonde.
● Popolarizzano il termine Deep Learning.
03/02/20 Data Mining - Reti neurali artificiali 32
Deep Learning (1)
● Una diversa funzione di perdita (cross-entropy):
● Una diversa funzione di attivazione (ReLU = Rectified Linear Unit):
● Inizializzazione “furba” dei pesi iniziali (pre-training)
Loss( y , y)=− y log y−(1− y) log (1− y)
03/02/20 Data Mining - Reti neurali artificiali 33
Deep Learning (2)
● Varie tecniche per evitare l’overfitting● Reti neurali convoluzionali per il trattamento di immagini
– Invarianza per traslazione● La tecnica del dropout
03/02/20 Data Mining - Reti neurali artificiali 34
Dopo il 2006 (1)
● Competizione MNIST per il riconoscimento di cifre scritte a mano vinto con un tasso di errore sotto lo 0.3% (2006).
● Riconoscimento vocale con tasso d’errore del 23% (2011).
● Riconoscimento di immagini con le reti convoluzionali● Vince la ILSVRC-2012 (Olympics of computer vision)
con un tasso di errore del 15.3% – il secondo classificato ha un tasso di errore del 26.2%!
● Traduzione in tempo reale di Skype: 2014.
03/02/20 Data Mining - Reti neurali artificiali 35
Dopo il 2006 (2)
● Atari Breakout:● https://www.youtube.com/watch?v=V1eYniJ0Rnk , 2015.
● AlphaGo, apprendimento supervisionato e reinforcement learning, 2016.
● Vince contro i migliori giocatori umani.● AlphaGo Zero, reinforcement learning, 2017.
● Vince contro AlphaGo senza usare nessuna conoscenza umana.
● Alpha Zero, gioca a Go, Scacchi e Shogi con reinforcement learning
● 2017, vince contro il miglior software di scacchi.
03/02/20 Data Mining - Reti neurali artificiali 36
Perché accade adesso?
● Legge di Moore: prestazioni x 2 ogni 18 mesi.● Schede grafiche (GPU): potenza computazionale a
basso costo.● Capacità di addestrare le reti neurali profonde.● Big Data: sono disponibili una enorme quantità di dati
per addestrare le reti.● 1998: MNIST, 60 10∗ 3 immagini.● 2012: ImageNet, 1.2 10∗ 6 immagini.
03/02/20 Data Mining - Reti neurali artificiali 37
Vantaggi delle reti neurali
● Le reti neurali multistrato possono approssimare qualunque funzione in maniera estremamente precisa
● Possono gestire attributi irrilevanti mettendo a 0 il loro peso
● Possono gestire attributi ridondanti dando ad essi pesi simili ma minori del peso di altri attributi
● Gestisce bene il caso di attributi che interagiscono perché i parametri vengono appresi tutti contemporaneamente
03/02/20 Data Mining - Reti neurali artificiali 38
Svantaggi delle reti neurali
● La fase di apprendimento può essere molto lenta● Non si adatta bene al trattamento di dati con attributi
mancanti● I pesi della rete non sono facilmente interpretabili da un
essere umano● Tuttavia, si può pensare che gli strati nascosti costruiscano
nuove feature (rivedere l’argomento feature extraction nelle lezioni su pre-elaborazione dei dati)
● Rischi di overfitting● Ma tecniche apposite sono state sviluppate per risolvere
questo problema● Rischio che l’addestramento si fermi ad un minimo locale