Algoritmi di Classificazione Non Lineari Esercitazioni per il corso di Logica ed Intelligenza Artificiale a.a. 2013-14 Vito Claudio Ostuni Regressione Logistica Superficie di separazione lineare Modelli Lineari Generalizzati (GLMs) (x1,x2 ) ϕi (x) =xi2 (x12,x22 ) x22 x2 x1 x12 Per classificare correttamente questi campioni dovremmo esplicitamente introdurre delle trasformazioni non lineari delle features originarie Se estendiamo il caso ad un problema con molte features il sistema diventa troppo complesso e quest’approccio diventa improponibile. Reti Neurali Artificiali (ANN) Reti Neurali Artificiali (ANN) Ispirazione biologica Modello del Neurone Il Problema dello XOR Questi dati non sono linearmente separabili. Non possiamo utilizzare il solo perceptron in quanto è in grado di discriminare solamente dati linearmente separabili (es. AND, OR, NOT). Il Problema dello XOR OR AND Multi Layer Perceptron (MLP) Si possono combinare gli output dei vari neuroni al fine di creare una rete di neuroni (rete multistrato) Questa rete è capace di emulare correttamente la funzione XOR. 0.5 1 x1 1 1 1.5 -2 1 1 x2 1 0.5 1 1 0.5 y Multi Layer Perceptron Rete di tipo Feed Forward. Multi Layer Perceptron Modello di un neurone con funzione di attivazione logistica Una rete multistrato composta da neuroni con funzioni d’attivazione non lineari (derivabili) è un’approssimatore universale. Multi Layer Perceptron Una rete composta da tre strati (un solo strato nascosto) è in grado di approssimare qualsiasi funzione continua. È in grado di separare regioni convesse, serve un numero di neuroni nello strato nascosto almeno pari al numero di lati della regione. Una rete con due strati nascosti è in grado di approssimare qualsiasi funzione non continua. È in grado di separare regioni qualsiasi. Algoritmo Back Propagation È un possibile algoritmo di addestramento per una rete MLP • Ingressi a valori reali ∈ [0,1] • Neuroni non lineari con funzione di uscita differenziabile Vogliamo trovare le matrici dei pesi Wji e Wkj ed i bias tali da minimizzare l’errore sul Training Set E Utilizzo della discesa del gradiente W W W (k) (k) Training Set = <a , y > k=1..m Funzione costo: errore quadratico medio E 1 m (k ) (k ) 2 ( a y ) i k 1 2 i Vantaggi: •Permette di addestrare reti con un numero qualsiasi di strati nascosti Svantaggi: •Funzione costo con minimi locali •Discesa del gradiente lenta Algoritmo Back Propagation Output Layer si può calcolare l’errore in quanto l’uscita ai è nota e possiamo quindi applicare la regola di modifica dei pesi W ji W ji a j i i Ei g '(ini ) (ai y ) g '(ini ) ai uscita neurone i-mo y uscita desiderata (training set) α learning rate Hidden Layer In questo caso non si conosce l’errore commesso da un neurone interno in quanto è nota solamente l’uscita desiderata sui neuroni d’uscita e non su quelli interni. Quindi si effettua la retro propagazione degli errori dallo strato di output a quello nascosto. Si dimostra che la regola di modifica dei pesi da applicare è: Wkj Wkj ak j j g '(in j ) W ji i i Algoritmo Back Propagation L’errore si retro propaga su ciascun nodo proporzionalmente alla forza di connessione tra il nodo nascosto e il nodo di output. L’idea è che il nodo nascosto j sia responsabile per una certa parte dell’errore Δi in ognuno dei nodi di output a cui è collegato Backward forward Algoritmo Back Propagation Inizializza i pesi casualmente a valori bassi Repeat: •Calcola l’uscita della rete con i pesi aggiornati •Aggiorna i pesi sullo strato di output W ji W ji a j i dove i ( yi ai ) g '(ini ) •Aggiorna i pesi sugli strati nascosti Wkj Wkj ak j dove j = iW ji g '(in j )ak i Termina se si è raggiunto un numero max di epoche o un altro criterio di convergenza Problematiche pratiche del Back Propagation Inizializzazione dei pesi Si deve evitare la saturazione (dove la derivata è nulla) Applicare agli ingressi la normalizzazione a media nulla e varianza unitaria (z-score). Inizializzare i pesi a valori casuali tali da mantenere la somma pesata nella zona con pendenza non nulla. Ci sono varie tecniche, ad es. Nguyen-Widrow Randomization. Problematiche pratiche del Back Propagation Oscillazioni e Minimi Locali La funzione costo anche se di forma quadratica presenta minimi locali per via delle non-linearità introdotte dalle funzioni di attivazione dei neuroni. Un metodo per mitigare il problema consiste nell’introduzione di un termine μ detto momentum. Questo termine tiene traccia dell’aggiornamento precedente e serve a limitare le oscillazioni (forma di regolarizzazione). Wkj Wkj ak j ( ak j ) iteraz _ precedente Generalizzazione Early Stopping Ad un certo punto durante l’addestramento si va in overfitting e la rete comincia ad imparare “a memoria” i dati del training set. Dopo un certo numero di epoche l’errore sul training continua a scendere, tendendo asintoticamente a zero, mentre quello sul validation set comincia a salire. Nel momento in cui si verifica l’incremento dell’errore nel validation si arresta l’addestramento e vengono restituiti i pesi ed il bias corrispondenti al minimo dell’errore di validazione. Support Vector Machines (SVMs) e Metodi Kernel Ipotesi: dati linearmente separabili Classificatore binario Ci sono diversi iperpiani capaci di separare correttamente I campioni. Possiamo utilizzare algoritmi già visti per trovare uno di questi iperpiani (Regressione Logistica, Perceptron). Tra tutti questi iperpiani quale scegliamo? Support Vector Machines (SVMs) Tra tutti questi iperpiani quale scegliamo? Scegliamo l’iperpiano separatore ottimo ovvero l’iperpiano con Margine Massimo. Il margine d+ (o d-) è la distanza tra l’iperpiano ed il campione positivo (o negativo) più vicino ad esso(il punto con la distanza minima rispetto all’iperpiano di separazione). L’iperpiano con margine massimo è detto ottimo. Ci interessano solo i campioni che stanno sui margini. Questi punti sono detti vettori di supporto. Ipotesi: dati linearmente separabili Classificatore binario h( x) wt x b yi y ( xi ) sign(h( xi )) sign( wt xi b) y 1 Iperpianio wt x b 0 Assumendo che i dati siano linearmente separabili abbiamo che: wt xi b 0 per yi =1 wt xi b 0 per yi =-1 Per i punti più vicini all’iperpiano di separazione possiamo impostare: wt x b 1 wt x b=-1 possiamo combinare entrambe le disuguaglianze in: yi ( wt xi b) 1 0 La distanza tra l’iperpiano wt x b 0 ed un punto generico xi è ( wt xi b) yi w 2 w Per i punti che soddisfano (wt xi b) yi 1 0 ovvero i punti che 1 giacciono sui due iperpiani la distanza diventa quindi w il margine è 2 w Possiamo impostare il seguente problema di ottimizzazione. Vogliamo trovare i parametri w e b tali da massimizzare il margine 2 w Massimizziamo il margine andando a minimizzare t Rispettando i vincoli: yi (w xi b) 1 0, 1 2 1 t w ww 2 2 i=1...m Abbiamo ottenuto un problema di ottimizzazione convesso(quadratico con vincoli di disuguaglianza lineari) Quindi possiamo trovare l’iperpiano ottimo andando a risolvere questo problema vincolato di ottimizzazione quadratica. 1 2 min w w ,b 2 soggetto a : yi ( wt xi b) 1 0, i=1...m Questo problema di ottimizzazione è detto PRIMALE. Il problema di ottimizzazione primale può esser trasformato in un problema DUALE più semplice da risolvere. È possibile in quanto la funzione costo e vincoli sono strettamente convessi. Si fa uso dei moltiplicatori di Lagrange α e della funzione Lagrangiana L. 1 L(w, b, ) w 2 2 m i ( yi ( wt xi b) 1) i 1 Si minimizza rispetto a w e b (variabili primali) e si massimizza rispetto ad α (variabili duali) Abbiamo che se yi (wt xi b) 1 0 i 0, altrimenti i 0 l’ ottimo si ottiene mimizzandoL(w, b, ) rispetto a w e b. Quindi bisogna uguagliare a 0 il gradiente. L(w, b, ) 0 w* w L(w, b, ) 0 b m i 1 * i yi xi eq1 m * i yi 0 eq2 i 1 all’ottimo (w*,b*) abbiamo i* [ yi (w*t xi b* ) 1] 0 per cui i vettori tali chè i* 0 sono i vettori di supporto Inserendo eq1 ed eq2 in L(w, b, ) otteniamo il seguente problema di ottimizzazione quadratica m 1 m max i yi xi - yi y j i j xi x j 2 i , j 1 i 1 con vincoli: i 0 e m y i 1 i i 0 m 1 m max i yi xi - yi y j i j xi x j 2 i , j 1 i 1 con vincoli: i 0 e m w i* yi xi * i 1 m y i 1 i i 0 i* sono sono le soluzioni del problema di ottimizzazione duale per trovare b* utilizziamo i* [ yi (w*t xi b* ) 1] 0 Proprietà della soluzione: • αi* =0 per tutti i punti che non giacciono sui margini • αi* <> 0 per i vettori di support soluzione sparsa • w* è una combinazione lineare dei soli vettori di supporto Quindi in definitiva l’iperpiano di separazione a margine massimo trovato è: w*t x b* * y ( x t x)+b* ivettori _ sup i i i Estensione per dati non linearmente separabili Errore di miss classificazione In situazioni simili alle precedenti (dati non linearmente separabili) è possibile effettuare una separazione delle classi attraverso un iperpiano solo accettando che, dopo aver determinato l’iperpiano separatore, alcuni valori del training set con pattern positivo si trovino nella classe dei target negativi e viceversa. Si deve accettare che alcuni vincoli vengano violati. • Si introduce una variabile slack ξi per ogni vincolo in modo da ammettere una tolleranza agli errori yi ( wt xi b) 1 i • Si introduce nella funzione costo da minimizzare un termine C che serve a penalizzare gli errori di miss-classificazione fatti 1 w 2 2 m C i i 1 ξi sono delle variabili costo proporzionali a quanto il punto anomalo si discosta dall’iperpiano. ξi >1 indica un errore di missclassificazione xi i w C (parametro di regolarizzazione ) serve a controllare il trade-off tra complessità dello spazio delle ipotesi ed il numero di errori accettabili. Un C grande dà una penalizzazione maggiore agli errori. Quindi il problema di ottimizzazione diventa: Minimizzare m 1 2 w C i 2 i 1 Con vincoli: yi ( wt xi b) 1 i i 0 Il duale diventa: m 1 m max i yi xi yi y j i j xi x j 2 i , j 1 i 1 con vincoli: 0 i C , m y i 1 i i 0 Ora le variabili duali sono limitate da C La soluzione proposta non basta. Non garantisce buone prestazioni perchè un iperpiano può solo rappresentare dicotomie dello spazio delle istanze. Kernel Methods Cover’s theorem on the separability of patterns “A complex pattern-classification problem cast in a high-dimensional space non-linearly is more likely to be linearly separable than in a low-dimensional space” 1. si mappano i dati in ingresso (input space) in uno spazio a dimensione molto superiore (feature space) attraverso l’uso di funzioni kernel; 2. si calcola l’iperpiano ottimo all’interno del feature space. •Quindi invece di aumentare la complessità del classificatore (che resta un iperpiano) si aumenta la dimensione dello spazio delle features. •Uno spazio di dimensione maggiore causa però seri problemi di calcolo, perché l’algoritmo di apprendimento deve lavorare con vettori di grandi dimensioni. La proiezione in uno spazio con maggiore dimensionalità è solo implicito grazie all’utilizzo di funzioni Kernel opportune (Kernel trick) Nella risoluzione del problema di ottimizzazione c’è il prodotto ( xi )t (x j ) questo prodotto non deve esser calcolato esplicitamente nello spazio delle features se si trova una funzione kernel k ( xi ,x j )con particolari proprietà (kernel definiti positivi). k ( xi ,x j ) t ( xi ) (x j ) Kernel trick Il kernel è una funzione che restituisce il prodotto delle immagini evitando così di eseguire il prodotto esplicito tra i due vettori. Possiamo ignorare la forma esplicita di ϕ Kernel trick Se è possibile definire una funzione kernel tale chè k ( xi ,x j ) ( xi ) (x j ) k 1k ( xi ) k (x j ) M t Il problema di ottimizzazzione diventa m 1 m max i yi xi yi y j i j k ( xi , x j ) 2 i , j 1 i 1 con vincoli: 0 i C , m y i 1 i i 0 Non si devono calcolare esplicitamente le trasformazioni ( xi ) nello spazio delle features. Dovrei calcolare il prodotto scalare k ( xi ) k (x j ) ma non lo calcolo esplicitamente perché posso calcolarlo indirettamente tramite la funzione kernel. k ( xi ,x j ) t ( xi ) (x j ) Gaussian kernel Vantaggi - Non ci sono minimi locali (problema di ottimizzazione quadratico -> soluzione ottima) - La soluzione ottima può esser trovata in tempo polinomiale -Ci sono pochi parametri da scegliere (C, tipo di kernel e parametri specifici del kernel) -Soluzioni stabili (es. non c’è il problema della inizializzazione casuale dei pesi come nelle reti neurali) -La soluzione è sparsa in quanto coinvolge solamente i vettori di supporto