🧮 Computational Mathematics

Inicio · Parte 14 — Matemática de Machine Learning

289 — SVM y margen máximo

ml-avanzado clase 9 de 20 4 horas demostración svm_margin

Maximizar el margen equivale a minimizar la norma de w, y solo unos pocos puntos deciden.

Fórmulas

frontera: wᵀx + b = 0
ancho del margen = 2/‖w‖
minimizar ‖w‖²  sujeto a  yᵢ(wᵀxᵢ + b) ≥ 1

Desarrollo

Cuando dos clases son separables hay infinitos hiperplanos que las separan. SVM elige uno con un criterio concreto: el que deja el margen más ancho a ambos lados. La intuición es que un margen amplio es más robusto ante datos nuevos ligeramente desplazados.

La formalización es bonita. Si se normaliza para que los puntos más cercanos cumplan |wᵀx + b| = 1, el ancho del margen resulta ser 2/‖w‖. Maximizar el margen es por tanto minimizar ‖w‖, y el problema completo es un programa cuadrático con restricciones lineales: exactamente la clase 258.

La propiedad más característica es que la solución depende únicamente de los vectores de soporte, los puntos que tocan el margen. Todos los demás podrían eliminarse del conjunto de entrenamiento sin que la frontera cambiara. Eso hace el modelo compacto y explica su buen comportamiento con conjuntos pequeños.

Con clases no separables se introduce el margen blando: variables de holgura que permiten violaciones penalizadas, con un parámetro C que regula el compromiso entre margen ancho y errores tolerados. Combinado con el kernel de la clase siguiente, SVM fue el método dominante en clasificación entre 1995 y 2012.

Ejemplo trabajado

SVM lineal sobre dos clases separables.

w = (1,151743 ; 1,007988)      b = −0,82

‖w‖ = 1,53054
ancho del margen = 2/‖w‖ = 1,306729

vectores de soporte: 3
accuracy = 1,0

Solo 3 de las 80 observaciones determinan la frontera.
Las otras 77 podrían borrarse sin cambiar nada.

Si se quisiera un margen más ancho habría que reducir ‖w‖,
pero entonces las restricciones yᵢ(wᵀxᵢ+b) ≥ 1 dejarían
de cumplirse: el óptimo es el equilibrio exacto.

Qué calcula el laboratorio

SVM: maximizar el margen equivale a minimizar ‖w‖.

python classes/part-14-matematica-de-machine-learning/289-svm-y-margen-maximo/lab.py
compmath run 289

Salidas del laboratorio (9)

Muestra de la ejecución real

{
  "w": [
    1.151743,
    1.007988
  ],
  "b": -0.82,
  "norma_de_w": 1.53054,
  "ancho_del_margen_2/|w|": 1.306729,
  "vectores_de_soporte": 3,
  "accuracy": 1.0
}

Errores comunes

Dónde se usa

Clasificación con pocos datos y muchas características, bioinformática, clasificación de texto y detección de anomalías con SVM de una clase.

Idea rectora de la parte

El error de generalización se descompone en sesgo, varianza y ruido irreducible.

Error a evitar

Interpretar coeficientes de un modelo con features correlacionadas.

Conexión con IA

Estos algoritmos siguen siendo la línea base honesta contra la que se debe comparar cualquier modelo profundo.

Bibliografía de la clase

Archivos de la clase