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.