Anda di halaman 1dari 52

SVM: Mquinas de Vectores Soporte

Carlos Alonso Gonzlez Grupo de Sistemas Inteligentes Departamento de Informtica Universidad de Valladolid

Contenido
1.

2. 3. 4. 5.

6.

Clasificacin lineal con modelos lineales Regresin lineal Clasificacin lineal multirespuesta Regresin logstica Clasificacin no lineal con modelos lineales SVM: fundamentos
SVM: introduccin 2

Clasificacin lineal con modelos lineales

Si las clases son linealmente separables, basta con encontrar hiperplano que discrimine (por ejemplo perceptrn) Tambin pueden utilizarse mtodos de regresin lineal Adecuado para atributos numricos
SVM: introduccin 3

Problema linealmente separable

C`

C
SVM: introduccin 4

Perceptrn discreto
X1 w1 X2 w2 wn Xn Y

Y=sgn(i=0 xi . wi ) = X.W
SVM: introduccin 5

Teorema de convergencia del perceptrn

Rossemblat, 62, Nilson, 65 Si el conjunto de patrones de entrenamiento es linealmente separable, la regla de aprendizaje del perceptrn converge a un vector de pesos que clasifica correctamente todos los ejemplos de entrenamiento

2. Regresin lineal

Obtener la clase como una combinacin lineal de atributos: x=w0 + w1a1+w2a2+ +wkak Valor predicho para instancia i-esima w0a0(i) + w1a1(i)+w2a2(i)+ +wkak(i)= j=0,kwjaj(i)
(aadiendo atributo a0(i)=1)
SVM: introduccin 7

Minimizar error cuadrtico

Ajustar coeficientes (k+1 pesos) para minimizar error cuadrtico sobre n ejemplos de entrenamiento Error cuadrtico i=1,n (x(i) - j=0,kwjaj(i))2 Mnimos cuadrados

x(i):clase ejemplo i-simo, j=0,kwjaj(i): clase predicha ejemplo i-esimo

Ms ejemplos que atributos Matriz no singular


SVM: introduccin 8

3. Clasificacin lineal: regresin lineal multirespuesta

Cualquier tcnica de regresin se puede utilizar para clasificacin:

Entrenamiento: regresin para cada clase, con clase=1 para los ejemplos de la clase y clase=0 para los restantes Prueba: calcular el valor de cada regresin y asignar la clase correspondiente a la regresin con mximo valor.

Para regresin lineal: Regresin lineal multirespuesta


SVM: introduccin 9

Comportamiento Regresin lineal multirespuesta

Interpretacin:

rlm aproxima una funcin de pertenencia para cada clase (1 si la instancia pertenece a la clase, 0 en otro caso) Para clasificar una instancia no vista, se calcula la funcin de pertenencia de cada clase y se selecciona la mayor

Buen comportamiento si clases linealmente separables Interesante como elemento bsico de otros mtodos
SVM: introduccin 10

Problemas Regresin lineal multirespuesta

Los valores de la funcin de pertenencia no se puede asimilar a probabilidades:

Fuera del rango [0,1]

Mnimos cuadrado asume que los errores estn normalmente distribuidos

Est suposicin se viola en problemas de clasificacin: los valores de la clases en los ejemplos de entrenamiento son 0 y 1.

Solucin: regresin logstica


SVM: introduccin 11

4. Regresin logstica

A pesar del nombre, es un clasificador Realiza una transformacin de variable y luego construye un clasificador lineal Caso binario Reemplaza: Pr[1/a1, a2, , an] Por: log[Pr[1/a1, a2, , an]/(1-Pr[1/a1, a2, , an])]

SVM: introduccin

12

Transformacin logstica (logit)


Aplica [0, 1] en (-, +)

Modelo Pr[1/a1, a2, , an]=1/(1+ e(-w0 - w1a1-w2a2- -wkak))

SVM: introduccin 13

Ejemplo modelo regresin logstica


Modelo con w0=0.5, w1=1

Los parmetros se obtienen del conjunto de entrenamiento utilizando mxima verosimilitud (equivalente a mnimos cuadrados si distribucin normal)
SVM: introduccin 14

Mxima verosimilitud

(Maximun likelihood)

Objetivo: maximizar la probabilidad de los datos de entrenamiento respecto a los parmetros Regresin logstica maximiza log-likelihood i=1,n {(1-x(i))log(1-Pr[1/a1(i), a2(i), , an(i)]) + x(i)log(Pr[1/a1(i), a2(i), , an(i)])} Obtener los wi que maximizan log-likelihood

Con x(i) la clase de los ejemplos de entrenamiento (0 1)

Mtodo sencillo: iteracin mnimos cuadrados ponderados

SVM: introduccin

15

Regresin logstica y problemas multiclase

Regresin logsticas independiente para cada clase (similar a regresin lineal multirespuesta)

Problema: las estimaciones de probabilidades no suman 1 Solucin: modelos acoplados maximizando log-likelihood para todas las clases

Alternativa: clasificadores 2 a 2 (pairwise classification)


SVM: introduccin 16

Clasificadores 2 a 2

Hay que construir un clasificador para cada par de clases (pairwise classification) usando slo las instancias de las dos clases (clasificador binario) Si k clases k(k-1)/2 clasificadores binarios (pero con menos datos) Clasificacin final: voto

Se puede adaptar para obtener probabilidades

Si las distribucin de clases es uniforme, al menos tan rpido como cualquier otro mtodo multiclase

Si algoritmo lineal con n instancias: k(k-1)/2 * 2n/k =(k-1)n Ms ventajoso an si algoritmo ms que lineal
SVM: introduccin 17

5. Clasificacin no lineal con modelos lineales

Los modelos lineales solo pueden obtener fronteras de decisin lineales Cmo usarlos para problemas no linealmente separables?

Realizar una transformacin no lineal del espacio de entrada Construir un clasificador lineal en el espacio transformado Una frontera lineal en el espacio transformado puede representar una frontera no lineal en el espacio original
SVM: introduccin

18

Transformacin no lineal del espacio de entrada

[N. Cristianini, ICML01]

Espacio de entrada: no linealmente separables

Espacio transformado: linealmente separables


SVM: introduccin 19

Transformacin no lineal aumentando dimensionalidad x2 Z x1


1

x2 x1 1

1 1

x2 z
-2

1 -0.5 + 0.5

x1

Perceptrn unipolar discreto

SVM: introduccin

20

Ejemplo transformacin no lineal directa


Transformar el espacio de entrada reemplazando los atributos originales por todos los productos de n factores Para 2 atributos y 3 factores: x=w0 + w1a13+w2a12a2+ w3a1a22 +w4a23 Requiere:

Entrenamiento: transformar ejemplos de entrenamiento y crear modelo lineal Prueba: transformar nueva instancia, aplicar modelo lineal
SVM: introduccin 21

Problemas transformacin no lineal directa

Complejidad computacional

10 atributos, n=5: 2000 coeficientes Impracticable incluso para regresin lineal (cbica en el nmero de atributos)

Sobreajuste

Siempre que el nmero de parmetros es comparable al nmero de ejemplos

SVM: introduccin

22

6. Mquinas de vectores soporte

SVM es un algoritmo para encontrar clasificadores lineales en espacios transformados Resistentes al sobreajuste porque buscan una frontera de decisin especfica:

Hiperplano de margen mximo No crean explcitamente el espacio transformado La trasformacin no lineal es implcita

Eficiente en el caso no lineal


SVM: introduccin

23

Envolvente convexa

Dado un conjunto de puntos, su envolvente convexa es el conjunto convexo minimal que contiene al conjunto

Smil bidimensional: banda elstica que rodea un conjunto de puntos (polgono)

SVM: introduccin

24

Envolvente convexa de dos clases linealmente separables

La interseccin de las envolventes convexas de dos clases linealmente separables es vaca

Las envolventes convexas no se solapan

SVM: introduccin

25

Hiperplano de margen mximo

[WWW.dtreeg.com]

SVM: introduccin

26

Hiperplano de margen mximo

Hiperplano que proporciona la mxima separacin entre dos clases linealmente separables

Calcular la envolvente convexa de cada clase Determinar el segmento mas corto que une ambas envolventes Hiperplano de margen mximo : perpendicular al segmento anterior, cortndolo en su punto medio
SVM: introduccin 27

Hiperplano de margen mximo

SVM: introduccin

28

Hiperplano de margen mximo

SVM: introduccin

29

Vectores Soporte

Instancias ms prximas, de cada clase, al hiperplano de margen mximo.


Al menos uno por clase Posiblemente ms

El conjunto de Vectores Soporte define de forma nica el hiperplano de margen mximo

Las restantes instancias son irrelevantes


SVM: introduccin 30

Hiperplano de margen mximo y vectores soporte (I)

Ecuacin de un hiperplano x=w0 + w1a1+w2a2+ +wkak =wa Ecuacin hiperplano margen mximo en trminos de los vectores soporte (formulacin dual) x=b +i vector soporte iyia(i)a
SVM: introduccin 31

Hiperplano de margen mximo y vectores soporte (II)


x=b +i vector soporte iyia(i)a Con:

Obtencin de b,i:

b,i, parmetros numricos a determinar a, instancia (a clasificar) a(i), vector soporte i-esimo yi, clase de a(i) (que tambin es una instancia, de entrenamiento), con valores +1, -1 Problema de optimizacin cuadrtica con restricciones
No hay mnimos locales Herramientas optimizacin Algoritmos especficos para entrenamiento SVM ms eficientes

Suponiendo clases linealmente separables


SVM: introduccin 32

SVM y sobreajuste

Resistente al sobreajuste El sobreajuste esta relacionado con la flexibilidad con que se ajustan las fronteras de decisin (mayor con el nmero de parmetros)

EL hiperplano de margen mximo es relativamente estable: solo depende de los vectores soporte

Aadir o eliminar un pequeo nmero de instancias puede, con otras tcnicas de ajuste, modificar drsticamente las fronteras de decisin

Aadir o eliminar instancias slo afecta si son vectores soporte

SVM: introduccin

33

SVM y clases no linealmente separables

Realizar una transformacin no lineal del espacio de entrada


Sobreajuste: menos problemtico, pues los vectores soporte son relativamente estables Complejidad: sigue siendo un problema si se transforman las instancias y se busca el hiperplano de mximo margen en el espacio transformado Solucin: buscar vectores soporte en espacio original y no realizar de forma explicita la transformacin
SVM: introduccin 34

Ejemplo transformacin no lineal implcita


x=b +i vector soporte iyi(a(i)a)n

Similar a producto de n factores (= salvo coeficientes constantes) El producto escalar se realiza en el espacio original

No se generan nuevos atributos (no aumenta la dimensin) Sin embargo, el efecto es el mismo que si hubisemos realizado la transformacin y luego realizado el producto a(i)nan Los ejemplos de entrenamiento (incluidos vectores soporte) y los ejemplos de prueba permanecen en el espacio original (de menor dimensin)
SVM: introduccin 35

Kernel

La aplicacin no lineal se denomina Kernel Kernel polinomial: K(xi , xj)=(xixj)n Requisito: K(xi , xj)=(xi)(xj) Kernel gausiano, radial: K(xi , xj)=exp(- (xi-xj)2/22) Kernel perceptrn: K(xi , xj)= || xi-xj || Kernel sigmoidal: K(xi, xj)=tanh(xi xj )
SVM: introduccin 36

Ejemplo de Kernel: polinomial

[N. Cristianini, ICML01]

SVM: introduccin

37

Ejemplo: Kernel perceptrn

[Schlkopf, NIPS 2001]

SVM: introduccin

38

Kernel Polinomial: efecto del grado

Ben-Hur A, Ong CS, Sonnenburg S, Schlkopf B, Rtsch G, 2008 Support Vector Machines and Kernels for Computational Biology. PLoS Comput Biol 4(10): e1000173. doi:10.1371/journal.pcbi.1000173

SVM: introduccin

39

Kernel Gausiano: efecto del radio

SVM: introduccin

40

Ruido (clases no linealmente separables)

SVM: introduccin

41

Clases no linealmente separables

Hemos asumido clases linealmente separables (en espacio original o transformado) Si clases no linealmente separables

Admitir error, penalizndolo segn constante C Introducir parmetro C, que limita el efecto de cualquier instancia de entrenamiento en la superficie de decisin Se traduce en aadir restricciones 0 iC Sigue siendo un problema de optimizacin cuadrtica C se determina experimentalmente

SVM: introduccin

42

Efecto de C

SVM: introduccin

43

Datos dispersos (Sparse)

Los algoritmos para SVM mejoran notablemente su eficiencia si datos dispersos Motivo: se calculan productos escalares Datos dispersos

Clculo eficiente de productos escalares Iterando slo sobre los datos no nulos

SVM pueden procesar datos dispersos con 10.000s de atributos


SVM: introduccin 44

Algoritmos: (formulacin original, lineal)

Funcin discriminante: f(x)=w.x + b Margen: 1/||w|| Maximizar margen: Minimizar ||w||2


w,b

Sujeto a yi(w.xi + b) 1 Para i= 1, 2,... ,n


SVM: introduccin 45

Algoritmos: (formulacin original, Kernel, C)

Introducir variables de holgura ( slack) y penalizar con constante C Maximizar margen: Minimizar ||w||2 +C i=1,n i w,b,
Sujeto a yi(K(w,xi)+ b) 1- i Para i= 1, 2,... ,n

SVM: introduccin

46

Algoritmos (formulacin dual)


[J. Platt, 1998]

Problema de Optimizacin Cuadrtica Herramientas estndar de optimizacin cuadrtica

Poco eficientes

Memoria: cuadrtica con conjunto de entrenamiento Tiempo: entre lineal y cbico

SVM: introduccin

47

Algoritmos: SMO

Sequential Minimal Optimization J. Platt, 1998 Divide el problema de Optimizacin Cuadrtica en subproblemas Pequeos (OCP) Los problemas OCP se resuelven analticamente, evitando las iteraciones internas de los algoritmos de optimizacin Memoria: lineal con conjunto de entrenamiento (frente cuadrtico) Tiempo: entre lineal y cuadrtico Muy eficiente si datos dispersos

SVM: introduccin

48

Problemas multiclase

pairwise classification Si k clases k(k-1)/2 clasificadores binarios Clasificacin final: voto

SVM: introduccin

49

Discusin SVM

Clasificadores muy precisos en muchos dominios de aplicacin Resistentes al sobreajuste Elevado coste computacional

Temporal:

polinomial , n2.2? (experimental) exponencial? Al menos (2n2), mnimo error alcanzable con el Kernel SMO lineal?

Espacial

Mejora notable con datos dispersos (Sparse)


SVM: introduccin 50

Aplicaciones

Reconocimiento facial OCR Bioinformtica Minera de texto Series temporales

SVM: introduccin

51

Referencias

C. Bishop. Pattern Recognition and Machine Learning. Springer, N.Y., 2005 N. Cristianini and J. Shawe-Taylor. An introduction to Support Vector Machines and other kernel-based learning methods. Cambridge University Press, 2000. B. Schlkopf and A. J. Smola. Learning with kernels. MIT Press, Cambridge, MA, 2002. I. H. Witten and E. Frank. Data Mining: Practical Machine Learning Tools and Techniques. Morgan Kaufmann, 2nd edition, 2005. Ben-Hur A, Ong CS, Sonnenburg S, Schlkopf B, Rtsch G, 2008 Support Vector Machines and Kernels for Computational Biology. PLoS Comput Biol 4(10): e1000173. doi:10.1371/journal.pcbi.1000173 www.kernel-machines.net (tutoriales, bibliografa)
SVM: introduccin 52

Anda mungkin juga menyukai