Kernel Methods Corso di Intelligenza Artificiale, a.a. 2017-2018 Prof. Francesco Trovò 14/05/2018
Kernel Methods Definizione di Kernel Costruzione di Kernel Support Vector Machines Problema primale e duale Kernel representation of SVM
Kernel Methods Sono metodi memory based (usano direttamente il training set) Veloci a fare training Lenti per fare predizione Richiedono una metrica sullo spazio degli input Quando vogliamo catturare degli effetti nonlineari Possiamo utilizzare degli spazi a dimensioni più grandi (es. base functions φ i ( )) Dobbiamo scegliere degli spazi appropriati al problema analizzato Il loro uso rende i metodi più costosi computazionalmente Abbiamo un numero maggiore di feature Dobbiamo operativamente calcolare le feature
Esempio Supponiamo di avere un vettore di input x composto da M elementi e di voler calcolare la sua espansione a feature quadratiche Devo considerare tutte le feature, tutte le feature al quadrato e ogni combinazione a due a due delle variabili originali Mi richiede sia di calcolare le nuove feature composte da 5M+M2 elementi 2 Devo apprendere in uno spazio in cui ho 5M+M2 2 dimensioni
Con l utilizzo dei kernel non dobbiamo calcolare esplicitamente le feature utilizzate Una funzione di kernel è data da una funzione simmetrica esprimibile come prodotto di funzioni di base, ovvero: Può essere interpretata come una funzione di similarità tra i due vettori dello spazio degli input
Kernel classici Kernel lineare Kernel stazionario Kernel omogeneo Kernel Gaussiano
Kernel Trick Idea: ogni volta che la funzione di base appare nella formulazione del modello come un prodotto scalare possiamo sostituirla con il kernel Un kernel per essere valido deve essere esprimibile come prodotto scalare di funzioni di base Molti dei metodi di regressione e classificazione possono essere riformulati in termini di kernel
Esempio: Ridge regression Consideriamo la loss della regressione regolarizzata con la norma 2 del vettore dei parametri Mettendo il gradiente a zero abbiamo:
Gram Matrix Definiamo la Gram matrix di N vettori come: ovvero ogni elemento è É una matrice N N simmetrica (essendo il kernel simmetrico)
Loss in termini di Gram Matrix Esplicitando i termini della loss abbiamo E sostituendo la gram matrix Derivando e ponendo la derivata a zero abbiamo Ovvero abbiamo che la soluzione è una combinazione degli input e dipende solo dalla gram matrix
Quindi la predizione diventa La predizione è una combinazione lineare degli output del training set Differenze della formulazione a kernel: Inverto una matrice N N Non lavoro mai esplicitamente con il vettore delle feature φ(x)
Costruzione dei kernel Possiamo riformulare i nostri problemi con dei kernel a patto che essi siano validi Due metodi esistono per la costruzione di kernel: Costruzione dalle feature Costruzione diretta Composizione di kernel validi
Kernel costruiti con basi di feature k(x, x ) con x =
Costruzione diretta Definiamo il kernel da un prodotto scalare in qualche spazio Esempio: kernel in 2D Per calcolare il prodotto delle feature necessito 9 moltiplicazioni, per calcolare il valore del kernel solo 3 (2 moltiplicazioni ed un elevamento a potenza)
Testare se una funzione è un kernel Esiste un modo per capire se una funzione può essere un kernel valido, senza scrivere esplicitamente la base φ(x) La Gram matrix deve essere semidefinita positiva ( x 0, x T K x 0) Teorema (Mercer s theorem) Ogni funzione continua, simmetrica e semi definita positiva k(x, y) può essere espressa come un prodotto scalare in uno spazio (potenzialmente con molte dimensioni)
Regole di composizione dei Kernel
Kernel su oggetti A differenza dei vettori di feature, i kernel possono essere applicati anche elementi non numerici Grafi Oggetti Necessitiamo solo una misura di similarità tra due oggetti considerati Esempio: kernel sugli insiemi
Esempio: kernel regression
Esempi di metodi con kernel: GP Generalizzazione delle gaussiane multivariate nel caso infinito dimensionale Possono essere usati per: Regressione Classificazione Permettono di stimare sia il valore medio di una funzione, sia l incertezza corrispondente al punto predetto
Support Vector Machines Proposte negli anni 90 per problemi di classificazione, rimangono uno dei metodi migliori per questo task Sono state estese anche per risolvere problemi di regressione, clustering e anomaly detection Sono un argomento complesso in quanto richiedono la comprensione di Teoria dell apprendimento Teoria dei kernel Ottimizzazione vincolata Proveremo a descriverne i meccanismi principali per poter operare con esse
Definizione di SVM Una SVM è univocamete definita da: Un sottoinsieme S del training set (x, t) detto insieme dei support vector Un vettore di pesi a, uno per ogni support vector Una funzione di similarità tra i vettori di input k(x, x ) La predizione viene effettuata tramite la funzione: Ricorda molto la funzione decisionale del perceptron
Oltre il perceptron Idea: massimizzo il margine tra superfice di separazione e i dati
Massimizzare il Margine Distanza del più vicino punto del dataset al decision boundary Voglio il parametro che massimizzi questa grandezza
Ottimizzazione Purtroppo la cifra da massimizzare risulta essere un problema troppo complesso da risolvere Un problema equivalente risulta essere:
Funzione Lagrangiana Dato un problema di ottimizzazione vincolata Posso trasformarlo nelle seguente: Lagrangian function Condizioni KKT
Lagrangiana delle SVM Mettendo il gradiente a zero abbiamo Il problema diventa:
Primale vs. Duale Entrambi i problemi sono di ottimizzazione quadratica Problema primale Può essere risolto con complessità M 3 Se lo spazio dell è feature abbastanza piccolo posso risolverlo Problema duale Riporta il problema rispetto ad un kernel generico Può lavorare su spazi di feature potenzialmente di dimensioni infinite
Soluzione Classifico i punti in base a: Dove ho che molti dei coefficienti α n sono nulli e Posso sommare solo su un sottoinsieme S di N S support vectors, che solitamente è molto minore dei punti del training set
SVM con kernel gaussiani
Se le classi non sono separabili Posso riformulare il problema nel caso in cui non esista il margine, modificando i vincoli esistenti per rilassare il problema