← capítulo

Máquinas de vectores de soporte con SGD

Encuentra el corredor vacío más ancho entre las dos clases.

Solo los puntos de la orilla — los vectores de soporte — definen la frontera. Entrénala con descenso de gradiente estocástico sobre el hinge loss.

No es un modelo de los datos — es un modelo de la frontera

Los datos

Dos nubes, 120 puntos, traslape moderado. Una recta separa a la mayoría; unos cuantos quedan dentro del corredor.

El margen, el hinge, el objetivo

Score y frontera, etiquetas en {-1, +1}:

f(x)=wx+bmargin width=2wf(x) = w^{\top}x + b \qquad \text{margin width} = \frac{2}{\lVert w \rVert}

Margen más ancho significa w\lVert w \rVert más chico. Paga un hinge por invadirlo:

i=max(0,  1yif(xi))\ell_i = \max\big(0,\; 1 - y_i\, f(x_i)\big)

El objetivo de margen suave que minimiza SGD — margen ancho + pocas violaciones:

J=λ2w2+1Nimax(0,1yif(xi))\mathcal{J} = \frac{\lambda}{2}\lVert w \rVert^{2} + \frac{1}{N}\sum_i \max\big(0,\, 1 - y_i f(x_i)\big)

λ\lambda es la perilla: margen ancho vs. pocos puntos adentro.

Mira cómo se acomoda el margen

Cada cuadro es un epoch real. Línea sólida = frontera; punteadas = márgenes (f=±1f = \pm1); anillos ámbar = vectores de soporte; cruces rojas = errores; el hinge loss cae abajo.

Plano plano → margen enorme → barre hacia adentro y se acomoda. Los vectores de soporte se desploman de 120 a 33. Hinge final 0.156, ancho de margen 1.27, 6 errores, 0.95 en el conjunto de juguete.

Desde cero vs. librería vs. el solver exacto

84 de entrenamiento / 36 de prueba. Nuestro SGD, el SGDClassifier(loss="hinge") de sklearn y el LinearSVC exacto caen todos en la misma frontera.

Los tres: 0.9444. Desde cero w=[1.31,0.97]w = [1.31, 0.97], sklearn [1.30,0.97][1.30, 0.97] — mismo plano, dos optimizadores. 25 de 84 puntos son vectores de soporte.

Puntos clave