Support Vector Machines
Separadores lineales Clasificacion binaria puede ser vista como la tarea de separar clases en el espacio de caracteristicas w T x + b > 0 w T x + b = 0 w T x + b < 0 f(x) = sign(w T x + b) 1
Separadores lineales Cual de todos es optimo?
Margen de clasificacion Distancia desde un ejemplo x i al separador es Los ejemplos mas cercanos al hiperplano son los vectores de soporte. Margen ρ del separador es la distancia entre los vectores de soporte ρ r 3
Calsificacion por maximo margen Maximizar el margen es bueno de acuerdo a la intuicion Implica que solo los vectores de soporte importan los otros ejemplos de entrenamiento son ignorables. 4
SVM lineal matematicamente Consideremos training set {(x i, y i )} i=1..n, x i R d, y i {-1, 1} separado por un hiperplano. Entonces para cada ejemplo en entrenamiento (x i, y i ): w T x i + b -1 if y i = -1 w T x i + b 1 if y i = 1 y i (w T x i + b) 1 Para cada vector de soporter x s la distancia entre cada x s y el hyperplano es T y s ( w xs b) 1 r w w Entonces el margen puede expresarse a traves de w y b como: 5 r w
SVM lineal matematicamente Entonces podemos formular el problema de optimizacion cuadratica: Encontrar w y b tales que w se maximiza y para todo (x i, y i ), i=1..n : y i (w T x i + b) 1 6 Reformulado como: Encontrar w y b tal que Φ(w) = w =w T w se minimiza y para todo (x i, y i ), i=1..n : y i (w T x i + b) 1
Resolviendo el problema de optimizacion Encontrar w y b tal que Φ(w) =w T w se minimiza y para todo (x i, y i ), i=1..n : y i (w T x i + b) 1 Se necesita optimizar una funcion cuadratica sujeto a restricciones lineales Problemas de optimizacion cuadratica son problemas de programacion matematica conocidos para los cuales existen muchos algoritmos no triviales que proveen soluciones. La solucion involucra construir un problema dual donde un multiplicador de Lagrange α i se asocia con toda desigualdad que restringe el problema primal (original) : Encontrar α 1 α n tales que Q(α) =Σα i - ½ΣΣα i α j y i y j x it x j ise maximiza y (1) Σα i y i = 0 () α i 0 para todo α i 7
Solucion del problema de optimizacion Dada una solucion α 1 α n del problema dual, una solucion del primal es: w =Σα i y i x i b = y k - Σα i y i x i T x k for any α k > 0 Cada no zero α i indica que su correspondiente x i es un vector de soporte. La funcion de clasificacion es (w no se necesita explicitamente): f(x) = Σα i y i x it x + b Notemos que se basa en el producto interno entre el punto de test x y los vectores de soporte x i Tambien recordar que resolver el problema de optimizacion involucra calcular todos los productos internos x it x j con todos los puntos de entrenamiento. 8
Clasificacion con margen soft Que pasa s el grupo de entrenamiento no es linealmente separable? Se pueden agregar Slack variables ξ i para mejorar la clasificacion de puntos dificiles, lo cual resulta en un soft margin. ξ i ξ i 9
Clasificacion con margen soft matematicamente La formulacion anterior es: Encuentre un w y un b tales que Φ(w) =w T w se minimiza para todo (x i,y i ), i=1..n : y i (w T x i + b) 1 La formulacion modificacda contiene slack variables: Encuentre w y b tal que Φ(w) =w T w + CΣξ i se minimiza para todo (x i,y i ), i=1..n : y i (w T x i + b) 1 ξ i,, ξ i 0 Parametro C con una forma de controlar sobreentrenamiento: maneja la importancia relativa de maximizar el margen y ajustar los datos de entrenamiento 10
Solucion para la clasificacion soft Problema dual es identico al caso separable (no seria indentico si la penalizacion por norma de las slack variables CΣξ i se usara en la funcion objetivo primal, se necesitarian mutiplicadores de Lagrange adicionales para las slack variables): Encontrar α 1 α N tal que Q(α) =Σα i - ½ΣΣα i α j y i y j x it x j se maximiza y (1) Σα i y i = 0 () 0 α i C for all α i Otra vez, x i con non-zero α i serian vectores de soporte. La solucion del problema dual es : w =Σα i y i x i b= y k (1- ξ k ) - Σα i y i x it x k for any k s.t. α k >0 Una vez mas no necesitamos calcular w explicitamente para clasificacion: f(x) = Σα i y i x it x + b 11
Justificacion teorica del ancho del margen Vapnik probo lo siguiente : La clase de separadores lineales optimos tiene dimension VC, h, acotada por arriba D h min, 0 1 m donde ρ es el margen, D es el diametro de la menor esfera que contiene a todas las muestras de entrenamiento y m 0 es la dimension. Intuitivamente esto implica que sin pensar en la dimension m 0 se puede minimizar la dimension VC maximizando el margen ρ. 1 Por lo cual la complejidad del clasificador se mantiene reducida a pesar de la dimension de los vectores.
SVM lineales El clasificador es un hiperplano. Los puntos mas importantes son los vectores de soporte; ellos definen el hiperplano Los algoritmos de optimizacion cuadratica pueden identificar que puntos de entrenamiento x i son vectores de soporte con multiplicadores de Lagrange α i no nulos En la formulacion dual del problema y en la solucion, los puntos de entrenamiento aparecen solo en productos internos: Encontrar α 1 α N tal que Q(α) =Σα i - ½ΣΣα i α j y i y j x it x j es maximizada y (1) Σα i y i = 0 () 0 α i C para todo α i f(x) = Σα i y i x it x + b 13
SVM no lineales Los grupos de datos que son linealmente separables con algun ruido producen buenas soluciones: 0 x Pero que pasa con los que son mas dificiles? 0 x Quizas se prodria proyectar en espacios donde se discrimine mejor: x 14 0 x
SVMs no lineales: espacios de caracteristicas Idea general: el espacio de caracteristicas inicial puede ser mapeado en otro espacio de mayor dimension donde el grupo de entrenamiento es separable: Φ: x φ(x) 15
El truco del Kernel Los clasifcadores lineales se basan en los productos internos K(x i,x j )=x it x j Si cada punto se mapea en otro espacio via alguna transformacion Φ: x φ(x), el producto interno resulta : K(x i,x j )= φ(x i ) T φ(x j ) Una funcion de kernel es una funcion equivalente a un producto interno en algun espacio de caracteristicas. Ejemplo: vectores bidimensionales x=[x 1 x ]; sea K(x i,x j )=(1 + x it x j ), Veamos que K(x i,x j )= φ(x i ) T φ(x j ): K(x i,x j )=(1 + x it x j ),= 1+ x i1 x j1 + x i1 x j1 x i x j + x i x j + x i1 x j1 + x i x j = = [1 x i1 x i1 x i x i x i1 x i ] T [1 x j1 x j1 x j x j x j1 x j ] = = φ(x i ) T φ(x j ), donde φ(x) = [1 x 1 x 1 x x x 1 x ] 16 Por lo cual una funcion de kernel mapea implicitamente datos a un espacio de mayor dimension (sin necesidad de calcular cada φ(x) explicitamente).
Que funciones son kernels? Para algunas funciones K(x i,x j ), chequear que K(x i,x j )= φ(x i ) T φ(x j ) puede ser problematico. Mercer s theorem: Cada funcion simetrica es un kernel Funciones simetricas definidas semi-positivas corresponden a una matriz Gram simetrica definida semipositiva : K(x 1,x 1 ) K(x 1,x ) K(x 1,x 3 ) K(x 1,x n ) K(x,x 1 ) K(x,x ) K(x,x 3 ) K(x,x n ) K= K(x n,x 1 ) K(x n,x ) K(x n,x 3 ) K(x n,x n ) 17
Ejemplos Lineal: K(x i,x j )= x it x j MapeoΦ: x φ(x), donde φ(x) es x Polynomial de grado p: K(x i,x j )= (1+ x it x j ) p Mapeo Φ: x φ(x), donde φ(x) tiene dimensiones Gaussian (radial-basis function): K(x i,x j ) = d p p Mapeo Φ: x φ(x), donde φ(x) es de dimension infiinita: todo punto se mapea en una funcion (una Gaussiana); la combinacion de funciones de vectores de soporte es el separador. Un espacio de dimension mayor tiene su dimensionalidad intrinsica d (el mapeo no es sobreyectivo ), pero los separadores lineales en el, corresponden a separadores nolineales en el espacio original. e x x i j 18
SVM no lineal matematicamente Formulacion dual: Find α 1 α n such that Q(α) =Σα i - ½ΣΣα i α j y i y j K(x i, x j ) is maximized and (1) Σα i y i = 0 () α i 0 for all α i Solucion: f(x) = Σα i y i K(x i, x j )+ b Tecnicas de optimizacion para α i s son las mismas! 19
Aplicaciones de SVM SVMs fueron propuestos por Boser, Guyon and Vapnik en 199 y ganaron mas popularidad al final de los 90s. SVMs son actualmente uno de los mejores clasificadores para un gran numero de problemas que van desde clasificacion de textos a datos genomicos. SVMs pueden ser aplicados a datos muy complejos mas alla de los vectores reales (e.g. grafos, secuencias, datos relacionales) si se diseñan kernels para esos datos. las tecnicas de SVM han sido extendidos a otros problemas como regresion [Vapnik et al. 97], y componentes principales [Schölkopf et al. 99], etc. Los algoritmos mas populares de SVMs usan descomposicion para mejorar un subconjunto de α i s en cada paso, e.g. SMO [Platt 99] y [Joachims 99] Ajustar SVMs es un arte: seleccionar un kernel especifico y parametros es usualmente realizado manualmente observando los resultados. 0