Data Mining - unich.it€¦ · 03/02/20 Data Mining - Reti neurali artificiali 2 Cosa è una rete...

38
Data Mining Reti neurali artificiali Prof. Gianluca Amato Corso di Laurea Magistrale in “Digital Marketing” Università “G. d’Annunzio” di Chieti-Pescara Ultimo aggiornamento: 3 feb 2020

Transcript of Data Mining - unich.it€¦ · 03/02/20 Data Mining - Reti neurali artificiali 2 Cosa è una rete...

Page 1: Data Mining - unich.it€¦ · 03/02/20 Data Mining - Reti neurali artificiali 2 Cosa è una rete neurale artificiale Nasce nell’ambito delle ricerche in intelligenza artificiale

Data MiningReti neurali artificiali

Prof. Gianluca AmatoCorso di Laurea Magistrale in “Digital Marketing”

Università “G. d’Annunzio” di Chieti-PescaraUltimo aggiornamento: 3 feb 2020

Page 2: Data Mining - unich.it€¦ · 03/02/20 Data Mining - Reti neurali artificiali 2 Cosa è una rete neurale artificiale Nasce nell’ambito delle ricerche in intelligenza artificiale

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

Page 3: Data Mining - unich.it€¦ · 03/02/20 Data Mining - Reti neurali artificiali 2 Cosa è una rete neurale artificiale Nasce nell’ambito delle ricerche in intelligenza artificiale

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.

Page 4: Data Mining - unich.it€¦ · 03/02/20 Data Mining - Reti neurali artificiali 2 Cosa è una rete neurale artificiale Nasce nell’ambito delle ricerche in intelligenza artificiale

03/02/20 Data Mining - Reti neurali artificiali 4

Il vero neurone biologico

Page 5: Data Mining - unich.it€¦ · 03/02/20 Data Mining - Reti neurali artificiali 2 Cosa è una rete neurale artificiale Nasce nell’ambito delle ricerche in intelligenza artificiale

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.

Page 6: Data Mining - unich.it€¦ · 03/02/20 Data Mining - Reti neurali artificiali 2 Cosa è una rete neurale artificiale Nasce nell’ambito delle ricerche in intelligenza artificiale

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.

Page 7: Data Mining - unich.it€¦ · 03/02/20 Data Mining - Reti neurali artificiali 2 Cosa è una rete neurale artificiale Nasce nell’ambito delle ricerche in intelligenza artificiale

03/02/20 Data Mining - Reti neurali artificiali 7

Il percettrone

Page 8: Data Mining - unich.it€¦ · 03/02/20 Data Mining - Reti neurali artificiali 2 Cosa è una rete neurale artificiale Nasce nell’ambito delle ricerche in intelligenza artificiale

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

Page 9: Data Mining - unich.it€¦ · 03/02/20 Data Mining - Reti neurali artificiali 2 Cosa è una rete neurale artificiale Nasce nell’ambito delle ricerche in intelligenza artificiale

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

Page 10: Data Mining - unich.it€¦ · 03/02/20 Data Mining - Reti neurali artificiali 2 Cosa è una rete neurale artificiale Nasce nell’ambito delle ricerche in intelligenza artificiale

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

Page 11: Data Mining - unich.it€¦ · 03/02/20 Data Mining - Reti neurali artificiali 2 Cosa è una rete neurale artificiale Nasce nell’ambito delle ricerche in intelligenza artificiale

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.

Page 12: Data Mining - unich.it€¦ · 03/02/20 Data Mining - Reti neurali artificiali 2 Cosa è una rete neurale artificiale Nasce nell’ambito delle ricerche in intelligenza artificiale

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.

Page 13: Data Mining - unich.it€¦ · 03/02/20 Data Mining - Reti neurali artificiali 2 Cosa è una rete neurale artificiale Nasce nell’ambito delle ricerche in intelligenza artificiale

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

Page 14: Data Mining - unich.it€¦ · 03/02/20 Data Mining - Reti neurali artificiali 2 Cosa è una rete neurale artificiale Nasce nell’ambito delle ricerche in intelligenza artificiale

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

Page 15: Data Mining - unich.it€¦ · 03/02/20 Data Mining - Reti neurali artificiali 2 Cosa è una rete neurale artificiale Nasce nell’ambito delle ricerche in intelligenza artificiale

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

Page 16: Data Mining - unich.it€¦ · 03/02/20 Data Mining - Reti neurali artificiali 2 Cosa è una rete neurale artificiale Nasce nell’ambito delle ricerche in intelligenza artificiale

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.

Page 17: Data Mining - unich.it€¦ · 03/02/20 Data Mining - Reti neurali artificiali 2 Cosa è una rete neurale artificiale Nasce nell’ambito delle ricerche in intelligenza artificiale

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

Page 18: Data Mining - unich.it€¦ · 03/02/20 Data Mining - Reti neurali artificiali 2 Cosa è una rete neurale artificiale Nasce nell’ambito delle ricerche in intelligenza artificiale

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

Page 19: Data Mining - unich.it€¦ · 03/02/20 Data Mining - Reti neurali artificiali 2 Cosa è una rete neurale artificiale Nasce nell’ambito delle ricerche in intelligenza artificiale

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

Page 20: Data Mining - unich.it€¦ · 03/02/20 Data Mining - Reti neurali artificiali 2 Cosa è una rete neurale artificiale Nasce nell’ambito delle ricerche in intelligenza artificiale

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

Page 21: Data Mining - unich.it€¦ · 03/02/20 Data Mining - Reti neurali artificiali 2 Cosa è una rete neurale artificiale Nasce nell’ambito delle ricerche in intelligenza artificiale

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.

Page 22: Data Mining - unich.it€¦ · 03/02/20 Data Mining - Reti neurali artificiali 2 Cosa è una rete neurale artificiale Nasce nell’ambito delle ricerche in intelligenza artificiale

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.

Page 23: Data Mining - unich.it€¦ · 03/02/20 Data Mining - Reti neurali artificiali 2 Cosa è una rete neurale artificiale Nasce nell’ambito delle ricerche in intelligenza artificiale

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.

Page 24: Data Mining - unich.it€¦ · 03/02/20 Data Mining - Reti neurali artificiali 2 Cosa è una rete neurale artificiale Nasce nell’ambito delle ricerche in intelligenza artificiale

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:

Page 25: Data Mining - unich.it€¦ · 03/02/20 Data Mining - Reti neurali artificiali 2 Cosa è una rete neurale artificiale Nasce nell’ambito delle ricerche in intelligenza artificiale

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)

Page 26: Data Mining - unich.it€¦ · 03/02/20 Data Mining - Reti neurali artificiali 2 Cosa è una rete neurale artificiale Nasce nell’ambito delle ricerche in intelligenza artificiale

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.

Page 27: Data Mining - unich.it€¦ · 03/02/20 Data Mining - Reti neurali artificiali 2 Cosa è una rete neurale artificiale Nasce nell’ambito delle ricerche in intelligenza artificiale

03/02/20 Data Mining - Reti neurali artificiali 27

Minimi locali

● Talvolta il metodo di discesa del gradiente rimane bloccato su minimi locali

Page 28: Data Mining - unich.it€¦ · 03/02/20 Data Mining - Reti neurali artificiali 2 Cosa è una rete neurale artificiale Nasce nell’ambito delle ricerche in intelligenza artificiale

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)

Page 29: Data Mining - unich.it€¦ · 03/02/20 Data Mining - Reti neurali artificiali 2 Cosa è una rete neurale artificiale Nasce nell’ambito delle ricerche in intelligenza artificiale

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

Page 30: Data Mining - unich.it€¦ · 03/02/20 Data Mining - Reti neurali artificiali 2 Cosa è una rete neurale artificiale Nasce nell’ambito delle ricerche in intelligenza artificiale

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.

Page 31: Data Mining - unich.it€¦ · 03/02/20 Data Mining - Reti neurali artificiali 2 Cosa è una rete neurale artificiale Nasce nell’ambito delle ricerche in intelligenza artificiale

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.

Page 32: Data Mining - unich.it€¦ · 03/02/20 Data Mining - Reti neurali artificiali 2 Cosa è una rete neurale artificiale Nasce nell’ambito delle ricerche in intelligenza artificiale

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)

Page 33: Data Mining - unich.it€¦ · 03/02/20 Data Mining - Reti neurali artificiali 2 Cosa è una rete neurale artificiale Nasce nell’ambito delle ricerche in intelligenza artificiale

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

Page 34: Data Mining - unich.it€¦ · 03/02/20 Data Mining - Reti neurali artificiali 2 Cosa è una rete neurale artificiale Nasce nell’ambito delle ricerche in intelligenza artificiale

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.

Page 35: Data Mining - unich.it€¦ · 03/02/20 Data Mining - Reti neurali artificiali 2 Cosa è una rete neurale artificiale Nasce nell’ambito delle ricerche in intelligenza artificiale

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.

Page 36: Data Mining - unich.it€¦ · 03/02/20 Data Mining - Reti neurali artificiali 2 Cosa è una rete neurale artificiale Nasce nell’ambito delle ricerche in intelligenza artificiale

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.

Page 37: Data Mining - unich.it€¦ · 03/02/20 Data Mining - Reti neurali artificiali 2 Cosa è una rete neurale artificiale Nasce nell’ambito delle ricerche in intelligenza artificiale

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

Page 38: Data Mining - unich.it€¦ · 03/02/20 Data Mining - Reti neurali artificiali 2 Cosa è una rete neurale artificiale Nasce nell’ambito delle ricerche in intelligenza artificiale

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