TEMA 6.

SVM – Support Vector Machines
(M´
aquinas de Vectores Soporte)
Francisco Jos´e Ribadas Pena
Modelos de Razonamiento y Aprendizaje
5 Inform´atica
ribadas@uvigo.es
17 de abril de 2012

– FJRP ccia [Modelos de Razonamiento y Aprendizaje] –

.. xn } y ~ z = {z1 ... Uso de funciones kernel ”describen” el problema en un ”espacio de caracter´ıticas” de mayor dimensi´on permiten aplicar ”algoritmos lineales” sobre ”problemas no lineales” PREVIO Producto escalar de 2 vectores Con ~ x = {x1 . . m´aquinas de vectores soporte Pertenece a la familia de m´etodos kernel machines clasificaci´on (binaria) M´etodo de regresi´on (predicci´ on num´erica) Principios b´ asicos 1. + xn zn i=1 Norma de un vector (m´odulo) v u n q √ uX 2 2 2 t k~ xk = ~ x·~ x= x = x2 1 + x2 + . x2 . + xn i i=1 – FJRP ccia [Modelos de Razonamiento y Aprendizaje] – 1 .. ..6... z2 . Uso de clasificadores lineales de ”margen m´aximo” 2.1 Introducci´ on SVM (Support Vector Machines)... zn } n n ·:R ×R →R ~ x·~ z= n X xi zi = x1 z1 + x2 z2 + .

.2 Clasificadores lineales Espacio de entrada: X (≡ Rn .. yl )} Cada ejemplo de entrenamiento ser´a un par (~ xi.. . y1). y2). (~ x2. dimensi´ on n) Espacio de salida: Y = {−1. +1}  ~ x1 ∈ X yi ∈ Y Conjunto de entrenamiento L = {(~ x1.6. (~ xl . yi) con Objetivo: Encontrar un hiperplano h de dimensi´ on (n − 1) que separe los ejemplos etiquetados con −1 de los etiquetados con +1 con un “margen m´aximo” Espacio de hip´ otesis (H ):  Conjunto de hiperplanos de decisi´ on definidos por H :R→Y h(~ x) = signo `Pn ´ w x + b = i=1 i i  +1 −1 w ~ (≈ vector de ”pesos”) b (≈ umbral) Pn si i=1 wi xi + b > 0 en otro caso Reescrito en forma de producto escalar: h(~ x) = signo (w ~ ·~ x + b) Hiperplano de decisi´on definido por la ecuaci´on n X w i xi + b = 0 i=1 (´ ow ~ ·~ x + b = 0 en forma vectorial) – FJRP ccia [Modelos de Razonamiento y Aprendizaje] – 2 .

2 Margen m´ aximo y vectores soporte Si el el problema conjunto de (definido por ejemplos L) es linealmente separable existen infinitos hiperplanos que separan los ejemplos de entrenamiento.6. Existen algoritmos para encontrar/construir esos hiperplanos Ejemplo: algoritmo de aprendizaje de perceptrones simples Nos interesar´a el hiperplano que mejor separe los ejemplos de entrenamiento (minimiza las posibilidades de sobreajuste) Objetivo: buscar/construir el hiperplano de margen m´aximo – FJRP ccia [Modelos de Razonamiento y Aprendizaje] – 3 .

yi) ∈ L estar´a bien clasificado si se verifica: w ~ ·~ xi + b ≥ +1 para yi = +1 ´o w ~ ·~ xi + b ≤ −1 para yi = −1 Ambas expresiones pueden combinarse de la forma: yi(w ~ ·~ xi + b) ≥ 1 ∀(~xi. +1}. el ejemplo de entrenamiento (~ xi. – FJRP ccia [Modelos de Razonamiento y Aprendizaje] – por lo que el margen es 2 kwk ~ 4 . yi) ∈ L ⇒ Este ser´a el conjunto de restricciones que deber´a cumplir el hiperplano objetivo h Puede demostrarse que la distancia entre el hiperplano objetivo h y cada hiperplano ”separador”.Donde tenemos: h1 : w ~ ·~ x + b = +1 (delimita ejemplos +1) h2 : w ~ ·~ x + b = −1 (delimita ejemplos -1) y el hiperplano de margen m´aximo definido por la ecuaci´ on: h: w ~ ·~ x + b=0 Los vectores soporte son aquellos ejemplos de entrenamiento que definen los hiperplanos de separaci´ on h1 y h2 (se˜nalados con un c´ırculo en la figura anterior). es 1 kwk ~ . h1 y h2. Como Y = {−1.

• Weka usa el m´etodo SMO (Sequential Minimal Optimization) J. . (~ x2. y1). Maximizar 2 kwk ~ ≡ Minimizar 1 2 kwk ~ 2 ENUNCIADO (forma primal) Dado un conjunto de ejemplos de entrenamiento previamente clasificados L = {(~ x1. (~ xl . yl )} Por conveniencia matem´atica. tanto de forma exacta como aproximada. y1). (~ xl ... y2). yl )}. . Existen algoritmos razonablemente eficientes para resolverlos..Objetivo: Buscar los valores de w ~ y b que: 1.. Se trata de identificar los par´ametros que optimicen (maximicen ´o minimicen) una ecuaci´on de segundo grado sujetos a una serie de restriciones lineales sobre dichos par´ametros. In Advances in Kernel Methods Support Vector Learning. yl (w ~ ·~ xl + b) ≥ 1 (todos los ejemplos correctamente clasificados) Es un problema de optimizaci´on cuadr´atica (Quadratic Programming (QP)). maximicen el margen (distancia entre h1 y h2 [= 2 ]) kwk ~ 2. 1998... en los clasificadores SVM se utiliza la siguiente equivalencia. garanticen que se clasifiquen correctamente todos los ejemplos del conjunto de entrenamiento L = {(~ x1. – FJRP ccia [Modelos de Razonamiento y Aprendizaje] – 5 .. (~ x2. Encontrar b y w ~ que: ~ 2 (equivale a maximizar el margen) minimicen 21 kwk sujeto a : y1(w ~ ·~ x1 + b) ≥ 1 y2(w ~ ·~ x2 + b) ≥ 1 . y2).. Platt: Fast Training of Support Vector Machines using Sequential Minimal Optimization.

2. yl )}. (~ x2. . . . yi) ∈ L] en la forma: w ~ = l X αiyi~ xi i=1 • Cada ejemplo de entrenamiento (~ xi . αl que: Pl Pl Pl 1 maximicen αi − 2 i=1 j=1 αiαj yiyj (~ xi · ~ xj ) Pl i=1 sujeto a : i=1 αi yi = 0 y αi ≥ 0 ∀i ∈ {1.. (~ xl .6. l} Nota: la u ´nica operaci´on donde intervienen los vectores de entrenamiento es el producto escalar (~ xi · ~ xj ) presente en la expresi´on a maximizar. . α2.1 Forma dual En la pr´actica se usa la forma dual del problema de optimizaci´ on anterior. Permite expresar el problema de optimizaci´on en funci´on de productos escalares entre los vectores de entrenamiento (necesario para poder aplicar funciones kernel) Reformulaci´ on: w ~ puede expresarse como una combinaci´on lineal de los ejemplos de entrenamiento [(~xi. . Esto permitir´a posteriormente ”kernelizar” el algoritmo sustituyendo ese producto escalar por una funci´ on kernel adecuada – FJRP ccia [Modelos de Razonamiento y Aprendizaje] – 6 . yi ) ∈ L tiene asociada una variable αi que describe su ”influencia” en el hiperplano de margen m´aximo. Encontrar los valores α1. y2)... y1). . . • S´olo los vectores soporte participan en la definici´on del vector w ~ ◦ αi > 0 para los ~ xi que sean vectores soporte ◦ αi = 0 para los ~ xi que no sean vectores soporte El hiperplano de margen m´aximo quedar´ıa definido por la ecuaci´ on: Pl h: w ~ ·~ x+b= xi · ~ x) + b i=1 αi yi (~ ENUNCIADO (forma dual) Dado un conjunto de ejemplos de entrenamiento previamente clasificados L = {(~ x1. . .

ξi : p´erdida/holgura admitida para el ejemplo (~ xi. yi) ∈ L – FJRP ccia [Modelos de Razonamiento y Aprendizaje] – 7 .6.3 Margen m´ aximo con holgura Para mitigar a´ un m´as las posibilidades de sobreajuste ⇒ permitir cierto grado de error en el hiperplano de separaci´ on de margen m´aximo Admite problemas no totalmente linealmente separables.

2. C .. l} La cantidad m´axima de ”p´erdidas” admitidas sobre el conjunto de entrenamiento se acota mediante el par´ametro C ENUNCIADO (forma primal) Dado un conjunto de ejemplos de entrenamiento previamente clasificados L = {(~ x1. yi) ∈ L se considera como bien clasificado si se verifica: w ~ ·~ xi + b ≥ +1 − ξi w ~ ·~ xi + b ≤ −1 + ξi para yi = +1 para yi = −1 con ξi ≥ 0 ∀i ∈ {1.. yl )} y una cota m´axima de p´erdidas permitidas.. . (~ xl . Encontrar b y w ~ que: Pl minimicen 21 kwk ~ 2 + C i=1 ξi sujeto a : y1(w ~ ·~ x1 + b) ≥ 1 − ξ1 y2(w ~ ·~ x2 + b) ≥ 1 − ξ2 . . yl (w ~ ·~ xl + b) ≥ 1 − ξl y ξi ≥ 0 ∀i ∈ {1. . (~ x2. l} – FJRP ccia [Modelos de Razonamiento y Aprendizaje] – 8 . . . .. . . .Se relajan las restricciones de lo que es considerado un ”ejemplo bien clasificado” El ejemplo de entrenamiento (~ xi. y1).. y2).

. α2.. yl )} y una cota m´axima de p´erdidas permitidas. Los vectores correspondientes a los errores de clasficaci´on admitidos tienen asociado un αi = C .ENUNCIADO (forma dual) Dado un conjunto de ejemplos de entrenamiento previamente clasificados L = {(~ x1.. . . Encontrar los valores α1. y1). . . . . . – FJRP ccia [Modelos de Razonamiento y Aprendizaje] – 9 . l} Los vectores soporte est´an asociados a valores de αi que verifiquen 0 < αi < C .. (~ xl . y2). (~ x2. αl que: maximicen sujeto a : Pl i=1 αi − Pl i=1 1 2 Pl i=1 Pl j=1 αiαj yiyj (~ xi · ~ xj ) αiyi = 0 y 0 ≤ αi ≤ C ∀i ∈ {1. . C .

Funci´on de transformaci´on Φ(x) : X → F con  |X| = n. y los transforma en vectores del espacio de caracter´ısticas. |F | = N y N n Recibe vectores del espacio de entrada. F – FJRP ccia [Modelos de Razonamiento y Aprendizaje] – 10 . Idea: Transformar los ejemplos de entrenamiento a un espacio vectorial de alta dimensi´on (N  n) (denominado espacio de caracter´ısticas).6.4 El ”truco” del kernel Problema: La mayor´ıa de los ”problemas reales” no son linealmente separables. X. donde s´ı sea posible la separaci´on lineal.

• Ejemplo: funciones kernel aplicables sobre cadenas de texto (string kernels) – FJRP ccia [Modelos de Razonamiento y Aprendizaje] – 11 . y) = Φ(X) · Φ(u) para alguna funci´ on de transforma- ci´ on impl´ıcita. • Las entradas no tienen por que ser necesariamente vectores num´ericos. un valor real que se corresponde con el producto escalar de sus respectivas im´agenes en el espacio de caracter´ısitcas F Es decir. x e y . Φ(x) : X → F . No es necesarios que los objetos de entrada est´en definidos en un espacio vectorial. y) : X × X → R asigna a cada par de objetos de entrada. Las funciones kernel permiten: Calcular productos escalares en F (espacio de caracter´ısticas) aplicando la respectiva funci´on kernel sobre X (espacio de entrada).Inconvenientes potenciales: Dif´ıcil encontrar/definir una funci´ on de transformaci´ on Φ(~ x) adecuada Costoso convertir vectores de X en vectores de F (vectores muy grandes) Costoso calcular productos escalares en F sobre vectores tan grandes. Soluci´ on: Uso de funciones kernel Se aplican sobre vectores de X y su resultado es un producto escalar sobre ”alg´ un” espacio de caracter´ısticas F Definen una funci´on de transformaci´ on Φ(~ x) impl´ıcita (no es necesario construirla ni calcularla) Definici´ on: (funci´on kernel) Una funci´on kernel k(x. k(x.

se sustituye el producto escalar ”original” por la funci´on kernel. c n . Teorema de Mercer (caracterizaci´ on de funciones kernel) Definiciones previas k : X × X → R es sim´etrica si k(x. . x) ∀x. c 2 . y) = k(y. Implicitamente. y) = Φ(x) · Φ(y) ∀x. se consigue que el algoritmo ”original” pase a aplicarse sobre el espacio de caracter´ısitcas F Nota: el ”truco del kernel” permite que algoritmos ”lineales” se apliquen sobre problemas ”no lineales”. x2.Conclusi´ on: (”truco del kernel” / kernel trick) Con una funci´on kernel adecuada cualquier algoritmo que pueda expresarse en funci´on de productos escalares sobre su espacio de entrada puede ser kernelizado En el algoritmo. . . yj ) > 0 para cualquier conjunto de objetos x1. . y ∈ X k : X × X → R es semidefinida positiva si se verifica que Pn Pn i=1 j=1 ci cj k(xi . . . Teorema Para cualquier funci´on k : X × X → R que sea sim´etrica y semidefinida positiva existe un espacio de Hilbert F y una funci´on Φ : X → F tal que: k(x. y ∈ X Nota: Un espacio de Hilbert es un espacio vectorial de dimensi´on N con propiedades equivalentes a las de RN – FJRP ccia [Modelos de Razonamiento y Aprendizaje] – 12 . xn de X y cualquier conjunto de valores reales c1 . . .

2z1 z2 ) = Φ(~ y ) · Φ(~ z) k(~ y. ~ x) = (~ y·~ z) 2 Induce la funci´on de transformaci´ on Φ(~ x) : R2 → R3. ~ z) = = = = = = = k (~ y·~ z )2 = ((y1 . y2 . tambi´en lo ser´an: k1(x. y2) ∈ R2 ~ z = (z1. 2z1 z2 ) – FJRP ccia [Modelos de Razonamiento y Aprendizaje] – 13 . 2y1 y2 ) √ 2 vectores de R3 (espacio de caracter´ısticas F ) Φ(~ z ) = (z12 . definida como: √ Φ(~ x) = Φ((x1. z2) ∈ R2 k(~ y. ~ y) = ~ x·~ y kernel polin´omico: k(~ x. y) k1(x. z22 . y)k2(x. x22. y22 . 2x1x2) ∈ R3 Comprobaci´on k(~ y.Funciones kernel t´ıpicas kernel identidad: k(~ x. x2)) = (x21. ~ z ) calculado sobre R2 (espacio de entrada el producto escalar de (X) da como resultado 2 2 √ Φ(~ y ) = (y1 . y) + k2(x. z22 . ~ y ) = (~ x·~ y + r)p kernel gaussiano (funci´on de base radial [RBF]): k(~ x. 2y1 y2 ) · (z12 . y) Ejemplo: kernel polin´omico de grado 2 sobre vectores en R2 (X = R2) ~ y = (y1. z2 ))2 = (y1 z1 + y2 z2 )2 = (y1 z1 )2 + (y2 z2 )2 + 2y1 z1 y2 z2 = √ √ y12 z12 + y22 z22 + 2y1 y2 2z1 z2 = √ √ (y12 . y2 ) · (z1 . ~ y) = e −k~ x−~ y k2 2σ 2 ! Combinaci´ on de kernels Si k1 y k2 son funciones kernel. y) ak1(x.

. Encontrar los valores α1. . l} k(~ xi . la optimizaci´on α − xi . Φ(~ xi ) · Φ(~ xi ).6. ~ xj ) equivale al producto escalar .. en F . Se aplica un algoritmo para aprender un clasificador lineal de margen m´aximo con holgura de forma impl´ıcita sobre el espacio de caracter´ısitcas F inducido por la funci´on kernel empleada (en lugar de sobre el espacio de entrada original X). y). (~ x2. ~ xj ) se aplica realmente de i=1 i 2 i=1 j=1 αi αj yi yj k(~ Pl P P l 1 l forma impl´ıcita sobre xi ) · Φ(~ xi )) i=1 αi − 2 i=1 j=1 αi αj yi yj Φ(~ – FJRP ccia [Modelos de Razonamiento y Aprendizaje] – 14 . ENUNCIADO (forma dual kernalizada) Dado un conjunto de ejemplos de entrenamiento previamente clasificados L = {(~ x1. Pl Pl 1 Pl Es decir.. .. α2. y2). C . . . y1).5 SVMs El m´etodo de aprendizaje en el que se basan las Support Vector Machines (SVM) no es m´as que la kernelizaci´ on de un clasificador lineal de margen m´aximo con holgura. . . ~ xj ) αiyi = 0 y 0 ≤ αi ≤ C ∀i ∈ {1. . αl que: maximicen sujeto a : Pl i=1 αi − Pl i=1 1 2 Pl i=1 Pl j=1 αiαj yiyj k(~ xi. y una funci´ on kernel k(x. yl )}. una cota m´axima de p´erdidas permitidas. . (~ xl .