370 likes | 500 Views
Lezione 5. Reti Neurali. Mercoledì, 10 Novembre 2004 Giuseppe Manco References: Chapter 4, Mitchell Chapter 1-2,4, Haykin Chapter 1-4, Bishop. Outline. Perceptron Learning Unità neurale Gradiente Discendente Reti Multi-Layer Funzioni nonlineari Reti di funzioni nonlineari
E N D
Lezione 5 Reti Neurali Mercoledì, 10 Novembre 2004 Giuseppe Manco References: Chapter 4, Mitchell Chapter 1-2,4, Haykin Chapter 1-4, Bishop
Outline • 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
Modelli Connezionisti • 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
Rete neurale • http://www.cs.cmu.edu/afs/cs/project/alv/member/www/projects/ALVINN.html
Riconoscimento di caratteri(Progetto scorso anno) • Dimensionalità
x2 + + - + x1 - - Le regioni di decisione • 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?
x0= 1 x1 w1 w0 x2 w2 xn wn Il Perceptron • Perceptron: modello neuronale singolo • Input definito come una combinazione lineare • Output: funzione di attivazione basata su una soglia sull’input (threshold = w0)
x2 x2 + + - + - + x1 x1 - + - - Esempio A Esempio B Le regioni di decisione • 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
Perceptron Learning • 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
Algoritmo Perceptron learning • 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
Convergenza dell’algoritmo • 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
Gradiente Discendente:Idea • 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
Idea di fondo • 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
Il gradiente • Regola di learning Gradiente discendente: delta rule
Algoritmo del Gradiente Discendente • 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
x2 x2 x2 + + + - + + - - + - + - + + + - + + - - - + - - x1 x1 x1 + + - + - + - - + - - - - - - - - Esempio A Esempio B Esempio C Delta e Perceptron Rules • 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
Sommario: Perceptron Learning • Funzione di base: • Classificazione binaria • Separabilità lineare • Due estensioini: • K classi • Relazioni nonlineari
Estensioni • K classi • Relazioni nonlineari
Output Layer o1 o2 v42 Hidden Layer h1 h2 h3 h4 u 11 x1 x2 x3 Input Layer Reti Multi-Layer • 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
x0= 1 x1 w1 w0 x2 w2 xn wn Funzioni di attivazione nonlineari • 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
Addestramento di FFNNs: Backpropagation • Obiettivo: minimizzazione dell’errore • Utilizzando • Dobbiamo calcolare
Backpropagation (2) • Per un peso di output, • otteniamo:
Backpropagation (3) • riassumendo: • Regola di aggiustamento:
Backpropagation (4) • Su un peso interno, • otteniamo:
Backpropagation (5) • riassumendo: • Regola di aggiustamento:
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-layeraend-layer • RETURN w, v Output Layer o1 o2 v42 Hidden Layer h1 h2 h3 h4 w 11 x1 x2 x3 Input Layer Algoritmo Backpropagation
Proprietà • 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
x1 x2 x1 x2 x1 x2 Potere di rappresentazione
Potere di rappresentazione • 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
Learning Hidden Layer Representations • Unità interne e Feature Extraction • I valori interni rappresentano le proprietà essenziali dell’input • esempio
errorD(ok) zj(01000000), 1 j 3 Evoluzione dell’errore e dei nodi interni
ui1, 1 i 8 Evoluzione dei pesi • w0 converge a 0 • Cambiamneti dopo le prime 1000 epoche
Overfitting • Overfitting • h’peggio dih su Dtrain,meglio su Dtest • Overtraining • Overfitting dovuto a troppe iterazioni
Overfitting • 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
sinistra fronte destra su 30 x 32 Inputs Progetto:Reti per il riconoscimento facciale