Ultralytics YOLO27: Únete a la lista de espera.
Licencia YOLO
Volver al glosario de Ultralytics

Support Vector Machine (SVM)

Una máquina de vectores de soporte (SVM) separa las clases con el hiperplano de margen más amplio y usa kernels para crear límites curvos. Descubre cómo funciona, cómo ajustarla y consulta el código.

Una máquina de vectores de soporte (SVM) es un algoritmo de aprendizaje supervisado que clasifica los datos buscando el hiperplano que separa dos clases con el mayor margen posible, es decir, la distancia entre el límite y los puntos de entrenamiento más próximos de cada clase. Esos puntos más cercanos, los vectores de soporte, son los únicos ejemplos de entrenamiento que determinan el límite. Las funciones kernel permiten a las SVM aprender límites curvos, y hay variantes que admiten regresión y detección de valores atípicos. Vladimir Vapnik y sus colegas desarrollaron el método en AT&T Bell Labs; la versión con kernel apareció en 1992 y la formulación de margen blando que se utiliza hoy se publicó en Cortes y Vapnik en 1995. Antes del aprendizaje profundo, las SVM estaban entre los clasificadores más precisos para texto, imágenes y datos biológicos, y siguen ofreciendo un buen rendimiento con conjuntos de datos pequeños y medianos con muchas características.

Cómo funcionan las SVM#

Una SVM lineal predice la clase a partir del signo de w·x + b, por lo que su límite de decisión es el hiperplano w·x + b = 0 y, si se escalan los pesos para que los puntos más cercanos cumplan |w·x + b| = 1, el margen tiene una anchura de 2/‖w‖. El entrenamiento maximiza el margen minimizando ‖w‖² y exigiendo que todos los puntos de entrenamiento queden en el lado correcto. Las clases reales se solapan, así que la SVM de margen blando permite que algunos puntos crucen el margen con un coste determinado por el parámetro de regularización C. Su pérdida hinge no penaliza los puntos clasificados correctamente más allá del margen y aplica al resto una penalización que aumenta linealmente con la infracción. Un valor pequeño de C tolera más infracciones y proporciona un margen más ancho y suave; un valor grande de C se ajusta más a los datos de entrenamiento, con mayor riesgo de sobreajuste. En el modelo entrenado, solo los puntos situados en el margen o en el lado incorrecto tienen un peso distinto de cero; son los vectores de soporte, y mover cualquier otro punto sin cruzar el margen no cambia el límite.

El truco del kernel#

Cuando ningún hiperplano separa las clases, proyectar los datos en más dimensiones puede hacer que sean separables: dos anillos concéntricos en 2D se pueden separar con un plano una vez que una tercera característica, x₁² + x₂², mide la distancia de cada punto al centro. En su forma dual, el entrenamiento y la predicción de las SVM utilizan los datos únicamente mediante productos escalares entre pares de puntos, así que una función kernel k(x, x′) puede devolver directamente el producto escalar en el espacio proyectado, sin calcular nunca las coordenadas proyectadas. Este es el truco del kernel. Los kernels más habituales son el lineal, el polinómico y la función de base radial (RBF), exp(−γ‖x − x′‖²), donde γ determina hasta dónde llega la influencia de cada vector de soporte. Este ejemplo ajusta SVC de scikit-learn con un kernel lineal y otro RBF sobre dos anillos concéntricos:

from sklearn.datasets import make_circles
from sklearn.model_selection import train_test_split
from sklearn.svm import SVC

# Two concentric rings: no straight line separates the classes
X, y = make_circles(n_samples=500, factor=0.4, noise=0.1, random_state=0)
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=0)

for kernel in ("linear", "rbf"):
    clf = SVC(kernel=kernel, C=1.0)
    clf.fit(X_train, y_train)
    print(f"{kernel}: test accuracy {clf.score(X_test, y_test):.2f}, support vectors {clf.n_support_.sum()}")

El kernel lineal obtiene una puntuación de 0,43 en los puntos reservados, peor que adivinar, y conserva 360 de los 375 puntos de entrenamiento como vectores de soporte. El kernel RBF separa perfectamente los anillos (1,00) con solo 42 vectores de soporte.

Elegir un kernel y los hiperparámetros#

Las distancias y los productos escalares dependen de la escala de las características, por lo que primero se estandarizan las entradas de la SVM. La guía práctica de los autores de LIBSVM, la biblioteca que utiliza SVC de scikit-learn, recomienda escalar las características, empezar con el kernel RBF y elegir C y γ mediante búsqueda en rejilla con validación cruzada. Cuando hay muchas más características que muestras, como ocurre con el texto, un kernel lineal ofrece un rendimiento similar y se entrena mucho más rápido. El tiempo de entrenamiento de las SVM con kernel crece, como mínimo, de forma cuadrática con el número de muestras, así que, cuando se superan las decenas de miles de muestras, las SVM lineales o las características de kernel aproximadas sustituyen al modelo de kernel exacto.

Las SVM en visión artificial#

La visión artificial clásica combinaba características diseñadas manualmente con SVM lineales. El detector de peatones de Dalal y Triggs de 2005 puntuaba histogramas de gradientes orientados (HOG) con una SVM lineal, y el detector de objetos R-CNN de 2014 clasificaba las características CNN de cada región candidata con una SVM lineal por clase, hasta que Fast R-CNN las sustituyó en 2015 por una capa softmax entrenada junto con la red. Los detectores modernos aprenden las características y el clasificador conjuntamente, y las SVM siguen utilizándose como clasificadores rápidos sobre características fijas. Una SVM lineal entrenada con los vectores que devuelve YOLO26 desde model.embed(), uno embedding por imagen, es una sonda lineal que añade una nueva categoría de imagen sin volver a entrenar la red.

Aplicaciones#

  • Clasificación de texto: Los vectores de recuento de palabras tienen decenas de miles de dimensiones dispersas, donde las SVM lineales separan con precisión temas, spam y sentimientos; una ventaja que Thorsten Joachims demostró para la categorización de texto en 1998.
  • Bioinformática: Los estudios de expresión génica clasifican tumores a partir de miles de genes medidos y solo decenas o cientos de pacientes; es un contexto en el que el margen limita el sobreajuste. Los kernels de cadenas comparan directamente secuencias de proteínas.
  • Detección de anomalías: Una SVM de una clase aprende un límite únicamente alrededor de los datos normales y señala los puntos que quedan fuera, por lo que resulta adecuada para detectar fraudes y supervisar máquinas cuando los fallos son demasiado poco frecuentes para etiquetarlos.
  • Regresión: La regresión de vectores de soporte ajusta una función dentro de un tubo de anchura ε, ignora los errores menores que ε y solo conserva como vectores de soporte los puntos situados dentro o fuera del tubo.
  • K vecinos más cercanos (KNN): Almacena todo el conjunto de entrenamiento y compara cada punto nuevo con sus vecinos al predecir; una SVM solo conserva sus vectores de soporte.
  • Árboles de decisión y bosques aleatorios: Dividen los datos usando una característica cada vez, no necesitan escalar las características y admiten columnas numéricas y categóricas combinadas, mientras que las SVM necesitan entradas numéricas y escaladas.
  • Redes neuronales: Aprenden la transformación de características a partir de los datos en vez de fijarla mediante un kernel, lo que les permite escalar a millones de imágenes, donde las SVM con kernel se vuelven demasiado lentas.
  • Regresión logística: También aprende un límite lineal, pero minimiza la pérdida logarítmica para todos los puntos de entrenamiento y genera probabilidades. Una SVM genera distancias con signo respecto al límite, y SVC de scikit-learn solo produce probabilidades con probability=True, que aplica el escalado de Platt mediante una validación cruzada interna de 5 particiones.

Explora las soluciones

Visión artificial en el deporte

Visión artificial en el deporte

Descubre cómo Ultralytics YOLO impulsa la visión artificial en el deporte con el seguimiento de jugadores y balones, analíticas de rendimiento, información útil para entrenadores y rehabilitación de deportistas.
Más información
Visión artificial para imágenes aéreas

Visión artificial para imágenes aéreas

Convierte imágenes aéreas y de drones en información útil en tiempo real para la agricultura, la acuicultura, la conservación y el análisis geoespacial con Ultralytics YOLO.
Más información
Visión artificial en el sector aeroespacial

Visión artificial en el sector aeroespacial

Aplica la visión artificial en el sector aeroespacial con Ultralytics YOLO para inspeccionar aeronaves, detectar objetos extraños en pistas, gestionar operaciones en tierra y detectar defectos en materiales compuestos.
Más información
Visión artificial en seguridad

Visión artificial en seguridad

Protege todas tus instalaciones con los modelos Ultralytics YOLO. La IA visual permite supervisar perímetros, detectar amenazas, reconocer matrículas y mejorar la seguridad laboral.
Más información
Visión artificial en robótica

Visión artificial en robótica

Potencia máquinas más inteligentes con los modelos Ultralytics YOLO. La IA visual en robótica impulsa la navegación autónoma, la percepción, el seguimiento de objetos y el control en tiempo real.
Más información
Visión artificial en logística

Visión artificial en logística

Agiliza la logística con modelos Ultralytics YOLO. La IA visual permite inspeccionar paquetes, clasificarlos, realizar el seguimiento de vehículos y supervisar la seguridad del almacén en tiempo real.
Más información
Visión artificial en el comercio minorista

Visión artificial en el comercio minorista

Reinventa el comercio minorista con modelos Ultralytics YOLO. La IA visual permite realizar el seguimiento del inventario, supervisar estanterías, gestionar colas y obtener información más útil sobre los clientes.
Más información
Visión artificial en el sector sanitario

Visión artificial en el sector sanitario

Desarrolla soluciones sanitarias con modelos Ultralytics YOLO. La IA visual en el sector sanitario permite acelerar el diagnóstico por imagen, mejorar los diagnósticos y supervisar a los pacientes.
Más información
Visión artificial en la fabricación

Visión artificial en la fabricación

Optimiza la fabricación con modelos Ultralytics YOLO. La IA visual mejora el control de calidad, la detección de defectos, el cumplimiento de las normas de uso de EPI y la automatización de las líneas de montaje.
Más información
Visión artificial en la automoción

Visión artificial en la automoción

Aplica la visión artificial al sector de la automoción con modelos Ultralytics YOLO. La IA visual mejora la seguridad vial, la asistencia al conductor y la automatización de vehículos para lograr carreteras más inteligentes.
Más información
Visión artificial en la agricultura

Visión artificial en la agricultura

Incorpora la IA de visión a la agricultura inteligente con modelos Ultralytics YOLO. Impulsa la monitorización de cultivos, el seguimiento del ganado y la agricultura de precisión para obtener cosechas más abundantes e inteligentes.
Más información

¡Construyamos juntos el futuro de la IA!

Inicia tu recorrido hacia el futuro del aprendizaje automático