Apprendimento Automatico: Reti Neurali Roberto Navigli Apprendimento Automatico: Reti Neurali Cap. 4...

56
Apprendimento Automatico: Reti Neurali Roberto Navigli Roberto Navigli Apprendimento Automatico: Reti Neurali Cap. 4 [Mitchell] Cap. 20.5 [Russell & Norvi

Transcript of Apprendimento Automatico: Reti Neurali Roberto Navigli Apprendimento Automatico: Reti Neurali Cap. 4...

Page 1: Apprendimento Automatico: Reti Neurali Roberto Navigli Apprendimento Automatico: Reti Neurali Cap. 4 [Mitchell] Cap. 20.5 [Russell & Norvig]

Apprendimento Automatico: Reti NeuraliRoberto Navigli

Roberto Navigli

Apprendimento Automatico:Reti Neurali

Cap. 4 [Mitchell]Cap. 20.5 [Russell & Norvig]

Page 2: Apprendimento Automatico: Reti Neurali Roberto Navigli Apprendimento Automatico: Reti Neurali Cap. 4 [Mitchell] Cap. 20.5 [Russell & Norvig]

Apprendimento Automatico: Reti NeuraliRoberto Navigli

Storia

• Le reti neurali artificiali (Artificial Neural Networks o ANN) sono una simulazione astratta del nostro sistema nervoso, che contiene una collezione di neuroni i quali comunicano fra loro mediante connessioni dette assoni

• Il primo modello di neurone artificiale fu proposto nel 1943 da McCulloch e Pitts nei termini di un modello computazionale dell’attività nervosa (Threshold Logic Unit)– A questo modello sono seguiti altri proposti da John Von

Neumann, Marvin Minsky, Frank Rosenblatt (Percettrone) e molti altri

Page 3: Apprendimento Automatico: Reti Neurali Roberto Navigli Apprendimento Automatico: Reti Neurali Cap. 4 [Mitchell] Cap. 20.5 [Russell & Norvig]

Apprendimento Automatico: Reti NeuraliRoberto Navigli

Modello biologico ≠ Modello artificiale

• Biologico: ha l’obiettivo di imitare sistemi neurali biologici, come le funzionalità auditive e visive

• Obiettivo: verifica di ipotesi riguardo ai sistemi biologici

• Guidato dalle applicazioni: meno interessato a “mimare” funzioni biologiche

• Le architetture sono ampiamente condizionate dalle necessità applicative

• Questi modelli sono anche denominati architetture connessioniste

• Modello trattato nel corso!

Page 4: Apprendimento Automatico: Reti Neurali Roberto Navigli Apprendimento Automatico: Reti Neurali Cap. 4 [Mitchell] Cap. 20.5 [Russell & Norvig]

Apprendimento Automatico: Reti NeuraliRoberto Navigli

Neuroni

• I neuroni inviano segnali ad altri neuroni mediante un prolungamento detto assone

• I neuroni tipicamente possiedono strutture arboree chiamate dendriti che ricevono segnali inviati dagli assoni di altri neuroni mediante giunzioni dette sinapsi

Page 5: Apprendimento Automatico: Reti Neurali Roberto Navigli Apprendimento Automatico: Reti Neurali Cap. 4 [Mitchell] Cap. 20.5 [Russell & Norvig]

Apprendimento Automatico: Reti NeuraliRoberto Navigli

Funzionamento di un Neurone

• Si stima che il cervello umano contenga oltre 10 miliardi di neuroni e che un neurone è collegato in media a 10000 altri neuroni

• Tempo di commutazione di alcuni millisecondi (assai più lento di una porta logica), ma connettività centinaia di volte superiore

• Un neurone trasmette informazioni agli altri neuroni tramite il proprio assone• L’assone trasmette impulsi elettrici, che dipendono dal suo

potenziale • L’informazione trasmessa può essere eccitatoria oppure inibitoria

• Un neurone riceve in ingresso segnali di varia natura, che vengono sommati

• Se l’influenza eccitatoria è predominante, il neurone si attiva e genera messaggi informativi verso le sinapsi di uscita

Page 6: Apprendimento Automatico: Reti Neurali Roberto Navigli Apprendimento Automatico: Reti Neurali Cap. 4 [Mitchell] Cap. 20.5 [Russell & Norvig]

Apprendimento Automatico: Reti NeuraliRoberto Navigli

Page 7: Apprendimento Automatico: Reti Neurali Roberto Navigli Apprendimento Automatico: Reti Neurali Cap. 4 [Mitchell] Cap. 20.5 [Russell & Norvig]

Apprendimento Automatico: Reti NeuraliRoberto Navigli

Struttura di una Rete Neurale

• Una rete neurale è costituta da:– un insieme di nodi (i neuroni) o unità connesse da collegamenti– Un insieme di pesi associati ai collegamenti– Un insieme di soglie o livelli di attivazione

• La progettazione di una rete neurale richiede:– La scelta del numero e del tipo di unità– La determinazione della struttura morfologica– Codifica degli esempi di addestramento, in termini di ingressi e

uscite dalla rete – L’inizializzazione e l’addestramento dei pesi sulle interconnessioni,

attraverso il training set

Page 8: Apprendimento Automatico: Reti Neurali Roberto Navigli Apprendimento Automatico: Reti Neurali Cap. 4 [Mitchell] Cap. 20.5 [Russell & Norvig]

Apprendimento Automatico: Reti NeuraliRoberto Navigli

Il Percettrone

• Il percettrone è il mattone base delle reti neurali• Nasce da un'idea di Rosenblatt (1962)• Cerca di simulare il funzionamento del singolo neurone

x1

x2

xm

. . .

w1

w2

wm soglia

x0=1w0

m

ijj xw

0

otherwise

xwifo

m

ijj

1

0 10

Page 9: Apprendimento Automatico: Reti Neurali Roberto Navigli Apprendimento Automatico: Reti Neurali Cap. 4 [Mitchell] Cap. 20.5 [Russell & Norvig]

Apprendimento Automatico: Reti NeuraliRoberto Navigli

• I valori di uscita sono booleani: 0 oppure 1

• Gli ingressi xj e i pesi wj sono valori reali positivi o negativi

• Tre elementi: ingressi, somma, soglia• L'apprendimento consiste nel selezionare pesi e soglia

Il Percettrone

x1

x2

xm

. . .

w1

w2

wm soglia

x0=1w0

m

ijj xw

0

otherwise

xwifo

m

ijj

1

0 10

Page 10: Apprendimento Automatico: Reti Neurali Roberto Navigli Apprendimento Automatico: Reti Neurali Cap. 4 [Mitchell] Cap. 20.5 [Russell & Norvig]

Apprendimento Automatico: Reti NeuraliRoberto Navigli

Funzioni somma e soglia (1)

• La funzione d’ingresso (lineare, somma delle componenti di input di x = (x1, …, xn))

x1

x2

xm

. . .

w1

w2

wm soglia

x0=1w0

xwxwxwxwwm

ijjmm

0110 ...

m

ijj xw

0

otherwise

xwifo

m

ijj

1

0 10

Page 11: Apprendimento Automatico: Reti Neurali Roberto Navigli Apprendimento Automatico: Reti Neurali Cap. 4 [Mitchell] Cap. 20.5 [Russell & Norvig]

Apprendimento Automatico: Reti NeuraliRoberto Navigli

Funzioni somma e soglia (2)

• La funzione di attivazione (non lineare, soglia)

– Vogliamo l’unità percettrone attiva (vicino a +1) quando gli input corretti sono forniti e inattiva altrimenti

– E’ preferibile che g sia non lineare, altrimenti la rete neurale collassa a una funzione lineare dell’input

x1

x2

xm

. . .

w1

w2

wm soglia

m

ijj xw

0

x0=1w0

otherwise

xwifo

m

ijj

1

0 10

m

ijjm xwgxxo

01 ),...,(

Page 12: Apprendimento Automatico: Reti Neurali Roberto Navigli Apprendimento Automatico: Reti Neurali Cap. 4 [Mitchell] Cap. 20.5 [Russell & Norvig]

Apprendimento Automatico: Reti NeuraliRoberto Navigli

Funzioni di attivazione

• Funzione gradino

• Funzione segno (utilizzata nel percettrone)

• Funzione sigmoide

altrimenti

txxgradinot 0

1)(

altrimenti

xxsign

1

01)(

xexsigmoide

1

1)( 1/2

-1

1

1

0

Page 13: Apprendimento Automatico: Reti Neurali Roberto Navigli Apprendimento Automatico: Reti Neurali Cap. 4 [Mitchell] Cap. 20.5 [Russell & Norvig]

Apprendimento Automatico: Reti NeuraliRoberto Navigli

Funzione obiettivo

• Ad esempio, se la funzione soglia è la funzione segno e x1, ..., xm sono i valori degli attributi delle istanze x di X, la funzione obiettivo da apprendere è:

• Esprimibile anche in forma vettoriale mediante la:

o(x ) sign(

w

x )

altrimenti

sexo

1

0xw...xwx w1)( mm1100

Page 14: Apprendimento Automatico: Reti Neurali Roberto Navigli Apprendimento Automatico: Reti Neurali Cap. 4 [Mitchell] Cap. 20.5 [Russell & Norvig]

Apprendimento Automatico: Reti NeuraliRoberto Navigli

Il Percettrone

• Problema di apprendimento:– dati insiemi di punti su uno spazio n-dimensionale,

classificarli in due gruppi (positivi e negativi)– inoltre dato un nuovo punto x’ decidere a quale gruppo

appartiene• Il primo problema è di classificazione, mentre per risolvere il

secondo è richiesta capacità di generalizzazione, come negli alberi di decisione

Page 15: Apprendimento Automatico: Reti Neurali Roberto Navigli Apprendimento Automatico: Reti Neurali Cap. 4 [Mitchell] Cap. 20.5 [Russell & Norvig]

Apprendimento Automatico: Reti NeuraliRoberto Navigli

Problema di classificazione

• Il problema è quindi ridotto alla determinazione dell'insieme dei pesi (w0, w1, …, wm) migliore per minimizzare gli errori di classificazione

• Quindi lo spazio delle ipotesi H è infinito ed è dato da tutte le possibili assegnazioni di valori agli n+1 pesi (w0, w1, …, wm):

• Si tratta di ottimizzare la funzione:

in modo da minimizzarne l’errore

}:{ 1 mwwH

)()( xwsignxo

Page 16: Apprendimento Automatico: Reti Neurali Roberto Navigli Apprendimento Automatico: Reti Neurali Cap. 4 [Mitchell] Cap. 20.5 [Russell & Norvig]

Apprendimento Automatico: Reti NeuraliRoberto Navigli

Esempio per due attributi

• Con (x1, x2) in ingresso, si ha:

• La retta di separazione è data da:

• Nel caso con n attributi, quel che si apprende è un iperpiano di separazione dato da:

x2

x1

)()( 22110 xwxwwsignxo

2

01

2

12

22110 0

w

wx

w

wx

xwxww

0xw

Page 17: Apprendimento Automatico: Reti Neurali Roberto Navigli Apprendimento Automatico: Reti Neurali Cap. 4 [Mitchell] Cap. 20.5 [Russell & Norvig]

Apprendimento Automatico: Reti NeuraliRoberto Navigli

Funzioni rappresentabili con il percettrone

• I percettroni possono rappresentare tutte le funzioni booleane primitive AND, OR, NAND e NOR–

– ecc. (provate a scrivere le altre per esercizio)

)5.05.08.0(),( 2121 xxsignxxAND )5.05.03.0(),( 2121 xxsignxxOR

Page 18: Apprendimento Automatico: Reti Neurali Roberto Navigli Apprendimento Automatico: Reti Neurali Cap. 4 [Mitchell] Cap. 20.5 [Russell & Norvig]

Apprendimento Automatico: Reti NeuraliRoberto Navigli

Funzioni rappresentabili con il percettrone

• I percettroni possono rappresentare tutte le funzioni booleane primitive AND, OR, NAND e NOR

• Alcune funzioni booleane non possono essere rappresentate– es. la funzione XOR (vale 1 se e solo se x1 ≠ x2):

+

++

+

++

-

--

--

-- x1

x2

Page 19: Apprendimento Automatico: Reti Neurali Roberto Navigli Apprendimento Automatico: Reti Neurali Cap. 4 [Mitchell] Cap. 20.5 [Russell & Norvig]

Apprendimento Automatico: Reti NeuraliRoberto Navigli

Implementare funzioni booleane più complesse con il percettrone

x1

x2

0.5

0.5

-0.3

x0=1

x1 or x2

x3

0.5

0.5

-0.8

(x1 or x2) and x3

x0=1

Page 20: Apprendimento Automatico: Reti Neurali Roberto Navigli Apprendimento Automatico: Reti Neurali Cap. 4 [Mitchell] Cap. 20.5 [Russell & Norvig]

Apprendimento Automatico: Reti NeuraliRoberto Navigli

Algoritmo di Addestramento del Percettrone

• Inizializza i pesi casualmente• Finché non si è raggiunta la condizione di terminazione:

– Per ogni esempio (x, y) D, dove y è il l’output effettivo: – Calcola la funzione o(x)– Se o(x) y allora per ogni attributo j aggiornane il peso:

si chiama learning rate (tasso di apprendimento)

• xj è il valore dell’attributo j-esimo di x

• la quantità y-o rappresenta l’errore E del percettrone

jj

jjj

xxoyw

www

))((

Page 21: Apprendimento Automatico: Reti Neurali Roberto Navigli Apprendimento Automatico: Reti Neurali Cap. 4 [Mitchell] Cap. 20.5 [Russell & Norvig]

Apprendimento Automatico: Reti NeuraliRoberto Navigli

Esempio

• Supponiamo o(x)=-1 (se la funzione soglia è sign(x)) e y=1• Bisogna modificare i pesi per accrescere il valore di • Se per esempio:

• Quindi il valore del wj tenderà a crescere, riducendo l’errore

• Se invece y=-1 e o(x)=1

• Nota: vogliamo aggiornamenti dei pesi graduali, altrimenti rischiamo di “disfare” il lavoro fatto sugli altri esempi di addestramento

w x

16,08,0))1(1(1,0)( jj xoyw

16,08,0))1(1(1,0)(

1,1,1,0,8,0

jj

j

xoyw

oyx

Page 22: Apprendimento Automatico: Reti Neurali Roberto Navigli Apprendimento Automatico: Reti Neurali Cap. 4 [Mitchell] Cap. 20.5 [Russell & Norvig]

Apprendimento Automatico: Reti NeuraliRoberto Navigli

Convergenza del Percettrone

• Il teorema di convergenza del percettrone (Rosenblatt, 1962) assicura che il percettrone riuscirà a delimitare le 2 classi se il sistema è linearmente separabile

• In altre parole, nell'ottimizzazione non esistono minimi locali

• Problema: come ci si comporta in caso di situazioni non linearmente separabili?

• Soluzioni:– Utilizzare la discesa del gradiente (delta rule) invece della regola

di addestramento del percettrone– reti multistrato alimentate in avanti

Page 23: Apprendimento Automatico: Reti Neurali Roberto Navigli Apprendimento Automatico: Reti Neurali Cap. 4 [Mitchell] Cap. 20.5 [Russell & Norvig]

Apprendimento Automatico: Reti NeuraliRoberto Navigli

Soluzione 1: Discesa del Gradiente

• Una regola di addestramento differente del percettrone• Assumiamo per semplicità che il percettrone non sia

sogliato (ossia: o(x) = w·x)• Utilizziamo una misura dell’errore di addestramento per

un vettore di pesi w:

Dyx

xoywE),(

2))((2

1)(

Page 24: Apprendimento Automatico: Reti Neurali Roberto Navigli Apprendimento Automatico: Reti Neurali Cap. 4 [Mitchell] Cap. 20.5 [Russell & Norvig]

Apprendimento Automatico: Reti NeuraliRoberto Navigli

Discesa del gradiente

• Idea: utilizzare la discesa del gradiente per cercare nello spazio dei vettori peso quello che minimizza l’errore su D

• Calcoliamo le derivate parziali della funzione d’errore

Page 25: Apprendimento Automatico: Reti Neurali Roberto Navigli Apprendimento Automatico: Reti Neurali Cap. 4 [Mitchell] Cap. 20.5 [Russell & Norvig]

Apprendimento Automatico: Reti NeuraliRoberto Navigli

Regola di addrestramento: discesa del gradiente

• Modifichiamo la regola di addestramento:• Finché non si raggiunge la condizione di terminazione,

– Inizializza– Per ogni attributo j

– Per ogni attributo j:

– Nota: calcoliamo il delta su tutti gli esempi e POI aggiorniamo i pesi– Nota 2: l’output non è sogliato

0 jw

jj w

wEw

)(

jjj www

Page 26: Apprendimento Automatico: Reti Neurali Roberto Navigli Apprendimento Automatico: Reti Neurali Cap. 4 [Mitchell] Cap. 20.5 [Russell & Norvig]

Apprendimento Automatico: Reti NeuraliRoberto Navigli

Come calcolare la derivata

Dyxj

Dyx j

Dyx j

Dyx jDyxjj

xxoy

w

xwyxoy

w

xoyxoy

xoyw

xoyww

wE

),(

),(

),(

),(

2

),(

2

)))(((

)())((

))(())((2

2

1

))((2

1))((

2

1)(

Page 27: Apprendimento Automatico: Reti Neurali Roberto Navigli Apprendimento Automatico: Reti Neurali Cap. 4 [Mitchell] Cap. 20.5 [Russell & Norvig]

Apprendimento Automatico: Reti NeuraliRoberto Navigli

Alternativa: Discesa del Gradiente Stocastica o Incrementale

• La Discesa del Gradiente Standard può essere molto lenta nel convergere a un minimo locale

• Se ci sono multipli minimi locali, non c’è garanzia di convergere al minimo globale

• Alternativa: aggiornare i pesi esempio per esempio e non sull’intero D– Approssimazione ragionevole alla discesa del gradiente

Page 28: Apprendimento Automatico: Reti Neurali Roberto Navigli Apprendimento Automatico: Reti Neurali Cap. 4 [Mitchell] Cap. 20.5 [Russell & Norvig]

Apprendimento Automatico: Reti NeuraliRoberto Navigli

Discesa del Gradiente Stocastica o Incrementale

Delta rule

Page 29: Apprendimento Automatico: Reti Neurali Roberto Navigli Apprendimento Automatico: Reti Neurali Cap. 4 [Mitchell] Cap. 20.5 [Russell & Norvig]

Apprendimento Automatico: Reti NeuraliRoberto Navigli

Ricapitoliamo

• La regola di aggiornamento del percettrone è la stessa della Delta Rule!

• Però: la delta rule utilizza o(x)=w·x mentre la regola del percettrone o(x)=sign(w·x)

• Tuttavia, la Delta Rule può essere utilizzata anche per percettroni sogliati: – Se la Delta Rule modella perfettamente, allora avremo o(x)=1 o

-1 per cui anche o’(x)=sign(1)=1 oppure o’(x)=sign(-1)=-1

• Diverse proprietà di convergenza:– Regola del percettrone converge dopo un numero finito di

iterazioni (se dati linearmente separabili)– Delta rule converge asintoticamente verso l’ipotesi di minor

errore indipendentemente dalla separabilità lineare

Page 30: Apprendimento Automatico: Reti Neurali Roberto Navigli Apprendimento Automatico: Reti Neurali Cap. 4 [Mitchell] Cap. 20.5 [Russell & Norvig]

Apprendimento Automatico: Reti NeuraliRoberto Navigli

Soluzione 2: Reti Stratificate Alimentate in Avanti

• Feedforward Neural Networks– Ogni unità è collegata solo a quella dello strato successivo

– L’elaborazione procede uniformemente dalle unità di ingresso a quelle di uscita

– Non c’è feedback (grafo aciclico diretto o DAG)

– Non hanno stato interno

Page 31: Apprendimento Automatico: Reti Neurali Roberto Navigli Apprendimento Automatico: Reti Neurali Cap. 4 [Mitchell] Cap. 20.5 [Russell & Norvig]

Apprendimento Automatico: Reti NeuraliRoberto Navigli

Vogliamo apprendere superfici di decisione non lineari!

Page 32: Apprendimento Automatico: Reti Neurali Roberto Navigli Apprendimento Automatico: Reti Neurali Cap. 4 [Mitchell] Cap. 20.5 [Russell & Norvig]

Apprendimento Automatico: Reti NeuraliRoberto Navigli

Soluzione 3: Reti Ricorrenti

• Sono più simili al funzionamento del cervello umano, in quanto simulano le connessioni all’indietro

– Nel cervello esistono evidenti connessioni all’indietro

• I collegamenti possono formare configurazioni arbitrarie

• L’attivazione viene “ripassata” indietro alle unità che l’hanno provocata

• Hanno uno stato interno: i livelli di attivazione

• Computazione meno ordinata

• Instabili

• Più tempo per calcolare lo stato stabile

• Difficoltà nell’apprendimento

• Implementano classificatori più complessi

• Esempi:– Reti di Boltzmann

– Reti di Hopfield output

input hidden

Page 33: Apprendimento Automatico: Reti Neurali Roberto Navigli Apprendimento Automatico: Reti Neurali Cap. 4 [Mitchell] Cap. 20.5 [Russell & Norvig]

Apprendimento Automatico: Reti NeuraliRoberto Navigli

Reti Alimentate in Avanti:Algoritmo di Backpropagation

• Apprendimento con algoritmo di backpropagation (propagazione all’indietro)

• Obiettivi:– partire da un insieme di percettroni con pesi casuali– apprendere in modo veloce– avere capacità di generalizzazione– lavorare con insiemi di percettroni su larga scala

Page 34: Apprendimento Automatico: Reti Neurali Roberto Navigli Apprendimento Automatico: Reti Neurali Cap. 4 [Mitchell] Cap. 20.5 [Russell & Norvig]

Apprendimento Automatico: Reti NeuraliRoberto Navigli

• La funzione soglia di ciascuna unità è la sigmoide:

• L’errore è calcolato come segue:

• Obiettivo dell’algoritmo: minimizzare l’errore fra ciascuna uscita desiderata yk e l’uscita calcolata dalla rete neurale ok

Backpropagation (2)

unità d’ingresso ii

unità nascosta hj

unità di uscita ok

xwexwxo

1

1)()(

2

),(

)(2

1)(

Dyx outputsk

kk oywE

Page 35: Apprendimento Automatico: Reti Neurali Roberto Navigli Apprendimento Automatico: Reti Neurali Cap. 4 [Mitchell] Cap. 20.5 [Russell & Norvig]

Apprendimento Automatico: Reti NeuraliRoberto Navigli

function BackProp(D, , nin, nhidden, nout)– D è l’insieme di addestramento costituito da coppie è il tasso di apprendimento (learning rate), es. 0.1– nin, nhidden e nout sono il numero di unità d’ingresso, nascoste e d’uscita

• Crea una rete feed-forward con nin, nhidden e nout unità

• Inizializza tutti i pesi con numeri casuali piccoli (es. tra -0.05 e 0.05)• Finché non si incontra la condizione di terminazione:– Per ogni esempio in D:

• Propaga l’input in avanti sulla rete calcolando l’output ou di ogni unità u della rete

• Propaga gli errori all’indietro nella rete:

– Per ogni unità di output k, calcola il suo termine d’errore k:

– Per ogni unità nascosta h, calcola il suo termine d’errore h:

– Aggiorna i pesi wij:

• xij è l’input dell’unità j proveniente dall’unità i

L’algoritmo Backpropagation

),( yx

),( yx

))(1( kkkkk oyoo

outputsk

khkhhh woo )1(

ijjijijijij xwwww dove ,

Page 36: Apprendimento Automatico: Reti Neurali Roberto Navigli Apprendimento Automatico: Reti Neurali Cap. 4 [Mitchell] Cap. 20.5 [Russell & Norvig]

Apprendimento Automatico: Reti NeuraliRoberto Navigli

• Crea una rete feed-forward con nin, nhidden e nout unità

• Inizializza tutti i pesi con numeri casuali piccoli (es. tra -0.05 e 0.05)

• wx0,h1 = 0.34, wx1,h1 = 0.12, wx2,h1 = -0.92

• wx0,h2 = -0.11, wx1,h2 = 0.57, wx2,h2 = -0.32

• wh0,o1 = -0.99 , wh1,o1 = 0.16, wh2,o1 = 0.75

Esempio

h1

h2

o1x2

x1

Page 37: Apprendimento Automatico: Reti Neurali Roberto Navigli Apprendimento Automatico: Reti Neurali Cap. 4 [Mitchell] Cap. 20.5 [Russell & Norvig]

Apprendimento Automatico: Reti NeuraliRoberto Navigli

• Finché non si incontra la condizione di terminazione:– Per ogni esempio in D:

• Propaga l’input in avanti sulla rete calcolando l’output ou di ogni unità u della rete

• oh1 = (0.34*1+ 0.12*0 + -0.92*0) = (0.34)=1/(1+e-0.34)= 0.58

• oh2 = (-0.11*1+0.57*0+-0.32*0)=(-0.11)=1/(1+e-(-0.11))=0.47

• oo1 = (-0.99*1+0.16*0.58+0.75*0.47)=(-0.54)=1/(1+e-0.54)=0.36

Esempio

),( yx ((0, 0), (0))

h1

h2

o1x2

x1

Page 38: Apprendimento Automatico: Reti Neurali Roberto Navigli Apprendimento Automatico: Reti Neurali Cap. 4 [Mitchell] Cap. 20.5 [Russell & Norvig]

Apprendimento Automatico: Reti NeuraliRoberto Navigli

• Propaga gli errori all’indietro nella rete:

– Per ogni unità di output k, calcola il suo termine d’errore k:

– Per ogni unità nascosta h, calcola il suo termine d’errore h:

– Aggiorna i pesi wji:

o1 = oo1(1-oo1)(yo1-oo1)= 0.36*(1-0.36)(0-0.36)=-0.08

h1 = oh1*(1-oh1)*wh1o1o1 = 0.58*(1-0.58)*(0.16)*(-0.08) = -0.003

h2 = oh2*(1-oh2)*wh2o1o1=0.47(1-0.47)*(0.75)*(-0.08)=-0.014

Esempio

))(1( kkkkk oyoo

outputsk

khkhhh woo )1(

ijjijijijij xwwww dove ,

Page 39: Apprendimento Automatico: Reti Neurali Roberto Navigli Apprendimento Automatico: Reti Neurali Cap. 4 [Mitchell] Cap. 20.5 [Russell & Norvig]

Apprendimento Automatico: Reti NeuraliRoberto Navigli

• Propaga gli errori all’indietro nella rete:

– Per ogni unità di output k, calcola il suo termine d’errore k:

– Per ogni unità nascosta h, calcola il suo termine d’errore h:

– Aggiorna i pesi wji:

– wx0h1 = 0.34+h1xx0h1=0.34+0.5*(-0.003)*1=0.34-0.0015,

– wx1h1 = 0.12+0, wx2h1 = -0.92+0

– wx0h2 = -0.11+h2xx0h2=0.34+0.5*(-0.014)*1=0.34-0.007,

– wx1h2 = 0.57+0, wx2h2 = -0.32+0

– wh0o1 = -0.99+o1xh0o1=-0.99+0.5*(-0.08)*1=-0.99-0.04

– wh1o1 = 0.16+o1xh1o1=0.16+0.5*(-0.08)*0.58=0.16-0.02

– wh2o1 = 0.75+o1xh2o1=0.75+0.5*(-0.08)*0.47=0.75-0.02

Esempio

))(1( kkkkk oyoo

outputsk

khkhhh woo )1(

ijjijijijij xwwww dove ,

Page 40: Apprendimento Automatico: Reti Neurali Roberto Navigli Apprendimento Automatico: Reti Neurali Cap. 4 [Mitchell] Cap. 20.5 [Russell & Norvig]

Apprendimento Automatico: Reti NeuraliRoberto Navigli

• Si aggiornano tutti pesi• Si considera il secondo esempio di D• Si ricalcolano input e output di tutti i nodi• Si ricalcolano gli errori sui nodi• Si riaggiornano i pesi• Finché non si esaurisce D (epoca)• Si ripete per n epoche, fino a che l’errore non si stabilizza

Esempio

Page 41: Apprendimento Automatico: Reti Neurali Roberto Navigli Apprendimento Automatico: Reti Neurali Cap. 4 [Mitchell] Cap. 20.5 [Russell & Norvig]

Apprendimento Automatico: Reti NeuraliRoberto Navigli

• Dopo qualche migliaio di iterazioni su tutti e quattro gli esempio di D = { ((0,0), (0)), ((0,1), (1)), ((1,0), (1)), ((1,1),(0))}

• Otteniamo i seguenti risultati per gli input:– x = (0, 0), oo1 = 0.017622

– x = (0, 1), oo1 = 0.981504

– x = (1, 0), oo1 = 0.981491

– x = (1, 1), oo1 = 0.022782

Esempio

Quale funzione calcola la rete dell’esempio?

http://delfin.unideb.hu/~bl0021/xordemo/xordemo.htmlhttp://www.generation5.org/content/2001/xornet.asp

Page 42: Apprendimento Automatico: Reti Neurali Roberto Navigli Apprendimento Automatico: Reti Neurali Cap. 4 [Mitchell] Cap. 20.5 [Russell & Norvig]

Apprendimento Automatico: Reti NeuraliRoberto Navigli

Cosa c’è alla base della regola di propagazione dell’errore all’indietro?

Supponiamo di dover imparare solo due pesi.Il piano w1 w2 rappresenta lo spazio delle ipotesi (pesi delle connessioni) , il cono è la superficie d'errore.Per minimizzare l'errore si deve calcolare la direzione della discesa più ripida lungo la superficie. Quindi, la derivata.

Consideriamo la funzione di errore per d=(x,y)D: 

  

2)(2

1k

kkd oyE

Page 43: Apprendimento Automatico: Reti Neurali Roberto Navigli Apprendimento Automatico: Reti Neurali Cap. 4 [Mitchell] Cap. 20.5 [Russell & Norvig]

Apprendimento Automatico: Reti NeuraliRoberto Navigli

Calcolo della regola di aggiornamento dell’unità di output

ijjijjjjjij

j

j

dij

jjnet

net

netnet

net

j

j

jjj

kk

outputskkk

j

outputskkk

j

d

j

j

j

d

j

d

iijijj

j

d

ij

j

j

d

ij

dij

xxoooyw

net

net

Ew

ooe

e

ee

e

net

o

oyo

oyoy

o

oy

o

E

net

o

o

E

net

E

xwnetnet

E

w

net

net

E

w

Ew

j

j

jj

j

)1())((

)1()1

1(1

1

)1(

)()(

)(2

12

)(21

dove x

2

2

ij

Page 44: Apprendimento Automatico: Reti Neurali Roberto Navigli Apprendimento Automatico: Reti Neurali Cap. 4 [Mitchell] Cap. 20.5 [Russell & Norvig]

Apprendimento Automatico: Reti NeuraliRoberto Navigli

Condizioni di terminazione

• Il processo continua finché non sono esauriti tutti gli esempi (epoca), poi si riparte

• Quando arrestare il processo? Minimizzare gli errori sul set D non è un buon criterio (overfitting)

• Si preferisce minimizzare gli errori su un test set T, ovvero suddividere D in D’T, addestrare su D’ e usare T per determinare la condizione di terminazione

Page 45: Apprendimento Automatico: Reti Neurali Roberto Navigli Apprendimento Automatico: Reti Neurali Cap. 4 [Mitchell] Cap. 20.5 [Russell & Norvig]

Apprendimento Automatico: Reti NeuraliRoberto Navigli

Disegno dell’errore su un test set T

Page 46: Apprendimento Automatico: Reti Neurali Roberto Navigli Apprendimento Automatico: Reti Neurali Cap. 4 [Mitchell] Cap. 20.5 [Russell & Norvig]

Apprendimento Automatico: Reti NeuraliRoberto Navigli

Ma l’algoritmo converge?

• Problemi dell’algoritmo del gradiente:– Può arrestarsi su minimi locali– Un minimo locale può dare soluzioni molto peggiori del minimo

globale– Possono esserci molti minimi locali

• Soluzioni possibili: addestra la rete con pesi iniziali diversi, addestra diverse architetture di rete

Page 47: Apprendimento Automatico: Reti Neurali Roberto Navigli Apprendimento Automatico: Reti Neurali Cap. 4 [Mitchell] Cap. 20.5 [Russell & Norvig]

Apprendimento Automatico: Reti NeuraliRoberto Navigli

Modifica della regola di aggiornamento

)1,0[ e )1()( nijijj

nij wxw

• Quando si esegue l’n-esima iterazione la regola di aggiornamento diventa:

• Il secondo termine prende il nome di momento• Vantaggi:

– È possibile superare minimi locali– Mantiene “in movimento” dove il gradiente non cambia (zona piatta)– Incrementa la velocità di convergenza

• Svantaggi:– E’ un parametro in più da regolare!

Page 48: Apprendimento Automatico: Reti Neurali Roberto Navigli Apprendimento Automatico: Reti Neurali Cap. 4 [Mitchell] Cap. 20.5 [Russell & Norvig]

Apprendimento Automatico: Reti NeuraliRoberto Navigli

Alcune considerazioni pratiche

• La scelta dei pesi iniziali ha un grande impatto sul problema della convergenza! Se la dimensione dei vettori di input è N ed N è grande, una buona euristica è scegliere i pesi iniziali fra -1/N e 1/N

• L’algoritmo BP è molto sensibile al fattore di apprendimento . Se è troppo grande, la rete diverge.

• A volte, è preferibile usare diversi valori di per i diversi strati della rete

• La scelta della modalità di codifica degli ingressi e della architettura della rete può influenzare in modo drastico le prestazioni!!

Page 49: Apprendimento Automatico: Reti Neurali Roberto Navigli Apprendimento Automatico: Reti Neurali Cap. 4 [Mitchell] Cap. 20.5 [Russell & Norvig]

Apprendimento Automatico: Reti NeuraliRoberto Navigli

Architettura della rete

• Con più unità nascoste è possibile ottenere uno spazio delle ipotesi più ampio ed espressivo– D’altra parte: rischio overfitting (si rischia di creare una sorta di

lookup table o rote classifier)

• Con uno strato nascosto sufficientemente ampio è possibile rappresentare qualsiasi funzione continua degli input con accuratezza arbitraria

• Tuttavia, la scelta ottima a priori del giusto numero di unità nascoste non è ancora chiara

Page 50: Apprendimento Automatico: Reti Neurali Roberto Navigli Apprendimento Automatico: Reti Neurali Cap. 4 [Mitchell] Cap. 20.5 [Russell & Norvig]

Apprendimento Automatico: Reti NeuraliRoberto Navigli

Applicazione: Modello di Memoria Semantica [McClelland and Rogers, 2003]

• Obiettivo - apprendere un’ontologia:

Page 51: Apprendimento Automatico: Reti Neurali Roberto Navigli Apprendimento Automatico: Reti Neurali Cap. 4 [Mitchell] Cap. 20.5 [Russell & Norvig]

Apprendimento Automatico: Reti NeuraliRoberto Navigli

• Strategia - Rete Neurale:

Applicazione: Modello di Memoria Semantica [McClelland and Rogers, 2003]

Page 52: Apprendimento Automatico: Reti Neurali Roberto Navigli Apprendimento Automatico: Reti Neurali Cap. 4 [Mitchell] Cap. 20.5 [Russell & Norvig]

Apprendimento Automatico: Reti NeuraliRoberto Navigli

• Risultati in termini di distanza euclidea:

Applicazione: Modello di Memoria Semantica [McClelland and Rogers, 2003]

Page 53: Apprendimento Automatico: Reti Neurali Roberto Navigli Apprendimento Automatico: Reti Neurali Cap. 4 [Mitchell] Cap. 20.5 [Russell & Norvig]

Apprendimento Automatico: Reti NeuraliRoberto Navigli

Applicazione: ALVINN guida a 70 mph!

Page 54: Apprendimento Automatico: Reti Neurali Roberto Navigli Apprendimento Automatico: Reti Neurali Cap. 4 [Mitchell] Cap. 20.5 [Russell & Norvig]

Apprendimento Automatico: Reti NeuraliRoberto Navigli

Applicazione: riconoscimento di fisionomie

• Compito: Classificare immagini di visi di persone in varie pose

• Dataset: immagini di 20 persone in 32 pose variabili per: espressione, direzione dello sguardo, occhiali da sole, sfondo– http://www.cs.cmu.edu/afs/cs.cmu.edu/user/mitchell/ftp/faces.html

• Funzioni obiettivo: riconoscere se porta gli occhiali, quale persona è, in che direzione guarda, ecc.

Page 55: Apprendimento Automatico: Reti Neurali Roberto Navigli Apprendimento Automatico: Reti Neurali Cap. 4 [Mitchell] Cap. 20.5 [Russell & Norvig]

Apprendimento Automatico: Reti NeuraliRoberto Navigli

Scelte di Progetto• Accuratezza della codifica di ingresso:

– Scelta chiave: quali e quante feature in ingresso codificare– Si potrebbe preanalizzare l’immagine estraendo informazioni quali contorni, regioni di intensità

luminosa uniforme, ecc.

• Problema: il numero di feature sarebbe variabile (es. numero di contorni), ma una rete neurale ha un numero fisso di ingressi!

– Allora si “semplifica” l’immagine codificandola come un insieme di valori di intensità di 30x32 pixel

Page 56: Apprendimento Automatico: Reti Neurali Roberto Navigli Apprendimento Automatico: Reti Neurali Cap. 4 [Mitchell] Cap. 20.5 [Russell & Norvig]

Apprendimento Automatico: Reti NeuraliRoberto Navigli

Reti Neurali “in a nutshell”

• Vantaggi:– Le istanze sono rappresentate mediante molte feature a molti

valori, anche reali e la funzione obiettivo può essere a valori reali– Possono rappresentare: tutte le funzioni booleane (esattamente),

funzioni continue (approssimate), funzioni arbitrarie (approssimate, con 2 strati nascosti)

– Gli esempi possono essere rumorosi– La rete è veloce in fase di classificazione– Non è cruciale capire la semantica della funzione attesa

• Svantaggi:– Come tutti i modelli statistici, anche le reti neurali sono soggette a

sovradattamento– Le reti neurali sono "scatole nere“: non hanno semantica!– I tempi di addestramento possono essere lunghi