Ir al contenido

Geometría y margen máximo

En simple: lee esto primero

SVM busca la línea que separa las clases dejando el «pasillo» más ancho posible entre ellas.

Imagínalo así

Quieres trazar una carretera entre dos pueblos sin tocar ninguna casa. De todas las posibles, eliges la que deja la mayor distancia libre a ambos lados: así hay más margen de error.

Lo que tienes que llevarte
  • El margen es el ancho del pasillo vacío entre las clases. SVM lo hace lo más ancho posible.
  • Solo importan los puntos que tocan el borde del pasillo: los vectores de soporte.
  • Las etiquetas se escriben como +1 y −1 (no 1 y 0) porque simplifica las fórmulas.
Palabras raras de esta página
hiperplano
una «línea recta» en cualquier número de dimensiones (recta en 2D, plano en 3D…).
margen
la distancia desde la frontera hasta los puntos más cercanos.
vector de soporte
cada punto pegado al borde del pasillo; son los que «sostienen» la frontera.
margen duro
no se permite ningún error: todos los puntos fuera del pasillo.

Más abajo viene la versión completa, con fórmulas. Si una palabra aparece subrayada con puntos, pasa el mouse (o tócala) para ver qué significa.

La logística y LDA terminan trazando una recta, pero ninguna pregunta cuál recta es la más segura. Cuando las clases son separables, infinitas rectas logran 100% en entrenamiento: la accuracy de entrenamiento no puede elegir. Pero discrepan en todo el resto del espacio, y ahí viven los puntos de test.

Una recta que roza un punto es frágil: mueve un poco ese punto y la predicción cambia. Una recta con espacio a ambos lados tolera el empujón. El SVM elige la recta con más espacio vacío alrededor: el margen máximo.

yi∈{−1,+1}y_i\in\{-1,+1\} (antes {0,1}\{0,1\}), f(x)=w⊤x+bf(\mathbf{x}) = \mathbf{w}^\top\mathbf{x}+b el score, y^=sign⁡f(x)\hat y = \operatorname{sign}f(\mathbf{x}). El relabel hace que un producto reemplace un chequeo de dos casos:

yi f(xi)>0  ⟺  el punto i estaˊ bien clasificadoy_i\,f(\mathbf{x}_i) > 0 \iff \text{el punto } i \text{ está bien clasificado}
  1. Longitud y vector unitario. ∥w∥=w⊤w\|\mathbf{w}\| = \sqrt{\mathbf{w}^\top\mathbf{w}}; w^=w/∥w∥\hat{\mathbf{w}} = \mathbf{w}/\|\mathbf{w}\| tiene longitud 1 (dirección pura). Caminar tt unidades a lo largo de w^\hat{\mathbf{w}} recorre exactamente tt.
  2. El producto punto es una sombra. w⊤x/∥w∥=∥x∥cos⁡θ\mathbf{w}^\top\mathbf{x}/\|\mathbf{w}\| = \|\mathbf{x}\|\cos\theta: cuánto avanza x\mathbf{x} en la dirección de w\mathbf{w}.
  3. w\mathbf{w} es perpendicular a su frontera. Si p,q\mathbf{p},\mathbf{q} están en H={x:w⊤x+b=0}H=\{\mathbf{x}:\mathbf{w}^\top\mathbf{x}+b=0\}, restando w⊤p+b=0\mathbf{w}^\top\mathbf{p}+b=0 y w⊤q+b=0\mathbf{w}^\top\mathbf{q}+b=0 queda w⊤(q−p)=0\mathbf{w}^\top(\mathbf{q}-\mathbf{p})=0: w\mathbf{w} es la normal de HH.

Distancia de un punto a la frontera, derivada

Sección titulada «Distancia de un punto a la frontera, derivada»

Baja una perpendicular de x\mathbf{x} a HH; cae en xp\mathbf{x}_p. Ese viaje es a lo largo de la normal: x=xp+r w^\mathbf{x} = \mathbf{x}_p + r\,\hat{\mathbf{w}} para un único número con signo rr. Metiéndolo en el score:

f(x)=w⊤(xp+rw^)+b=(w⊤xp+b)⏟=0, xp∈H+r w⊤w∥w∥=r∥w∥⟹r=w⊤x+b∥w∥f(\mathbf{x}) = \mathbf{w}^\top(\mathbf{x}_p + r\hat{\mathbf{w}}) + b = \underbrace{(\mathbf{w}^\top\mathbf{x}_p+b)}_{=0,\ \mathbf{x}_p\in H} + r\,\frac{\mathbf{w}^\top\mathbf{w}}{\|\mathbf{w}\|} = r\|\mathbf{w}\| \quad\Longrightarrow\quad \boxed{r = \frac{\mathbf{w}^\top\mathbf{x}+b}{\|\mathbf{w}\|}}

¡El pie xp\mathbf{x}_p se borró solo! El signo de rr dice de qué lado está el punto; ∣r∣|r| es la distancia geométrica real. El score crudo ff no es una distancia: dividir por ∥w∥\|\mathbf{w}\| lo convierte (un paso a lo largo de w^\hat{\mathbf{w}} sube el score exactamente ∥w∥\|\mathbf{w}\|).

Ejemplo: w=(1,1)\mathbf{w}=(1,1), b=−1b=-1, ∥w∥=2\|\mathbf{w}\|=\sqrt2. r(2,0)=(2+0−1)/2=+0.707r(2,0) = (2+0-1)/\sqrt2 = +0.707; r(0,0)=−1/2=−0.707r(0,0) = -1/\sqrt2 = -0.707.

Distancias con números: w = (3, 4), b = −5
  1. ∥w∥=32+42=5\Vert\mathbf{w}\Vert = \sqrt{3^2+4^2} = 5; el vector unitario normal es w^=(0.6, 0.8)\hat{\mathbf{w}} = (0.6,\ 0.8).
  2. Punto x=(3, 4)\mathbf{x} = (3,\ 4): score f=9+16−5=20f = 9 + 16 - 5 = 20 ⇒ distancia r=20/5=4r = 20/5 = 4 (lado positivo).
  3. Punto x=(0, 0)\mathbf{x} = (0,\ 0): f=−5f = -5 ⇒ r=−1r = -1 (lado negativo, a 1 unidad).
  4. El pie de la perpendicular desde (3,4)(3,4): xp=x−rw^=(3,4)−4(0.6,0.8)=(0.6, 0.8)\mathbf{x}_p = \mathbf{x} - r\hat{\mathbf{w}} = (3,4) - 4(0.6, 0.8) = (0.6,\ 0.8). Chequeo: 3(0.6)+4(0.8)−5=03(0.6)+4(0.8)-5 = 0 ✓ está en la frontera.
  5. Si escalas a (6,8,−10)(6, 8, -10), el score de (3,4)(3,4) pasa a 40 pero la distancia sigue siendo 40/10=440/10 = 4: el margen geométrico no depende de la escala.
  6. En forma canónica (el punto más cercano con ∣f∣=1\lvert f\rvert = 1), la banda mide 2/∥w∥2/\Vert\mathbf{w}\Vert: con w=(3,4)\mathbf{w} = (3,4), 2/5=0.42/5 = 0.4.
FórmulaQué es
Funcional γ^i\hat\gamma_iyif(xi)y_i f(\mathbf{x}_i)valor de la función: el sombrero avisa «todavía no es distancia»
Geométrico γi\gamma_iγ^i/∥w∥=yi r(xi)\hat\gamma_i/\Vert \mathbf{w}\Vert = y_i\,r(\mathbf{x}_i)distancia real con signo, positiva si el punto está bien

Multiplica w⊤x+b=0\mathbf{w}^\top\mathbf{x}+b=0 por c>0c>0: misma recta, pero γ^\hat\gamma se multiplica por cc y γ\gamma no cambia. Por eso «maximizar el margen funcional» no tiene sentido (basta escalar w\mathbf{w}). El margen del dataset es el menor margen geométrico, γ=min⁡iγi\gamma=\min_i\gamma_i, y es lo que maximizamos. (cc negativo cambiaría qué lado es «positivo».)

Gastar la libertad: normalización canónica

Sección titulada «Gastar la libertad: normalización canónica»

Como (w,b)(\mathbf{w},b) tiene escala libre, elegimos la que deja el álgebra limpia:

min⁡i  yi(w⊤xi+b)=1\min_i\; y_i(\mathbf{w}^\top\mathbf{x}_i+b) = 1

Los puntos más cercanos tienen margen funcional exactamente 1, la condición «todos bien» es yi(w⊤xi+b)≥1y_i(\mathbf{w}^\top\mathbf{x}_i+b)\ge1, y las rectas punteadas son f=±1f=\pm1. Ese 1 no es mágico: es una unidad que elegimos, como elegir medir en metros.

¿Qué tan ancha es la banda? 2/∥w∥2/\|\mathbf{w}\|

Sección titulada «¿Qué tan ancha es la banda? 2/∥w∥2/\|\mathbf{w}\|2/∥w∥»

Desde la recta −1-1, camina tt a lo largo de w^\hat{\mathbf{w}}: el score sube t∥w∥t\|\mathbf{w}\|. Para llegar a +1+1 debe subir 2 ⇒ t=2/∥w∥t = 2/\|\mathbf{w}\|. Intuición: el score es una rampa; ∥w∥\|\mathbf{w}\| es su pendiente. Rampa empinada ⇒ banda angosta; rampa plana ⇒ banda ancha. Ensanchar el margen = aplanar la rampa manteniendo cada punto a altura ≥ 1 de su lado.

El margen, pieza por pieza

Controla la dirección de w (siempre perpendicular a la frontera), dónde cae la frontera y el tamaño ‖w‖. Las rectas punteadas son f(x) = ±1: su separación es 2/‖w‖. El número junto a cada punto es su margen geométrico γᵢ = yᵢ f(xᵢ)/‖w‖.

-101234-101234x₁x₂w0.68-0.521.202.65
y = +1y = −1frontera wᵀx + b = 0f(x) = ±1 (ancho 2/‖w‖)
w(0.94, 0.34)
b-1.20
min margen funcional-0.516
margen geométrico γ-0.516
banda 2/‖w‖2.000
½‖w‖²0.500
Algún punto tiene margen negativo: está del lado equivocado. El producto yᵢ·f(xᵢ) > 0 reemplaza el chequeo de dos casos.
max⁡w,b2∥w∥  s.a.  yi(w⊤xi+b)≥1⟺min⁡w,b 12∥w∥2  s.a.  yi(w⊤xi+b)≥1  ∀i\max_{\mathbf{w},b}\frac{2}{\|\mathbf{w}\|}\ \ \text{s.a.}\ \ y_i(\mathbf{w}^\top\mathbf{x}_i+b)\ge1 \qquad\Longleftrightarrow\qquad \boxed{\min_{\mathbf{w},b}\ \tfrac12\|\mathbf{w}\|^2\ \ \text{s.a.}\ \ y_i(\mathbf{w}^\top\mathbf{x}_i+b)\ge 1\ \ \forall i}

Pasar de 2/t2/t a tt, a t2t^2 y a 12t2\tfrac12t^2 son transformaciones estrictamente monótonas: el argmin no se mueve. 12∥w∥2\tfrac12\|\mathbf{w}\|^2 es una cuadrática suave y convexa (sin raíz), con gradiente w\mathbf{w} (el ½ está solo para cancelar el 2).

¿Qué tipo de problema es? Objetivo convexo + restricciones lineales (intersección de semiespacios, también convexa) = programa cuadrático (QP): todo mínimo local es global; sin reinicios aleatorios. Margen duro = restricciones innegociables: si las clases no son separables, el problema es infactible (no tiene respuesta). Se arregla con holguras.

En el óptimo cada restricción está activa (yif(xi)=1y_if(\mathbf{x}_i)=1, el punto toca una recta de margen) o inactiva (>1>1, estrictamente fuera de la banda). Las activas son los vectores de soporte. Mueve un punto inactivo, mientras siga fuera de la banda, y la frontera no se mueve ni un milímetro.

Una carpa se sostiene con unos pocos postes. Mueve una silla dentro de la carpa y la lona no se mueve; mueve un poste y cambia toda. Los vectores de soporte son los postes.

Consecuencias: el modelo se guarda como unos pocos puntos con pesos; predecir cuesta proporcional al nº de vectores de soporte; y el SVM es sensible a los puntos más cercanos a la frontera (justo los más propensos a estar mal etiquetados).

La carpa y sus postes: arrastra los puntos

El SVM de margen máximo se recalcula en cada movimiento. Arrastra un punto sin anillo (no es vector de soporte): mientras no entre en la banda, la frontera no se mueve. Arrastra un punto con anillo: toda la frontera cambia.

-2024-2024x₁x₂
y = +1y = −1frontera; anillo = vector de soporte (αᵢ > 0)
w(1.00, 1.00)
b-1.00
banda 2/‖w‖1.414
vectores de soporte3
Por la holgura complementaria αᵢ[yᵢf(xᵢ) − 1] = 0, todo punto estrictamente fuera de la banda tiene αᵢ = 0 y no aparece en w = Σ αᵢyᵢxᵢ. Por eso el modelo final se guarda con muy pocos puntos y predecir es barato. La contracara: el SVM es sensible a los puntos cercanos a la frontera (justo los más probables de estar mal etiquetados).

x1=(2,0), y1=+1\mathbf{x}_1=(2,0),\ y_1=+1; x2=(0,2), y2=+1\mathbf{x}_2=(0,2),\ y_2=+1; x3=(0,0), y3=−1\mathbf{x}_3=(0,0),\ y_3=-1.

Resolverlo

Por simetría entre ejes, la frontera es perpendicular a (1,1)(1,1): w=a(1,1)\mathbf{w}=a(1,1), a>0a>0. Con los tres puntos sobre sus rectas de margen:

  • y3f(x3)=−(0+b)=1⇒b=−1y_3 f(\mathbf{x}_3) = -(0+b) = 1 \Rightarrow b=-1.
  • y1f(x1)=2a+b=1⇒a=1y_1 f(\mathbf{x}_1) = 2a+b = 1 \Rightarrow a = 1.

w=(1,1)\mathbf{w}=(1,1), b=−1b=-1, frontera x1+x2=1x_1+x_2=1. Verificación: y1f=2−1=1y_1f=2-1=1 ✓, y2f=1y_2f = 1 ✓, y3f=1y_3f = 1 ✓. Banda =2/2=2≈1.414=2/\sqrt2=\sqrt2\approx1.414; objetivo 12∥w∥2=1\tfrac12\|\mathbf{w}\|^2 = 1.

¿Podría existir una banda más ancha? No: (0,0)(0,0) y (2,0)(2,0) están a 2 de distancia… y la frontera también debe esquivar (0,2)(0,2). Empujarla hacia cualquier clase viola una restricción.

Un cuarto punto x4=(3,3)\mathbf{x}_4=(3,3), y4=+1y_4=+1: y4f=6−1=5>1y_4f = 6-1 = 5>1, muy fuera de la banda ⇒ no cambia nada (α4=0\alpha_4 = 0, lo veremos en el dual).

Autoevaluación

0/5 correctas · 0 respondidas
1. La distancia con signo de x\mathbf{x} a w⊤x+b=0\mathbf{w}^\top\mathbf{x}+b=0 es…
2. Si multiplicas (w,b)(\mathbf{w}, b) por 3…
3. Sobre 12∥w∥2\tfrac12\|\mathbf{w}\|^2, ¿qué es VERDADERO?
4. En margen duro, los vectores de soporte son…
5. Si las clases no son linealmente separables, el SVM de margen duro…

Fuente ·ML_Course_SVM.pdf (Lecture 06, slides 3–30) · ML_Course/session-06a-margin-and-soft-margin.ipynb