¿Cuál es el punto de usar el problema dual cuando se ajusta SVM?

Antes de explicar el punto de usar el problema dual en SVM, permítanme decir algunas cosas que ayudan a comprender la necesidad de la forma dual en SVM.

Optimización sin restricciones (función objetiva sin restricción)

Un extremo (valor máximo / mínimo de una función) para un problema de optimización sin restricciones generalmente ocurre en un punto donde la pendiente es cero.

Entonces, para encontrar un extremo, solo necesitamos buscar un punto donde la pendiente sea cero. Podemos escribir esta propiedad en una bonita forma matemática. Si [math] x ^ {*} [/ math] es un extremo para un problema de optimización sin restricciones, entonces

[matemáticas] \ bigtriangledown f (x ^ {*}) = 0 \ etiqueta * {} [/ matemáticas]

Optimización restringida con una restricción de igualdad

Si [math] x ^ {*} [/ math] es un extremo para un problema de optimización con una restricción de igualdad, entonces

[matemática] \ bigtriangledowndown f (x ^ {*}) = \ lambda \ times \ bigtriangledown g (x ^ {*}) \ tag * {} [/ math]

[matemáticas] g (x ^ {*}) = 0 \ etiqueta * {} [/ matemáticas]

Para tener una intuición detrás de las condiciones, visite la respuesta de Balaji Pitchai Kannu a ¿Cuál es el significado del valor de un multiplicador de Lagrange al hacer la optimización?

Optimización restringida con una restricción de desigualdad

Si [math] x ^ {*} [/ math] es un extremo para un problema de optimización con una restricción de desigualdad, entonces

Condiciones de KKT:

1. Factibilidad primaria: [matemática] g (x ^ {*}) \ leq 0 [/ matemática]

2. Viabilidad dual: [matemática] \ alpha \ geq 0 [/ matemática]

3. Holgura complementaria: [matemática] \ alpha g (x ^ {*}) = 0 [/ matemática]

4. Estacionariedad lagrangiana: [matemática] \ bigtriangledown f (x ^ {*}) = \ alpha \ times \ bigtriangledown g (x ^ {*}) [/ math]

Para encontrar un extremo para un problema de optimización con una restricción de desigualdad, necesitamos buscar un punto [matemático] (x ^ {*}) [/ matemático] que debe satisfacer todas las condiciones de KKT. Si desea conocer las intuiciones detrás de las condiciones de KKT, visite https://www.quora.com/What-is-an…

SVM (máquina de vectores de soporte)

SVM proporciona un hiperplano de separación óptimo. El hiperplano de separación dado por un SVM es óptimo porque observa el hiperplano de separación maximizando la distancia entre las dos clases en los datos de entrenamiento. Resuelve el siguiente problema de optimización para encontrar un hiperplano de separación óptimo.

[matemática] \ underset {\ beta_ {0}, \ beta_ {1}} {\ mathrm {Min}} \ hspace {0.4cm} \ frac {1} {2} || \ beta || ^ {2} \ etiqueta {1} [/ matemáticas]

[matemáticas] st: \ hspace {0.4cm} y_ {i} (x_ {i} ^ {T} \ beta + \ beta_ {0}) \ geq 1, \ hspace {0.4cm} i = 1 … N \ tag *{}[/matemáticas]

Es un problema de optimización con una restricción de desigualdad. Como ya he dicho
antes, necesitamos aplicar condiciones KKT para encontrar una solución óptima
para el problema anterior

La función lagrangiana (Primal) para el problema es

[matemáticas] L_ {p} = \ frac {1} {2} || \ beta || ^ {2} – \ sum_ {i = 1} ^ {N} \ alpha_ {i} [y_ {i} (x_ {i} ^ {T} \ beta + \ beta_ {0}) -1] \ tag * {} [/ math]

Al aplicar una condición de estacionariedad lagrangiana (una de las condiciones KKT), obtendremos

[matemáticas] \ beta = \ sum_ {i = 1} ^ {N} \ alpha_ {i} y_ {i} x_ {i} \ tag {4} [/ matemáticas]

[matemáticas] \ sum_ {i = 1} ^ {N} \ alpha_ {i} \ y_ {i} = 0 \ tag * {} [/ matemáticas]

Al sustituir la solución anterior en la ecuación 1, obtendremos la siguiente ecuación, que no es más que la forma dual del problema original.

[matemáticas] L_ {D} = \ sum_ {i = 1} ^ {N} \ alpha_ {i} – \ frac {1} {2} \ sum_ {i = 1} ^ {N} \ sum_ {k = 1 } ^ {N} \ alpha_ {i} \ alpha_ {k} y_ {i} y_ {k} \ underset {\ text {Producto interno}} {(x_ {i} ^ {T} x_ {k})} \ etiqueta {2} [/ math]

[matemáticas] st: \ alpha_ {i} \ geq 0 \ tag * {} [/ matemáticas]

[matemáticas] \ hspace {0.5cm} \ sum_ {i = 1} ^ {N} \ alpha_ {i} \ y_ {i} = 0 \ tag * {} [/ matemáticas]

Al aplicar las condiciones KKT restantes para el problema dual, se obtiene

[matemáticas] \ alpha_ {i} \ geq 0 \ etiqueta * {} \ forall i [/ matemáticas]

[matemáticas] \ alpha_ {i} [y_ {i} (x_ {i} ^ {T} \ beta + \ beta_ {0}) -1] = 0 \ forall i \ tag {3} [/ matemáticas]

Al resolver las ecuaciones anteriores, obtenemos [matemática] \ beta [/ matemática] y [matemática] \ beta_ {0} [/ matemática] que ayuda a encontrar un hiperplano de separación óptimo ([matemática] \ beta ^ {T} x + \ beta_ {0} [/ math]).

Ventajas del problema dual en SVM

  • Una de las ventajas importantes de usar la forma dual en SVM es que nos permite aplicar núcleos. Kernel busca un hiperplano de separación óptimo en un espacio dimensional superior sin aumentar mucho la complejidad computacional. El núcleo se puede aplicar, si el algoritmo toma los puntos de datos como entrada en términos de su producto interno [matemática] (x_ {i} ^ {T} x_ {k}) [/ matemática]. Consulte la forma dual de la función objetivo (eq.2) que ingresa las características en términos de su producto interno.
  • Consulte la ecuación 3 (es decir, condición de flojedad complementaria). (i) Si [math] \ alpha_ {i} \ geq 0 [/ math], entonces [math] y_ {i} (x_ {i} ^ {T} \ beta + \ beta_ {0}) = 1 [/ matemáticas]. En otras palabras, [math] x_ {i} [/ math] está en el límite del hiperplano. (ii) Si [math] y_ {i} (x_ {i} ^ {T} \ beta + \ beta_ {0}) \ geq 1 [/ math], entonces [math] x_ {i} [/ math] es no en el límite del hiperplano y [math] \ alpha_ {i} = 0. [/ math] De la ecuación 4, podemos decir que [math] \ beta [/ math] se define en términos de combinación lineal de [math ] x_ {i} [/ math] (que [math] \ alpha_ {i} \ geq 0, [/ math] es decir [math] x_ {i} [/ math] se encuentra en el límite del hiperplano). Entonces, [math] x_ {i} [/ math] se llaman puntos de soporte. Sabíamos que generalmente la cantidad de puntos de soporte para SVM son pocos. Significa que la mayoría de [math] \ alpha [/ math] (variable dual) son cero.
  • Hay algunos algoritmos como SMO (Optimización mínima secuencial) que resuelve el problema dual de manera eficiente.

El principal beneficio del SVM es el uso de núcleos para mapear conjuntos de datos inseparables linealmente en el espacio de entrada a un conjunto de datos separable en el espacio del núcleo. Si observa el problema dual para el caso del núcleo, encontrará que la formulación no requiere el cálculo del mapa explícito [math] \ phi [/ math] en la función objetivo. Además, las restricciones se simplifican a una restricción de igualdad y límite en oposición a las restricciones de desigualdad en la formulación primaria (que son tantas como el número de muestras). Por lo tanto, el dual se usa generalmente.

Por supuesto, entrenar a la SVM en lo primario también ha sido un trabajo ampliamente citado:

http://www.kyb.mpg.de/fileadmin/

Para elaborar sobre la respuesta de Sumit Soman

El clasificador SVM en el espacio primario se ve así:

[matemáticas] f (x) = w ^ T \ phi (x) + b [/ matemáticas]

lo que requiere que calculemos explícitamente el producto escalar [matemáticas] w ^ T \ phi (x). [/ math] Digamos que la dimensionalidad de [math] \ phi (x) [/ math] es muy grande y restrictiva. Calcular el producto punto que ves arriba es un cuello de botella que puede resultar muy costoso.

Debido a ciertos teoremas y resultados bien conocidos, sabemos que no podemos tener estos proyectos completos de nuestros datos de una manera que solo necesitamos conocer los productos de punto de cualquiera de los dos vectores de datos, es decir, que tenemos una función [matemática] K (x_i , x_j) = \ phi (x_ {i}) ^ T \ phi (x_j). [/ math]

En ese caso, podemos conformarnos con tener solo la función [math] K [/ math] mencionada anteriormente porque el clasificador dual puede derivarse para ser

[matemáticas] f (x) = \ sum_ {i} ^ {N} \ alpha_i y_i (x_ {i} ^ T x) + b [/ matemáticas]

y cuando se especifica [math] K [/ math]

[matemáticas] f (x) = \ sum_ {i} ^ {N} \ alpha_i y_i K (x_i, x) + b [/ matemáticas]

Referencia:

http://www.robots.ox.ac.uk/~az/l