Apprendimento Automatico: Reti Neurali Roberto Navigli Apprendimento Automatico: Reti Neurali Cap. 4...
-
Upload
consolata-contini -
Category
Documents
-
view
225 -
download
3
Transcript of Apprendimento Automatico: Reti Neurali Roberto Navigli Apprendimento Automatico: Reti Neurali Cap. 4...
Apprendimento Automatico: Reti NeuraliRoberto Navigli
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
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!
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
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
Apprendimento Automatico: Reti NeuraliRoberto Navigli
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
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
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
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
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 ),...,(
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
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
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
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
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
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
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
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
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
))((
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
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
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)(
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
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
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)(
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
Apprendimento Automatico: Reti NeuraliRoberto Navigli
Discesa del Gradiente Stocastica o Incrementale
Delta rule
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
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
Apprendimento Automatico: Reti NeuraliRoberto Navigli
Vogliamo apprendere superfici di decisione non lineari!
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
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
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
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 ,
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
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
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 ,
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 ,
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
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
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
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
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
Apprendimento Automatico: Reti NeuraliRoberto Navigli
Disegno dell’errore su un test set T
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
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!
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!!
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
Apprendimento Automatico: Reti NeuraliRoberto Navigli
Applicazione: Modello di Memoria Semantica [McClelland and Rogers, 2003]
• Obiettivo - apprendere un’ontologia:
Apprendimento Automatico: Reti NeuraliRoberto Navigli
• Strategia - Rete Neurale:
Applicazione: Modello di Memoria Semantica [McClelland and Rogers, 2003]
Apprendimento Automatico: Reti NeuraliRoberto Navigli
• Risultati in termini di distanza euclidea:
Applicazione: Modello di Memoria Semantica [McClelland and Rogers, 2003]
Apprendimento Automatico: Reti NeuraliRoberto Navigli
Applicazione: ALVINN guida a 70 mph!
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.
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
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