Fundamentos de la IA

¿Qué son las Máquinas de Vectores de Soporte?

mm
Añade Unite.AI a tus fuentes preferidas en Google

¿Qué son las Máquinas de Vectores de Soporte?

Las máquinas de vectores de soporte son un tipo de clasificador de aprendizaje automático, posiblemente uno de los más populares. Las máquinas de vectores de soporte son especialmente útiles para tareas de predicción numérica, clasificación y reconocimiento de patrones.

Las máquinas de vectores de soporte operan dibujando límites de decisión entre puntos de datos, con el objetivo de que el límite de decisión entre los puntos sea lo más grande posible, de modo que la distancia entre cualquier punto de datos y la línea de límite sea maximizada. Esa es una explicación rápida de cómo las máquinas de vectores de soporte (SVM) operan, pero tomémonos un momento para profundizar en cómo operan las SVM y entender la lógica detrás de su funcionamiento.

Objetivo de las Máquinas de Vectores de Soporte

Imagina un gráfico con una serie de puntos de datos, basados en características especificadas por los ejes X e Y. Los puntos de datos en el gráfico se pueden dividir aproximadamente en dos clusters diferentes, y el cluster al que pertenece un punto de datos indica la clase del punto de datos. Ahora, supongamos que queremos dibujar una línea en el gráfico que separe las dos clases entre sí, con todos los puntos de datos de una clase en un lado de la línea y todos los puntos de datos de la otra clase en el otro lado de la línea. Esta línea separadora se conoce como hiperplano.

Puedes pensar en una máquina de vectores de soporte como si creara “carreteras” a lo largo de una ciudad, separando la ciudad en distritos en cada lado de la carretera. Todos los edificios (puntos de datos) que se encuentran en un lado de la carretera pertenecen a un distrito.

El objetivo de una máquina de vectores de soporte no es solo dibujar hiperplanos y dividir puntos de datos, sino dibujar el hiperplano que separe los puntos de datos con la mayor margen, o con el mayor espacio entre la línea divisoria y cualquier punto de datos. Volviendo a la metáfora de las “carreteras”, si un planificador urbano dibuja planes para una autopista, no quiere que la autopista esté demasiado cerca de casas u otros edificios. Cuanto mayor sea la margen entre la autopista y los edificios en cada lado, mejor. La mayor margen posible hace que el clasificador sea más “confiado” en sus predicciones. En el caso de la clasificación binaria, dibujar el hiperplano correcto significa elegir un hiperplano que esté justo en el medio de las dos clases diferentes. Si el límite de decisión/hiperplano está más lejos de una clase, estará más cerca de otra. Por lo tanto, el hiperplano debe equilibrar la margen entre las dos clases diferentes.

Cálculo del Hiperplano Separador

¿Cómo determina una máquina de vectores de soporte el mejor hiperplano separador/límite de decisión? Esto se logra calculando posibles hiperplanos utilizando una fórmula matemática. No cubriremos la fórmula para calcular hiperplanos en detalle extremo, pero la línea se calcula con la famosa fórmula de pendiente/línea:

Y = ax + b

Mientras que las líneas están compuestas por puntos, lo que significa que cualquier hiperplano se puede describir como: el conjunto de puntos que corren paralelos al hiperplano propuesto, según lo determinado por los pesos del modelo multiplicados por el conjunto de características modificadas por un sesgo/offset especificado (“d”).

Las SVM dibujan muchos hiperplanos. Por ejemplo, la línea límite es un hiperplano, pero los puntos de datos que el clasificador considera también están en hiperplanos. Los valores para x se determinan en función de las características en el conjunto de datos. Por ejemplo, si tuvieras un conjunto de datos con las alturas y pesos de muchas personas, las características “altura” y “peso” serían las características utilizadas para calcular el “X”. Las márgenes entre el hiperplano propuesto y los diversos “vectores de soporte” (puntos de datos) encontrados en cada lado del hiperplano divisor se calculan con la siguiente fórmula:

W * X – b

Mientras que puedes leer más sobre las matemáticas detrás de las SVM, si estás buscando una comprensión más intuitiva de ellas, solo necesitas saber que el objetivo es maximizar la distancia entre el hiperplano separador propuesto/límite de decisión y los otros hiperplanos que corren paralelos a él (y en los que se encuentran los puntos de datos).

Foto: ZackWeinberg a través de Wikimedia Commons, CC BY SA 3.0 (https://commons.wikimedia.org/wiki/File:Svm_separating_hyperplanes_(SVG).svg)

Clasificación Multiclase

El proceso descrito hasta ahora se aplica a tareas de clasificación binaria. Sin embargo, los clasificadores SVM también se pueden utilizar para tareas de clasificación no binaria. Cuando se realiza la clasificación SVM en un conjunto de datos con tres o más clases, se utilizan más líneas divisorias. Por ejemplo, si una tarea de clasificación tiene tres clases en lugar de dos, se utilizarán dos líneas divisorias para dividir los puntos de datos en clases y la región que comprende una sola clase estará entre dos líneas divisorias en lugar de una. En lugar de calcular solo la distancia entre dos clases y un límite de decisión, el clasificador debe considerar ahora las márgenes entre los límites de decisión y las múltiples clases dentro del conjunto de datos.

Separaciones No Lineales

El proceso descrito anteriormente se aplica a casos donde los datos son linealmente separables. Tenga en cuenta que, en la realidad, los conjuntos de datos casi nunca son completamente linealmente separables, lo que significa que al utilizar un clasificador SVM a menudo necesitarás utilizar dos técnicas diferentes: márgen suave y trucos de kernel. Considera una situación en la que los puntos de datos de diferentes clases se mezclan, con algunas instancias que pertenecen a una clase en el “cluster” de otra clase. ¿Cómo podría el clasificador manejar estas instancias?

Una táctica que se puede utilizar para manejar conjuntos de datos no linealmente separables es la aplicación de un clasificador SVM de márgen suave. Un clasificador de márgen suave opera aceptando algunos puntos de datos mal clasificados. Intentará dibujar una línea que mejor separe los clusters de puntos de datos entre sí, ya que contienen la mayoría de las instancias que pertenecen a sus respectivas clases. El clasificador SVM de márgen suave intentará crear una línea divisoria que equilibre las dos demandas del clasificador: precisión y margen. Intentará minimizar la mal clasificación mientras también maximiza la margen.

La tolerancia a errores del SVM se puede ajustar mediante la manipulación de un hiperparámetro llamado “C”. El valor de C controla cuántos vectores de soporte considera el clasificador al dibujar límites de decisión. El valor de C es una penalización aplicada a las mal clasificaciones, lo que significa que cuanto mayor sea el valor de C, menos vectores de soporte considera el clasificador y más estrecha es la margen.

El truco del kernel transforma los datos de manera no lineal. Foto: Shiyu Ju a través de Wikmedia Commons, CC BY SA 4.0 (https://commons.wikimedia.org/wiki/File:Kernel_trick_idea.svg)

El truco del kernel opera aplicando transformaciones no lineales a las características en el conjunto de datos. El truco del kernel toma las características existentes en el conjunto de datos y crea nuevas características a través de la aplicación de funciones matemáticas no lineales. Lo que resulta de la aplicación de estas transformaciones no lineales es un límite de decisión no lineal. Dado que el clasificador SVM ya no está restringido a dibujar límites de decisión lineales, puede comenzar a dibujar límites de decisión curvos que mejor encapsulan la verdadera distribución de los vectores de soporte y minimizan las mal clasificaciones. Dos de los kernels no lineales SVM más populares son la Función de Base Radial y el Polinomio. La función polinómica crea combinaciones polinomiales de todas las características existentes, mientras que la Función de Base Radial genera nuevas características midiendo la distancia entre un punto/points central y todos los demás puntos.

Bloguero y programador con especialidades en Machine Learning y Deep Learning temas. Daniel espera ayudar a otros a utilizar el poder de la IA para el bien social.