Máquina de vectores de soporte (SVM)

Algortimos de Machine Learning para clasificación (SVM)

Una máquina de vectores de soporte (SVM) es un algoritmo de aprendizaje supervisado que se puede emplear para clasificación binaria o regresión. Las máquinas de vectores de soporte son muy populares en aplicaciones como el procesamiento del lenguaje natural, el habla, el reconocimiento de imágenes y la visión artificial.

Una máquina de vectores de soporte construye un hiperplano óptimo en forma de superficie de decisión, de modo que el margen de separación entre las dos clases en los datos se amplía al máximo. Los vectores de soporte hacen referencia a un pequeño subconjunto de las observaciones de entrenamiento que se utilizan como soporte para la ubicación óptima de la superficie de decisión.

Las máquinas de vectores de soporte pertenecen a una clase de algoritmos de Machine Learning denominados métodos kernel y también se conocen como máquinas kernel.

El entrenamiento de una máquina de vectores de soporte consta de dos fases:

  1. Transformar los predictores (datos de entrada) en un espacio de características altamente dimensional. En esta fase es suficiente con especificar el kernel; los datos nunca se transforman explícitamente al espacio de características. Este proceso se conoce comúnmente como el truco kernel.
  2. Resolver un problema de optimización cuadrática que se ajuste a un hiperplano óptimo para clasificar las características transformadas en dos clases. El número de características transformadas está determinado por el número de vectores de soporte.

Para construir la superficie de decisión solo se requieren los vectores de soporte seleccionados de los datos de entrenamiento. Una vez entrenados, el resto de los datos de entrenamiento son irrelevantes.

Entre los kernels populares que se emplean con las máquinas SVM se incluyen:

Tipo de SVM Kernel Mercer Descripción
Función de base radial (RBF) o gaussiana \(K(x_1,x_2) = \exp\left(-\frac{\|x_1 - x_2\|^2}{2\sigma^2}\right)\) Aprendizaje de una sola clase; \(\sigma\)es la anchura del kernel
Lineal \(K(x_1,x_2) = x_1^{\mathsf{T}}x_2\)
Aprendizaje de dos clases
Polinómica \(K(x_1,x_2) = \left( x_1^{\mathsf{T}}x_2 + 1 \right)^{\rho}\)
\(\rho\) es el orden del polinomio
Sigmoid \(K(x_1,x_2) = \tanh\left( \beta_{0}x_1^{\mathsf{T}}x_2 + \beta_{1} \right)\)
Es un kernel Mercer solo para determinados valores \(\beta_{0}\)  y \(\beta_{1}\)  

Para obtener más información sobre cómo ajustar los clasificadores de máquinas de vectores de soporte, consulte Statistics and Machine Learning Toolbox para su uso con MATLAB®.

También puede consultar: aprendizaje automático, aprendizaje supervisado, unsupervised learning, Statistics and Machine Learning Toolbox, redes neuronales, AdaBoost