ElemedexEnciclopedia de bolsillo de arquitecturas de IA
N.º 013

Máquina de vectores de soporte

SVM · máquina de vectores de soporte · support-vector network

Margen máximo

No le interesa el promedio de nada: de miles de ejemplos solo recuerda los pocos que quedaron pegados a la frontera. Entre dos clases traza la calle más ancha posible, a veces en un espacio de mil millones de dimensiones que nunca llega a visitar.

Altura
2 (núcleos + suma)
Peso
guarda ≈ 18.000 vectores de soporte de 784 valores (NIST)
Parámetros
1 α por vector de soporte (NIST: ≈ 1.000–2.800 por clase)
Contexto
sin secuencia: un vector de entrada
Datos de entrenamiento
USPS: 7.300 dígitos · NIST: 60.000
Año
1995
Generación
2 · Aprendizaje automático clásico
Creadores
Cortes & Vapnik (AT&T Bell Labs)
Clase
Algoritmo

Estadísticas base

Total
128

Escalas ordinales y aproximadas, pensadas para comparar especies entre sí; los números duros están en la ficha.

Debilidades

  • Con núcleos no lineales, el entrenamiento es lento y escala mal con millones de ejemplos.
  • Es superficial: necesita buenos atributos (o un buen núcleo) elegidos por un humano.
  • El núcleo y el parámetro C se ajustan por ensayo y error.
  • Separa dos clases por vez y no da probabilidades sino distancias a la frontera.

Hábitat

Nació en los Bell Labs leyendo dígitos del correo estadounidense y del NIST. Desde fines de los noventa fue una de las herramientas favoritas para clasificar textos, genes e imágenes descritas con atributos hechos a mano; hoy sobrevive donde hay pocos datos y muchas variables.

Movimientos

Habilidades

Vectores de soporte
Solo los ejemplos más cercanos a la frontera definen la solución; todos los demás podrían borrarse sin cambiar nada.
Truco del núcleo
Calcula productos punto en un espacio de dimensión altísima, o infinita, sin construirlo nunca.
Garantías teóricas
La teoría del aprendizaje estadístico acota su error esperado por la proporción de vectores de soporte, sin importar la dimensión.

Anatomía

xᵢ y αᵢ se guardanEjemplos etiquetados (x, ±1)Maximizar el margenVectores de soporte xᵢ, αᵢEntrada nueva xK(x₁, x)K(x₂, x)K(xₛ, x)Σ αᵢyᵢK(xᵢ,x) + bSigno → clase +1 / −1EntrenamientoPredicción

Izquierda: el entrenamiento resuelve un problema de optimización cuadrática y conserva solo los vectores de soporte con sus pesos αᵢ. Derecha: para clasificar, la entrada se compara con cada vector de soporte mediante el núcleo K (un producto punto en el espacio de rasgos, calculado sin construirlo) y el signo de la suma ponderada decide la clase. Cortes y Vapnik lo describen como una red de dos capas.

Cadena evolutiva

013 Máquina de vectores de soporte

Una máquina de vectores de soporte (SVM, por support vector machine) es un clasificador que traza una frontera lineal entre dos clases, pero no cualquiera: la que deja el margen más ancho posible entre ellas. Combinada con el truco del núcleo, esa frontera puede vivir en un espacio de rasgos de dimensión enorme, e incluso infinita, sin que nadie tenga que construirlo. El nombre engaña: no es una máquina sino un algoritmo (Witten et al., 2017, p. 252); sus autores la llamaron support-vector network (Cortes y Vapnik, 1995).

Cómo funciona

Margen máximo. Si dos clases son linealmente separables, hay infinitos hiperplanos que las separan. La SVM elige el que queda lo más lejos posible de ambas: geométricamente, la mediatriz del segmento más corto que une las envolventes convexas de las dos clases. Los ejemplos pegados al margen se llaman vectores de soporte, y son los únicos que importan: todos los demás podrían borrarse sin mover la frontera de decisión. Encontrarlos es un problema de optimización cuadrática con restricciones (Witten et al., 2017, pp. 253–254).

Núcleo. Una frontera lineal es demasiado pobre para casi todo. La idea es transformar la entrada con una función no lineal y trazar el hiperplano en el nuevo espacio, donde un plano puede corresponder a una superficie curva en el original (Witten et al., 2017, p. 252). El costo es explosivo: un polinomio de grado 4 o 5 sobre 200 variables exige un espacio de unos mil millones de dimensiones (Cortes y Vapnik, 1995, p. 275). El truco consiste en que el algoritmo solo usa productos punto entre ejemplos, y ciertos núcleos permiten calcular el producto punto del espacio grande operando en el chico (Witten et al., 2017, p. 255); Boser et al. (1992) habían mostrado ese intercambio de operaciones (Cortes y Vapnik, 1995, p. 276). Un núcleo es, en el fondo, una medida de similitud, y puede definirse sobre cadenas, árboles o conjuntos (Witten et al., 2017, p. 273). Con el núcleo gaussiano, la SVM equivale a una red de funciones de base radial con un centro en cada ejemplo; con el sigmoide, a un perceptrón multicapa de una capa oculta (Witten et al., 2017, pp. 256, 270).

Margen blando. Los datos reales se superponen. El aporte propio de Cortes y Vapnik (1995) fue extender el método a datos no separables, tolerando algunos errores de entrenamiento a cambio de un margen amplio (1995, p. 273); un parámetro C, que se ajusta por ensayo y error, regula ese compromiso (Witten et al., 2017, p. 256).

Qué cambió

El Perceptrón encuentra algún hiperplano separador, que depende del orden en que vio los datos (Witten et al., 2017, p. 261); la SVM encuentra el mejor en un sentido preciso. Esa elección da estabilidad: como la frontera solo se mueve si cambian los vectores de soporte, el método resiste el sobreajuste aun en espacios de dimensión altísima (Witten et al., 2017, p. 255). Y trae teoría: si el hiperplano óptimo separa los datos, el error esperado queda acotado por la proporción entre vectores de soporte y ejemplos de entrenamiento, una cota que no depende de la dimensión del espacio (Cortes y Vapnik, 1995, pp. 275–276).

Sobre 60.000 dígitos manuscritos del NIST, un núcleo polinomial de grado 4 cometió un 1,1 % de errores sin ningún conocimiento de la geometría de las imágenes (Cortes y Vapnik, 1995, pp. 289–290). Según Chollet, los métodos de núcleo devolvieron a las redes neuronales al olvido: rendían muy bien, tenían respaldo teórico y se dejaban analizar matemáticamente (Chollet, 2021, secs. 1.2.2–1.2.3).

¿Cuántos parámetros tiene? Lo que se aprende es un coeficiente por vector de soporte (en el experimento del NIST, entre unos 1.000 y 2.800 para cada uno de los diez clasificadores), pero el modelo debe guardar esos vectores completos: una parte del conjunto de entrenamiento es el modelo, como en k vecinos más cercanos. El polinomio implícito, en cambio, tendría más de 10⁸ parámetros libres (Cortes y Vapnik, 1995, p. 289). La ficha técnica refleja un punto intermedio.

Límites

Con núcleos no lineales, el entrenamiento es lento comparado con otros métodos, como los árboles de decisión (Witten et al., 2017, p. 256), y escala mal con conjuntos grandes. Además, la SVM es un método superficial: el núcleo se elige a mano y no se aprende, así que en problemas perceptivos necesita atributos diseñados por expertos (Chollet, 2021, sec. 1.2.3). Cuando llegaron los datos masivos y las GPU, el aprendizaje profundo la desplazó; sigue siendo una opción excelente con pocos datos y muchas variables.

Fuentes