Apprendimento Automatico: Reti Neurali

Download Report

Transcript Apprendimento Automatico: Reti Neurali

Apprendimento Automatico:
Reti Neurali
Roberto Navigli
Apprendimento Automatico: Reti Neurali
Roberto Navigli
Cap. 4 [Mitchell]
Cap. 20.5 [Russell & Norvig]
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
Apprendimento Automatico: Reti Neurali
Roberto 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!
Apprendimento Automatico: Reti Neurali
Roberto 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
Apprendimento Automatico: Reti Neurali
Roberto 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
Apprendimento Automatico: Reti Neurali
Roberto Navigli
Apprendimento Automatico: Reti Neurali
Roberto 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
Apprendimento Automatico: Reti Neurali
Roberto 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
x0=1
x1
x2
w1
w0
w2
...
∑
wm
m
w
i0
xm
Apprendimento Automatico: Reti Neurali
Roberto Navigli
j
xj
soglia

 1
o
  1
m
if
w
j
xj  0
i0
otherwise
Il Percettrone
• 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
x0=1
x1
x2
w1
w0
w2
...
∑
wm
m
w
i0
xm
Apprendimento Automatico: Reti Neurali
Roberto Navigli
j
xj
soglia

 1
o
  1
m
if
w
j
xj  0
i0
otherwise
Funzioni somma e soglia (1)
• La funzione d’ingresso (lineare, somma delle componenti di input di
x = (x1, …, xn))
m
w 0  w1 x1  ...  w m x m 
w
j
xj  wx
i0
x0=1
x1
x2
w1
w0
w2
...
∑
wm
m
w
i0
xm
Apprendimento Automatico: Reti Neurali
Roberto Navigli
j
xj
soglia

 1
o
  1
m
if
w
j
xj  0
i0
otherwise
Funzioni somma e soglia (2)
• La funzione di attivazione (non lineare, soglia)
 m

o ( x1 ,..., x m )  g   w j x j 
 i0

– 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
x0=1
x1
x2
w1
w0
w2
...
∑
wm
m
w
i0
xm
Apprendimento Automatico: Reti Neurali
Roberto Navigli
j
xj
soglia

 1
o
  1
m
if
w
j
xj  0
i0
otherwise
Funzioni di attivazione
• Funzione gradino
1
gradino t ( x )  
0
1
xt
0
altrimenti
• Funzione segno (utilizzata nel percettrone)
 1
sign ( x )  
 1
x0
altrimenti
-1
• Funzione sigmoide
sigmoide ( x ) 
1
1
1 e
1/2
x
Apprendimento Automatico: Reti Neurali
Roberto 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 è:
1
o( x)  
 1
se w 0 x 0  w 1 x 1  ...  w m x m  0
altrimenti
• Esprimibile anche in forma vettoriale mediante la:
o ( x )  sign (w  x )
Apprendimento Automatico: Reti Neurali
Roberto 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
Apprendimento Automatico: Reti Neurali
Roberto 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):
H  {w : w  
m 1
}
• Si tratta di ottimizzare la funzione:
o ( x )  sign ( w  x )
in modo da minimizzarne l’errore
Apprendimento Automatico: Reti Neurali
Roberto Navigli
Esempio per due attributi
• Con (x1, x2) in ingresso, si ha:
o ( x )  sign ( w 0  w1 x1  w 2 x 2 )
x2
• La retta di separazione è data da:
w 0  w1 x1  w 2 x 2  0
x2  
w1
w2
x1 
w0
w2
• Nel caso con n attributi, quel che si apprende è un
iperpiano di separazione dato da:
wx  0
Apprendimento Automatico: Reti Neurali
Roberto Navigli
x1
Funzioni rappresentabili
con il percettrone
• I percettroni possono rappresentare tutte le funzioni
booleane primitive AND, OR, NAND e NOR
– AND ( x1 , x 2 )  sign (  0 . 8  0 . 5 x1  0 . 5 x 2 )
– OR ( x1 , x 2 )  sign (  0 . 3  0 . 5 x1  0 . 5 x 2 )
– ecc. (provate a scrivere le altre per esercizio)
Apprendimento Automatico: Reti Neurali
Roberto 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):
x2
+
+
-
+
-
-
Apprendimento Automatico: Reti Neurali
Roberto Navigli
-
-
+
+
+
x1
Implementare funzioni booleane più complesse con il
percettrone
x0=1
x1
x2
-0.3
0.5
0.5

x1 or x2
x0=1
0.5
x3
Apprendimento Automatico: Reti Neurali
Roberto Navigli
0.5
-0.8

(x1 or x2) and x3
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:
w j  w j  w j
 w j   ( y  o ( x )) x j
•  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
Apprendimento Automatico: Reti Neurali
Roberto Navigli
Esempio
• Supponiamo o(x)=-1 (se la funzione soglia è sign(x)) e y=1
• Bisogna modificare i pesi per accrescere il valore di w  x
• Se per esempio:
x j  0 ,8 ,   0 ,1, y  1, o   1
 w j   ( y  o ) x j  0 ,1(1  (  1)) 0 ,8   0 ,16
• Quindi il valore del wj tenderà a crescere, riducendo l’errore
• Se invece y=-1 e o(x)=1
 w j   ( y  o ) x j  0 ,1(  1  (  1)) 0 ,8   0 ,16
• Nota: vogliamo aggiornamenti dei pesi graduali, altrimenti rischiamo di
“disfare” il lavoro fatto sugli altri esempi di addestramento
Apprendimento Automatico: Reti Neurali
Roberto 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
Apprendimento Automatico: Reti Neurali
Roberto 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:

1
E (w) 
2
Apprendimento Automatico: Reti Neurali
Roberto Navigli

 2
( y  o ( x ))

( x , y ) D
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
Apprendimento Automatico: Reti Neurali
Roberto Navigli
Regola di addrestramento: discesa del gradiente
• Modifichiamo la regola di addestramento:
• Finché non si raggiunge la condizione di terminazione,
– Inizializza  w  0
j
– Per ogni attributo j
 w j  
– Per ogni attributo j:
E ( w )
w j
w j  w j  w j
– Nota: calcoliamo il delta su tutti gli esempi e POI aggiorniamo i pesi
– Nota 2: l’output non è sogliato
Apprendimento Automatico: Reti Neurali
Roberto Navigli
Come calcolare la derivata

E ( w )

 2 1

( y  o ( x )) 

w j
 w j 2 ( x , y ) D
2

  ( y  o ( x ))
1

2 ( y  o ( x ))

2 ( x , y ) D
w j
 
 ( y  w  x)
  ( y  o ( x ))

w j
( x , y ) D

  ( y  o ( x ))(  x j )
1

( x , y ) D
Apprendimento Automatico: Reti Neurali
Roberto Navigli


( x , y ) D

w j
 2
( y  o ( x ))
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
Apprendimento Automatico: Reti Neurali
Roberto Navigli
Discesa del Gradiente Stocastica o Incrementale
Delta rule
Apprendimento Automatico: Reti Neurali
Roberto 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
Apprendimento Automatico: Reti Neurali
Roberto 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
Apprendimento Automatico: Reti Neurali
Roberto Navigli
Vogliamo apprendere superfici di decisione non
lineari!
Apprendimento Automatico: Reti Neurali
Roberto 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
Apprendimento Automatico: Reti Neurali
Roberto Navigli
hidden
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
Apprendimento Automatico: Reti Neurali
Roberto Navigli
Backpropagation (2)
•
La funzione soglia di ciascuna unità è la sigmoide:
o( x)   (w  x) 
•
L’errore è calcolato come segue:
E (w) 
1
2
•

1
1 e
 (y
( x , y ) D k  outputs
 wx
k
 ok )
2
Obiettivo dell’algoritmo: minimizzare l’errore fra ciascuna uscita desiderata yk
e l’uscita calcolata dalla rete neurale ok
unità d’ingresso ii
unità nascosta hj
unità di uscita ok
Apprendimento Automatico: Reti Neurali
Roberto Navigli
L’algoritmo Backpropagation
function BackProp(D, , nin, nhidden, nout)
– D è l’insieme di addestramento costituito da coppie ( x , y )
–  è 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 ( x , y ) 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:
 k  o k (1  o k )( y k  o k )
– Per ogni unità nascosta h, calcola il suo termine d’errore h:
 h  o h (1  o h )
– Aggiorna i pesi wij:
k  outputs
w ij  w ij   w ij ,
• xij è l’input dell’unità j proveniente dall’unità i
Apprendimento Automatico: Reti Neurali
Roberto Navigli
w
hk
k
dove  w ij   j x ij
Esempio
• 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
x1
h1
x2
h2
Apprendimento Automatico: Reti Neurali
Roberto Navigli
o1
Esempio
•
Finché non si incontra la condizione di terminazione:
((0, 0), (0))
– Per ogni esempio ( x , y ) 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
x1
h1
x2
h2
Apprendimento Automatico: Reti Neurali
Roberto Navigli
o1
Esempio
• Propaga gli errori all’indietro nella rete:
– Per ogni unità di output k, calcola il suo termine d’errore k:
 k  o k (1  o k )( y k  o k )
– Per ogni unità nascosta h, calcola il suo termine d’errore h:
 h  o h (1  o h )
– Aggiorna i pesi wji:
w ij  w ij   w ij ,
w
hk
k
k  outputs
dove  w ij   j x ij
• o1 = oo1(1-oo1)(yo1-oo1)= 0.36*(1-0.36)(0-0.36)=-0.08
• h1 = oh1*(1-oh1)*wh1o1o1 = 0.58*(1-0.58)*(0.16)*(-0.08) = -0.003
• h2 = oh2*(1-oh2)*wh2o1o1=0.47(1-0.47)*(0.75)*(-0.08)=-0.014
Apprendimento Automatico: Reti Neurali
Roberto Navigli
Esempio
• Propaga gli errori all’indietro nella rete:
– Per ogni unità di output k, calcola il suo termine d’errore k:
 k  o k (1  o k )( y k  o k )
– Per ogni unità nascosta h, calcola il suo termine d’errore h:
 h  o h (1  o h )
– Aggiorna i pesi wji:
w ij  w ij   w ij ,
–
–
–
–
–
–
–
w
hk
k
k  outputs
dove  w ij   j x ij
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
Apprendimento Automatico: Reti Neurali
Roberto Navigli
Esempio
•
•
•
•
•
•
•
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
Apprendimento Automatico: Reti Neurali
Roberto Navigli
Esempio
• 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
Quale funzione calcola la rete dell’esempio?
http://delfin.unideb.hu/~bl0021/xordemo/xordemo.html
http://www.generation5.org/content/2001/xornet.asp
Apprendimento Automatico: Reti Neurali
Roberto Navigli
a c’è alla base della regola di propagazione dell’errore
dietro?
Consideriamo la funzione di errore per
d=(x,y)D:
Ed 
1
2

k
( yk  ok )
2
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.
Apprendimento Automatico: Reti Neurali
Roberto Navigli
Calcolo della regola di aggiornamento dell’unità di
output
 w ij  
E d
 net
E d
o j

j


o j
 net
E d
 
 w ij
 o j  net
2
 net
j
 w ij  
 w ij
 
E d
 net
x ij
dove net
j

w
ij
x ij
i
j

j
( yk  ok )
k  outputs
 net
j
(1  e
 net
j
)

2
 E d  net
j
1
 (y
2
e
 net
2
2
o j

j
j
o j
E d
1
 E d  net
 w ij
j
1 e
 ok )
k  outputs
1
 net
k
(1 
j
e
 net
1 e
 ( yk  ok )
o j
 ( y j  o j )
j
 net
j
)  o j (1  o j )
  (  ( y j  o j )) o j (1  o j ) x ij   j x ij
Apprendimento Automatico: Reti Neurali
Roberto 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
Apprendimento Automatico: Reti Neurali
Roberto Navigli
Disegno dell’errore su un test set T
Apprendimento Automatico: Reti Neurali
Roberto 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
Apprendimento Automatico: Reti Neurali
Roberto Navigli
Modifica della regola di aggiornamento
• Quando si esegue l’n-esima iterazione la regola di aggiornamento
diventa:
 w ij
(n)
  j x ij    w ij
( n 1 )
e
  [ 0 ,1)
• 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!
Apprendimento Automatico: Reti Neurali
Roberto 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!!
Apprendimento Automatico: Reti Neurali
Roberto 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
Apprendimento Automatico: Reti Neurali
Roberto Navigli
Applicazione: Modello di Memoria Semantica
[McClelland and Rogers, 2003]
• Obiettivo - apprendere un’ontologia:
Apprendimento Automatico: Reti Neurali
Roberto Navigli
Applicazione: Modello di Memoria Semantica
[McClelland and Rogers, 2003]
• Strategia - Rete Neurale:
Apprendimento Automatico: Reti Neurali
Roberto Navigli
Applicazione: Modello di Memoria Semantica
[McClelland and Rogers, 2003]
• Risultati in termini di distanza euclidea:
Apprendimento Automatico: Reti Neurali
Roberto Navigli
Applicazione: ALVINN guida a 70 mph!
Apprendimento Automatico: Reti Neurali
Roberto 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.
Apprendimento Automatico: Reti Neurali
Roberto 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
Apprendimento Automatico: Reti Neurali
Roberto 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
Apprendimento Automatico: Reti Neurali
Roberto Navigli