Upload
lydang
View
267
Download
0
Embed Size (px)
Citation preview
Reti Neurali
Giuseppe Manco
References: Chapter 4, Mitchell
Chapter 1-2,4, Haykin Chapter 1-4, Bishop
Reti Neurali
Reti Neurali
• Perceptron Learning – Unità neurale – Gradiente Discendente
• Reti Multi-Layer – Funzioni nonlineari – Reti di funzioni nonlineari
• Backpropagation dell’errore – L’algoritmo backpropagation – problematiche
• Ottimi locali • Overfitting
Reti Neurali
• Il cervello umano – Tempo di switch di un neurone: ~ 0.001 (10-3) secondi – Numero di neuroni: ~10-100 miliardi (1010 – 1011) – connessioni per neurone: ~10-100.000 (104 – 105) – Tempo di classificazione: ~0.1 secondi
• Reti Neurali artificiali – “… a system composed of many simple processing elements operating in parallel
whose function is determined by network structure, connection strengths, and the processing performed at computing elements or nodes.” - DARPA (1988)
• Proprietà – Molti neuroni
– Molte interconnessioni pesate
– Computazione distribuita
– I pesi si costituiscono automaticamente
Reti Neurali
• Input: dati numerici di alta dimensionalità – Esempio: input da sensori – Rumore
• Output: nominale/Numerico/vettoriale – Funzione di forma ignota
• Risultato: leggibilità meno importante delle performances – Performance misurata in termini di accuratezza – Leggibilità: capacità di spiegare l’inferenza
• Esempi – Classificazione di immagini – Predizione finanziaria
Reti Neurali
– http://www.cs.cmu.edu/afs/cs/project/alv/member/www/projects/ALVINN.html
Reti Neurali
• Dimensionalità
Reti Neurali
• Dato x, vogliamo trovare h(x) consistente con c(x) – h(x) può essere approssimata con una funzione lineare y
– y = 1: h(x) = + – y = 0: h(x) = -
– Qual è una possibile istanziazione di y? – generalizzazione?
+
- +
+
- -
x1
x2
Reti Neurali
• Perceptron: modello neuronale singolo – Input definito come una combinazione lineare
– Output: funzione di attivazione basata su una soglia sull’input (threshold θ = w0)
x1
x2
xn
w1
w2
wn
Σ
x0 = 1 w0
Reti Neurali
• Il perceptron può rappresentare alcune funzioni – Emulazione di porte logiche
– ESERCIZIO: Quali pesi rappresentano g(x1, x2) = AND(x1, x2)? OR(x1, x2)? NOT(x)?
• Alcune funzioni non sono rappresentabili – Non linearmente separabili
Esempio A
+
- +
+
- -
x1
x2
+
+
Esempio B
-
- x1
x2
Reti Neurali
• Regola di learning del Perceptron (Rosenblatt, 1959) – Idea: un target può aggiornare I pesi in modo tale da produrre l’output desiderato
– dove t = c(x) è il valore di output atteso, o è il valore di output calcolato – η è il tasso di learning
Reti Neurali
• Algorithm Train-Perceptron (D ≡ {<x, t(x) ≡ c(x)>}) – inizializza tutti I pesi wi a valori random – WHILE non tutti i valori sono predetti correttamente DO
FOR EACH istanza x ∈ D Calcola l’output o(x)
FOR i = 1 to n wi ← wi + η(t - o)xi
Reti Neurali
• Teorema di convergenza – Se esiste un insieme di pesi consistente con i dati (cioè: I dati sono linearmente
separabili), l’algoritmo converge – Complessità computazionale – Regioni non linearmente separabili
– Se le regioni non sono linearmente separabili, l’algorimo entra in un loop infinito – Cicla sugli stessi pesi
Reti Neurali
• Unità lineari – Consideriamo l’unità più semplice:
– Obiettivo: trovare il “migliore adattamento” a D • Algoritmo di approssimazione
– Minimizzare l’errore sul training set D – Funzione dell’errore: Somma dei quadrati (SSE)
• Come si minimizza? – Ottimizzazione semplice – Ci muoviamo in direzione del più ripido gradiente nello spazio pesi-errore
Reti Neurali
• Vogliamo trovare una sequenza di pesi w(1), w(2), …, w(t) tali che
• Metodo:
• Giustificazione: – Sviluppo in serie di Taylor al primo ordine
– Sostituendo,
– Quando η è positivo, il secondo addendo è sempre negativo
Reti Neurali
• Il gradiente
• Regola di learning
Reti Neurali
• Algorithm Gradient-Descent (D, r) – Ogni istanza ha la forma <x, t(x)>, dove x è il vettore di input e t(x) è il valore di
output. r è il tasso di learning (ad esempio, 0.05) – Inizializza i pesi wi a valori random – WHILE la condizione di terminazione non è soddisfatta, DO
Inizializza ogni Δwi a 0 FOR each <x, t(x)> in D, DO
Calcola o(x) FOR each wi, DO
Δwi ← Δwi + r(t - o)xi
FOR each wi, DO wi ← wi + Δwi
– RETURN w
Reti Neurali
• Concetti Linearmente Separabili: classificazione ottimale – esempio A: Convergenza
• Concetti Non-LS: approssimazione – esempio B: non LS; la delta rule converge, ma non è ottimale – esempio C: non LS; buona generalizzazione
• Vettore w = somma dei x ∈ D misclassificati – Perceptron: minimizza w – Delta Rule: minimizza errore ≡ distanca dal separatore
Esempio A
+
- +
+
- -
x1
x2
+
+
Esempio B
-
- x1
x2
Esempio C
x1
x2
+ +
+
+ +
+ +
+ +
+
+
+ +
-
-
- -
- -
-
- -
-
- -
-
- -
- - -
Reti Neurali
• Funzione di base:
– Classificazione binaria – Separabilità lineare
• Due estensioini: – K classi – Relazioni nonlineari
Reti Neurali
• K classi
• Relazioni nonlineari
Reti Neurali
• Unità nonlineari – Funzione d’attivazione (originaria): sgn (w • x) – Attivazione nonlinare: generalizzazione di sgn
• Reti Multi-Layer – Multi-Layer Perceptrons (MLPs) – Una rete multi-layer feedforward è composta da uno strato di input, uno strato
intermedio (nascosto) e uno strato di output – Gli strati di output è intermedi sono perceptrons (unità nonlineari)
• MLPs in teoria – Le reti (di 2 or o più strati) possono rappresentare qualsiasi funzione
• MLPs in pratica – Trovare la topologia “giusta” è difficoltoso – La fase di training è molto dispendiosa
x1 x2 x3 Input Layer
u 11
h1 h2 h3 h4 Hidden Layer
o1 o2 v42
Output Layer
Reti Neurali
• Funzione sigmoidale – Funzione di attivazione a threshold: sgn (w • x)
– Funzione nonlineare: generalizzazione di sgn
– σ è la funzione sigmoidale
– utile per ottenere l’update dal gradiente per
• Una unità
• Reti Multi-layer
• Funzione iperbolica
x1
x2
xn
w1
w2
wn
Σ
x0 = 1 w0
Reti Neurali
Reti Neurali
• Obiettivo: minimizzazione dell’errore
• Utilizzando
• Dobbiamo calcolare
Reti Neurali
• Per un peso di output,
• otteniamo:
Reti Neurali
• riassumendo:
• Regola di aggiustamento:
Reti Neurali
• Su un peso interno,
• otteniamo:
Reti Neurali
• riassumendo:
• Regola di aggiustamento:
Reti Neurali
x1 x2 x3 Input Layer
w 11
h1 h2 h3 h4 Hidden Layer
o1 o2 v42
Output Layer
• Idea: Riportiamo l’effetto dell’errore ai layers successivi • Algorithm Train-by-Backprop (D, r)
– Ogni istanza ha la forma <x, t(x)>, dove x è il vettore di input e t(x) è il valore di output. r è il tasso di learning (ad esempio, 0.05)
– Inizializza tutti i wi a valori random – UNTIL la condizione di terminazione non è ottenuta, DO
FOR EACH <x, t(x)> in D, DO calcola o(x) = σ(net(x))
FOR EACH unità k di output, DO
FOR EACH unità j interna, DO
Aggiorna ogni w = wi,j (a = xj) o w = vj,k (a = zk) wstart-layer, end-layer ← wstart-layer, end-layer + Δ wstart-layer, end-layer Δwstart-layer, end-layer ← ηδend-layer aend-layer
– RETURN w, v
Reti Neurali
• Gradiente Discendente – Trova un ottimo locale
• Backprop in pratica – Tipicamente, si tende ad includere il momento α
– Quanto generalizza su altri esempi?
– La fase di training è molto lenta: migliaia di iterazioni (epoche)
– Inferenza (applicazione della rete) estremamente veloce
Reti Neurali
x1 x2
x1 x2
x1 x2
Reti Neurali
• Representational (i.e., Expressive) Power – 2-layer feedforward ANN
• Funzioni booleane • Ogni funzione continua limitata
– 3-layer feedforward ANN: Qualsiasi funzione • Inductive Bias
– Spazio delle ipotesi continuo – Spazio euclideo n-dimensionale (spazio dei pesi)
– Preference bias: “interpolazione” tra gli esempi positivi – Non ancora compreso a fondo
Reti Neurali
• Unità interne e Feature Extraction – I valori interni rappresentano le proprietà essenziali dell’input
• esempio
Reti Neurali
errorD(ok)
zj(01000000), 1 ≤ j ≤ 3
Reti Neurali
– w0 converge a 0
– Cambiamneti dopo le prime 1000 epoche
ui1, 1 ≤ i ≤ 8
Reti Neurali
• Overfitting – h’peggio di h su Dtrain, meglio su Dtest
• Overtraining – Overfitting dovuto a troppe iterazioni
Reti Neurali
• Altre possibili cause – Il numero di nodi interni è fissato – Troppo pochi (“underfitting”)
• La rete non riesce a riassumere • Analogia: sistemi di equazioni non
determinati (troppe variabili rispetto alle equazioni)
– Troppi • La rete non generalizza • analogia: approssimare una parabola
con un polinomio di grado >> 2
• Approcci – Prevenzione: selezione degli attributi – aggiramento
• Hold out o k-fold cross-validation • Weight decay: decrementiamo ogni
peso di un certo fattore ad ogni epoca – recovery: aggiunta o cancellazione di unità
interne
Reti Neurali
30 x 32 Inputs
sinistra fronte destra su