La respuesta de Ryan Zotti explica la motivación detrás de la maximización de los límites de decisión, la respuesta de carlosdc ofrece algunas similitudes y diferencias con respecto a otros clasificadores. Daré en esta respuesta una breve descripción matemática de cómo se entrenan y usan los SVM.
Anotaciones
A continuación, los escalares se denotan con minúsculas en cursiva (por ejemplo, y,b ), vectores con minúsculas en negrita (p. ej.,w,x ), y matrices con mayúsculas en cursiva (p. ej.,W ). wT es la transposición dew , y∥w∥=wTw .
Dejar:
- x ser un vector de características (es decir, la entrada de la SVM). x∈Rn , donden es la dimensión del vector de características.
- y ser la clase (es decir, la salida del SVM). y∈{−1,1} , es decir, la tarea de clasificación es binaria.
- w yb serán los parámetros de la SVM: necesitamos aprenderlos usando el conjunto de entrenamiento.
- (x(i),y(i)) será laith muestra en el conjunto de datos. Supongamos que tenemosN muestras en el conjunto de entrenamiento.
Con n=2 , uno puede representar los límites de decisión de la SVM de la siguiente manera:
La clase y se determina de la siguiente manera:
y(i)={−11 if wTx(i)+b≤−1 if wTx(i)+b≥1
que se puede escribir de manera más concisa como y(i)(wTx(i)+b)≥1 .
Gol
El SVM tiene como objetivo satisfacer dos requisitos:
El SVM debe maximizar la distancia entre los dos límites de decisión. Matemáticamente, esto significa que queremos maximizar la distancia entre el hiperplano definido por wTx +b=-1 y el hiperplano definido por wTx +b=1 . Esta distancia es igual a 2∥ w ∥ . Esto significa que queremos resolvermaxw2∥ w ∥ . Equivalentemente queremos
minw∥ w ∥2 .
El SVM también debe clasificar correctamente todos los X( i ) , lo que significa y( i )( wTX( i )+ b ) ≥ 1 , ∀ i ∈ { 1 , … , N}
Lo que nos lleva al siguiente problema de optimización cuadrática:
minw , bs . t .∥ w ∥2,y( i )( wTX( i )+ b ) ≥ 1∀i∈{1,…,N}
Este es el SVM de margen duro , ya que este problema de optimización cuadrática admite una solución si los datos son linealmente separables.
Uno puede relajar las restricciones introduciendo las llamadas variables de holgura ξ(i) . Tenga en cuenta que cada muestra del conjunto de entrenamiento tiene su propia variable de holgura. Esto nos da el siguiente problema de optimización cuadrática:
minw,bs.t.∥w∥2+C∑i=1Nξ(i),y(i)(wTx(i)+b)≥1−ξ(i),ξ(i)≥0,∀i∈{1,…,N}∀i∈{1,…,N}
Este es el SVM de margen blando . C es un hiperparámetro llamado penalización del término de error . ( ¿Cuál es la influencia de C en SVMs con kernel lineal y qué rango de búsqueda para determinar los parámetros óptimos de SVM? ).
Se puede agregar aún más flexibilidad al introducir una función ϕ que asigna el espacio de características original a un espacio de características de dimensiones superiores. Esto permite límites de decisión no lineales. El problema de optimización cuadrática se convierte en:
minw,bs.t.∥w∥2+C∑i=1Nξ(i),y(i)(wTϕ(x(i))+b)≥1−ξ(i),ξ(i)≥0,∀i∈{1,…,N}∀i∈{1,…,N}
Mejoramiento
El problema de optimización cuadrática se puede transformar en otro problema de optimización llamado problema dual lagrangiano (el problema anterior se llama primario ):
maxαs.t.minw,b∥w∥2+C∑i=1Nα(i)(1−wTϕ(x(i))+b)),0≤α(i)≤C,∀i∈{1,…,N}
Este problema de optimización se puede simplificar (estableciendo algunos gradientes en 0 ) para:
maxαs.t.∑i=1Nα(i)−∑i=1N∑j=1N(y(i)α(i)ϕ(x(i))Tϕ(x(j))y(j)α(j)),0≤α(i)≤C,∀i∈{1,…,N}
w no aparece comow=∑Ni=1α(i)y(i)ϕ(x(i)) (como lo indica elteoremadelrepresentador).
Por lo tanto, aprendemos el α(i) usando el (x(i),y(i)) del conjunto de entrenamiento.
(FYI: ¿Por qué molestarse con el problema dual al ajustar SVM? Respuesta corta: un cálculo más rápido + permite usar el truco del kernel, aunque existen algunos buenos métodos para entrenar SVM en el primario, por ejemplo, ver {1})
Hacer una predicción
Una vez que se aprende el α(i) , se puede predecir la clase de una nueva muestra con la prueba del vector de características xtest siguiente manera:
ytest=sign(wTϕ(xtest)+b)=sign(∑i=1Nα(i)y(i)ϕ(x(i))Tϕ(xtest)+b)
La suma ∑Ni=1 podría parecer abrumadora, ya que significa que uno tiene que sumar todas las muestras de entrenamiento, pero la gran mayoría deα(i) son0 (ver¿Por qué los multiplicadores de Lagrange son escasos para SVM?) No es un problema. (tenga en cuenta quese pueden construir casos especiales donde todos losα(i)>0 )α(i)=0 iffx(i) es unvector de soporte. La ilustración de arriba tiene 3 vectores de soporte.
Truco kernel
Se puede observar que el problema de optimización usa ϕ(x(i)) solo en el producto interno ϕ(x(i))Tϕ(x(j)) . La función que mapea(x(i),x(j)) al producto internoϕ(x(i))Tϕ(x(j))se llama un núcleo , también conocida como función del núcleo, a menudo denotado por k .
Se puede elegir k para que el producto interno sea eficiente de calcular. Esto permite utilizar un espacio de características potencialmente alto a un bajo costo computacional. Eso se llama el truco del núcleo . Para que una función del núcleo sea válida , es decir, que se pueda usar con el truco del núcleo, debe satisfacer dos propiedades clave . Existen muchas funciones del núcleo para elegir . Como nota al margen, el truco del kernel se puede aplicar a otros modelos de aprendizaje automático , en cuyo caso se los denomina kernelized .
Ir más lejos
Algunos QA interesantes sobre SVM:
Otros enlaces:
Referencias