¿Por qué molestarse con el doble problema al instalar SVM?


50

Dados los puntos de datos y las etiquetas , el problema primario del margen duro SVM esx1,,xnRdy1,,yn{1,1}

minimizew,w012wTw
s.t.i:yi(wTxi+w0)1

que es un programa cuadrático con variables para optimizar y restricciones . El duald+1i

maximizeαi=1nαi12i=1nj=1nyiyjαiαjxiTxj
s.t.i:αi0i=1nyiαi=0
es un programa de segundo grado con variables que se han optimizado para y desigualdad y igualdad limitaciones.n+1nn

Al implementar un SVM de margen duro, ¿por qué debería resolver el problema dual en lugar del problema primario? El problema primario me parece más 'intuitivo' y no necesito preocuparme por la brecha de dualidad, la condición de Kuhn-Tucker, etc.

Para mí tendría sentido resolver el problema dual si , pero sospecho que hay mejores razones. ¿Es este el caso?dn


26
La respuesta corta es granos. La respuesta larga es keeerneeels (-;

Lo más importante del doble problema es introducir el truco del núcleo, con el objetivo de mapear los datos originales en el espacio con una dimensión más alta.
BigeyeDestroyer

Respuestas:


40

Según las notas de la conferencia a las que se hace referencia en la respuesta de @ user765195 (¡gracias!), Las razones más aparentes parecen ser:

Al resolver el problema primario, obtenemos la óptima , pero no sabemos nada sobre . Para clasificar un punto de consulta , necesitamos calcular explícitamente el producto escalar , que puede ser costoso si es grande.wαixwTxd

Al resolver el problema dual, obtenemos (donde para todos menos algunos puntos: los vectores de soporte). Para clasificar un punto de consulta , calculamosαiαi=0x

wTx+w0=(i=1nαiyixi)Tx+w0=i=1nαiyixi,x+w0

Este término se calcula de manera muy eficiente si solo hay pocos vectores de soporte. Además, dado que ahora tenemos un producto escalar que solo involucra vectores de datos , podemos aplicar el truco del núcleo .


66
Espera espera. Digamos que tiene dos vectores de soporte x1 y x2. No puedes tener menos de dos, ¿verdad? ¿Estás diciendo que calcular <x1, x> y <x2, x> es más rápido que <w, x>?
Leo

1
@Leo: Tenga en cuenta que uso <x1, x>y wTx. El primero se usa como símbolo para una evaluación de kernel K (x1, x), que proyecta x1 yx en un espacio de muy alta dimensión y calcula implícitamente el producto escalar de los valores proyectados. Este último es el producto normal escalar, de modo wy xtienen que ser proyectada de manera explícita, a continuación, el producto escalar se calcula de forma explícita. Dependiendo de la elección del núcleo, un solo cálculo explícito puede requerir muchos más cálculos que muchas evaluaciones del núcleo.
blubb

1
Según entiendo el problema primario, 's son los multiplicadores de Lagrange, entonces ¿por qué no podemos resolver el problema primario para encontrar ' s? Quiero decir que probablemente no tengamos que recurrir al doble problema para descubrir 's, ¿verdad? ααα
aguacate

2
"Además, dado que ahora tenemos un producto escalar que solo involucra vectores de datos, podemos aplicar el truco del núcleo". - Eso también es cierto en la formulación primaria.
Firebug

2
Si la gente quiere más detalles sobre el comentario de @Firebug ... consulte las ecuaciones 10-12 de lib.kobe-u.ac.jp/repository/90001050.pdf (que es una versión sin restricciones de la primal).
MrDrFenner


3

Aquí hay una razón por la cual la formulación dual es atractiva desde el punto de vista de la optimización numérica. Puede encontrar los detalles en el siguiente documento :

Hsieh, C.-J., Chang, K.-W., Lin, C.-J., Keerthi, SS y Sundararajan, S., "Un método de descenso de coordenadas dobles para SVM lineal a gran escala", Procedimientos de la 25a Conferencia Internacional sobre Aprendizaje Automático, Helsinki, 2008.

La formulación dual implica una sola restricción de igualdad afín yn restricciones limitadas.

1. La restricción de igualdad afín se puede "eliminar" de la formulación dual.

Esto se puede hacer simplemente mirando sus datos en R ^ (d + 1) mediante la incorporación de R ^ d en R ^ (d + 1) como resultado de agregar una sola coordenada "1" a cada punto de datos, es decir, R ^ d ----> R ^ (d + 1): (a1, ..., ad) | ---> (a1, ..., ad, 1).

Hacer esto para todos los puntos en el conjunto de entrenamiento reestructura el problema de separabilidad lineal en R ^ (d + 1) y elimina el término constante w0 de su clasificador, lo que a su vez elimina la restricción de igualdad afín del dual.

2. En el punto 1, el dual se puede convertir fácilmente como un problema de optimización cuadrático convexo cuyas restricciones son solo restricciones limitadas.

3. El problema dual ahora se puede resolver de manera eficiente, es decir, a través de un algoritmo de descenso de coordenadas dual que produce una solución óptima de epsilon en O (log (1 / epsilon)).

Esto se hace al notar que arreglar todos los alfa excepto uno produce una solución de forma cerrada. Luego puede recorrer todos los alfa uno por uno (por ejemplo, elegir uno al azar, arreglar todos los otros alfa, calcular la solución de forma cerrada). Se puede demostrar que obtendrá una solución casi óptima "bastante rápido" (ver Teorema 1 en el documento mencionado anteriormente).

Hay muchas otras razones por las que el problema dual es atractivo desde el punto de vista de la optimización, algunas de las cuales explotan el hecho de que solo tiene una restricción de igualdad afín (las restricciones restantes son todas restricciones limitadas) mientras que otras aprovechan la observación de que en la solución del problema dual "a menudo la mayoría de los alfas" son cero (los alfas distintos de cero corresponden a vectores de soporte).

Puede obtener una buena visión general de las consideraciones de optimización numérica para SVM de la presentación de Stephen Wright en el Taller de aprendizaje computacional (2009).

PD: Soy nuevo aquí. Disculpas por no ser bueno en el uso de la notación matemática en este sitio web.


1
La información sobre cómo usar la tipificación matemática está aquí: math.meta.stackexchange.com/questions/5020/…
Reinstale Monica el

-5

En mi opinión en las notas de la conferencia de Andrew ng, se ha mencionado claramente que el problema primario de 1 / || w ||, es un problema no convexo. El dual es un problema convexo y siempre es fácil encontrar el óptimo de una función convexa.


1
El SVM primal como se indicó anteriormente es convexo.
Dougal
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.