Lezione 5 Reti Neurali Mercoled 10 Novembre 2004
Lezione 5 Reti Neurali Mercoledì, 10 Novembre 2004 Giuseppe Manco References: Chapter 4, Mitchell Chapter 1 -2, 4, Haykin Chapter 1 -4, Bishop Reti Neurali
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 Reti Neurali
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
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
Rete neurale – http: //www. cs. cmu. edu/afs/cs/project/alv/member/www/projects/ALVINN. html Reti Neurali
Riconoscimento di caratteri (Progetto scorso anno) • Dimensionalità Reti Neurali
Le regioni di decisione x 2 + + - + x 1 - • 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? Reti Neurali
Il Perceptron • x 1 w 1 x 2 w 2 xn wn x 0 = 1 w 0 Perceptron: modello neuronale singolo – Input definito come una combinazione lineare – Output: funzione di attivazione basata su una soglia sull’input (threshold = w 0) Reti Neurali
Le regioni di decisione x 2 + - + + x 1 - - - + x 1 Esempio A • Esempio B Il perceptron può rappresentare alcune funzioni – Emulazione di porte logiche – ESERCIZIO: Quali pesi rappresentano g(x 1, x 2) = AND(x 1, x 2)? NOT(x)? • Alcune funzioni non sono rappresentabili – Non linearmente separabili Reti Neurali OR(x 1, x 2)?
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 Reti Neurali
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 + (t - o)xi Reti Neurali
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 Reti Neurali
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 Reti Neurali
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 Reti Neurali
Gradiente discendente: delta rule • Il gradiente • Regola di learning Reti Neurali
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 + r(t - o)xi FOR each wi, DO wi + wi – RETURN w Reti Neurali
Delta e Perceptron Rules x 2 + - + + x 1 - - - + x 1 Esempio A • + + + -+ + - - -x 1 + + + - Esempio B Esempio C 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 Reti Neurali
Sommario: Perceptron Learning • Funzione di base: – Classificazione binaria – Separabilità lineare • Due estensioini: – K classi – Relazioni nonlineari Reti Neurali
Estensioni • K classi • Relazioni nonlineari Reti Neurali
Reti Multi-Layer • Unità nonlineari Output Layer o 1 – Funzione d’attivazione (originaria): sgn (w x) – Attivazione nonlinare: generalizzazione di sgn • Reti Multi-Layer Hidden Layer h 1 o 2 h 3 h 4 u 11 Input Layer x 1 x 2 x 3 – 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 Reti Neurali v 42
Funzioni di attivazione nonlineari • x 1 w 1 x 2 w 2 xn wn x 0 = 1 w 0 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 Reti Neurali
Reti Feed-Forward Reti Neurali
Addestramento di FFNNs: Backpropagation • Obiettivo: minimizzazione dell’errore • Utilizzando • Dobbiamo calcolare Reti Neurali
Backpropagation (2) • Per un peso di output, • otteniamo: Reti Neurali
Backpropagation (3) • riassumendo: • Regola di aggiustamento: Reti Neurali
Backpropagation (4) • Su un peso interno, • otteniamo: Reti Neurali
Backpropagation (5) • riassumendo: • Regola di aggiustamento: Reti Neurali
Algoritmo Backpropagation • 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 Output Layer FOR EACH unità j interna, DO o 1 Hidden Layer h 1 o 2 h 3 h 4 w 11 Aggiorna ogni w = wi, j (a = xj) o w = vj, k (a = zk) Input Layer wstart-layer, end-layer + wstart-layer, end-layer aend-layer – RETURN w, v Reti Neurali x 1 x 2 v 42 x 3
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 Reti Neurali
Potere di rappresentazione x 1 x 2 x 1 Reti Neurali x 2
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 Reti Neurali
Learning Hidden Layer Representations • Unità interne e Feature Extraction – I valori interni rappresentano le proprietà essenziali dell’input • esempio Reti Neurali
Evoluzione dell’errore e dei nodi interni error. D(ok) zj(01000000), 1 j 3 Reti Neurali
Evoluzione dei pesi ui 1, 1 i 8 – w 0 converge a 0 – Cambiamneti dopo le prime 1000 epoche Reti Neurali
Overfitting • Overfitting – h’peggio di h su Dtrain, meglio su Dtest • Overtraining – Overfitting dovuto a troppe iterazioni Reti Neurali
Overfitting • Altre possibili cause – Il numero di nodi interni è fissato – Troppo pochi (“underfitting”) • • – Analogia: sistemi di equazioni non determinati (troppe variabili rispetto alle equazioni) Troppi • • • La rete non riesce a riassumere 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
Progetto: Reti per il riconoscimento facciale sinistra fronte destra su 30 x 32 Inputs Reti Neurali
- Slides: 37