Compartir tecnología

[Aprendizaje automático] 12. Explicación del principio del algoritmo de Support Vector Machine (SVM - Support Vector Machine), uno de los diez mejores algoritmos

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

1·Resumen

Insertar descripción de la imagen aquí

La máquina de vectores de soporte (SVM) es un algoritmo de aprendizaje supervisado eficiente ampliamente utilizado en problemas de clasificación y regresión. Distingue diferentes categorías de puntos de datos al encontrar un hiperplano óptimo en el espacio de características. El objetivo es maximizar el intervalo entre dos tipos de puntos de datos, mejorando así la capacidad de generalización del modelo. Los conceptos clave de SVM incluyen hiperplanos, intervalos, vectores de soporte y funciones del núcleo. La función del núcleo permite a SVM manejar problemas no lineales y encontrar hiperplanos linealmente separables asignando datos a un espacio de dimensiones superiores. Además, se utilizan técnicas de regularización y márgenes suaves para abordar la separabilidad lineal no completa de los datos, al mismo tiempo que se controla la complejidad del modelo y se evita el sobreajuste. La implementación de SVM implica seleccionar una función del núcleo apropiada, construir y resolver un problema de programación cuadrática convexa y evaluar y aplicar el modelo entrenado. Sus ventajas son que el modelo es simple, fácil de implementar y tiene buena capacidad de generalización, pero tiene una alta complejidad computacional, es sensible a la función del núcleo y la selección de parámetros y puede encontrar cuellos de botella en el rendimiento al procesar conjuntos de datos a gran escala.

2. Presentación personal

🏘️🏘️个人主页:Usar montañas y ríos como regalo
🎖️🎖️:Creador Rising Star en el campo de Python, certificación CSDN Rising Star, socio de contenido de CSDN, bloguero experto de la comunidad Alibaba Cloud, mentor del programa Rising Star y analista de datos en el trabajo.

💕💕悲索之人烈焰加身,堕落者不可饶恕。永恒燃烧的羽翼,带我脱离凡间的沉沦。

Insertar descripción de la imagen aquí

🐘 希望大家能持续支持,共同向前迈进!😁
Si crees que el artículo es valioso,
欢迎留言💬,点赞👍,收藏🔖并关注我们➕🤝。
🪐💫💫💫💫💫💫💫热门专栏💫💫💫💫💫💫💫🪐

3. Conceptos básicos

Support Vector Machine (SVM) es un potente algoritmo de aprendizaje automático que se utiliza principalmente para resolver problemas de clasificación y regresión. Se basa en el principio de minimización del riesgo estructural en la teoría del aprendizaje estadístico y distingue diferentes categorías de datos al encontrar un límite de decisión óptimo, es decir, un hiperplano, en el espacio de características. La elección de este hiperplano tiene como objetivo maximizar la distancia más corta desde los puntos de datos hasta el hiperplano, lo que se denomina margen. Cuanto mayor sea el intervalo, mejor será la capacidad de generalización del modelo.

El núcleo de SVM es el vector de soporte, que es un conjunto de puntos de datos que son críticos para determinar la posición y dirección del hiperplano. Son los puntos más cercanos al hiperplano. Si los datos no son separables linealmente, SVM asigna los datos originales a un espacio de dimensiones superiores mediante la introducción de una función central y encuentra un hiperplano linealmente separable en este nuevo espacio. Las funciones del núcleo comúnmente utilizadas incluyen núcleos lineales, núcleos polinómicos, núcleos de función de base radial (RBF), etc.

Para abordar el ruido y los valores atípicos en los datos, SVM introduce el concepto de margen suave, que permite clasificar erróneamente algunos puntos de datos a cambio de un mejor rendimiento de generalización. Al mismo tiempo, la complejidad del modelo se controla mediante términos de regularización para evitar el sobreajuste. El proceso de entrenamiento de SVM generalmente implica resolver un problema de programación cuadrática convexa para encontrar los parámetros óptimos del hiperplano.

Consulte la figura siguiente. En un entorno bidimensional, los puntos R, S, G y otros puntos cercanos a la línea negra media pueden considerarse como vectores de soporte. Pueden determinar los parámetros específicos del clasificador, es decir, el negro. línea.
Insertar descripción de la imagen aquí

4. Vectores de soporte e hiperplanos.

Los vectores de soporte y los hiperplanos son conceptos centrales en el algoritmo de la máquina de vectores de soporte (SVM). A continuación te explicaré detalladamente estos dos conceptos:

4.1 Hiperplano

En matemáticas, un hiperplano es un subespacio lineal que tiene una dimensión menor que el espacio en el que reside. Por ejemplo, en el espacio bidimensional, un hiperplano es una línea recta; en el espacio tridimensional, es un plano; en el espacio de dimensiones superiores, sigue siendo un límite lineal, pero puede ser difícil de entender intuitivamente.

En SVM, el hiperplano se utiliza para clasificar datos en diferentes categorías. Para un espacio bidimensional, puede imaginar un hiperplano como una línea recta que divide el espacio en dos partes, cada parte conteniendo una categoría de puntos de datos. Para espacios de dimensiones superiores, un hiperplano es un límite lineal de dimensiones superiores que también separa puntos de datos.

4.2 Vectores de soporte

Los vectores de soporte son aquellos puntos de datos ubicados más cerca del hiperplano. Son los puntos de datos clave utilizados por SVM durante el entrenamiento para determinar la ubicación del hiperplano. Si elimina alguno de estos puntos, cambia la posición y orientación del hiperplano.

Los vectores de soporte son importantes porque definen los límites (es decir, intervalos) entre puntos de datos. El objetivo de SVM es encontrar un hiperplano que maximice la distancia (intervalo) entre los vectores de soporte más cercanos (es decir, los puntos de datos más cercanos al hiperplano) y el hiperplano. El tamaño de este intervalo es un indicador importante de la capacidad de generalización del modelo.

4.3 Truco del núcleo

En aplicaciones reales, es posible que los datos no sean separables linealmente. En este momento, SVM puede utilizar técnicas de kernel para abordar problemas no lineales. La función del núcleo puede asignar los datos originales a un espacio de dimensiones superiores y encontrar un hiperplano linealmente separable en el nuevo espacio. Las funciones del núcleo comúnmente utilizadas incluyen núcleos lineales, núcleos polinómicos, núcleos de función de base radial (RBF), etc.

4.4 Margen blando y regularización

Cuando se trata de datos reales, puede que no sea posible encontrar un hiperplano perfecto que separe por completo todos los puntos de datos. En ese momento, SVM introdujo el concepto de margen blando, que permite clasificar erróneamente algunos puntos de datos a cambio de mejores capacidades de generalización. Al mismo tiempo, la complejidad del modelo se controla mediante el término de regularización (generalmente la norma del vector normal) para evitar el sobreajuste.

Insertar descripción de la imagen aquí

5. Principio del algoritmo SVM

5.1 Fórmula de distancia del punto al hiperplano

La fórmula de distancia punto a hiperplano se utiliza para calcular la distancia más corta desde un punto a un hiperplano determinado. El hiperplano se puede expresar mediante la siguiente ecuación en un espacio n-dimensional:
Insertar descripción de la imagen aquí
en:
w es un vector normal de n dimensiones, perpendicular al hiperplano.
x es un punto n-dimensional ubicado en el espacio.
b es el término de sesgo del hiperplano.
La distancia vertical d desde el punto x a este hiperplano se puede calcular mediante la siguiente fórmula:
Insertar descripción de la imagen aquí
这个公式的几何意义是:从点 𝑥 向超平面作垂线,垂足到点 𝑥的距离就是𝑑这个距离也代表了点 𝑥到超平面的“间隔”。在支持向量机中,间隔的大小是非常重要的,因为它与模型的泛化能力有关。SVM的目标是找到这样一个超平面,使得间隔最大化,即所有数据点到这个超平面的距离之和最大。

5.2 Modelo de optimización del intervalo máximo

Modelo de optimización en caso linealmente separable.
Cuando los datos son linealmente separables, es decir, hay un hiperplano que puede separar perfectamente diferentes categorías de puntos de datos, el objetivo de SVM es encontrar un hiperplano tal que los dos puntos de datos más cercanos (es decir, vectores de soporte) estén al hiperplano. Maximizar la distancia. Esta distancia se llama margen.
El hiperplano se puede expresar como:
Insertar descripción de la imagen aquí
Problema de optimización del margen máximo
La función objetivo de SVM es maximizar el intervalo, que se puede expresar como:
Insertar descripción de la imagen aquí
Insertar descripción de la imagen aquíPresentamos los multiplicadores de Lagrange
Insertar descripción de la imagen aquí
problema dual
Insertar descripción de la imagen aquí

6. Variables flojas

En las máquinas de vectores de soporte (SVM), las variables de holgura (variables de holgura) son un mecanismo introducido para tratar situaciones separables no lineales en conjuntos de datos. En una situación ideal, si los datos son linealmente separables, SVM puede encontrar un hiperplano que separe completamente diferentes clases de puntos de datos mientras maximiza el margen. Sin embargo, en el mundo real, muchos conjuntos de datos no son completamente separables linealmente, lo que requiere el uso de variables de holgura para permitir que algunos puntos de datos se clasifiquen erróneamente, mejorando así la capacidad de generalización del modelo.Insertar descripción de la imagen aquí

6.1 Definición de variables de holgura

Insertar descripción de la imagen aquí

6.2 Modificación del modelo de optimización.

Insertar descripción de la imagen aquí
这里的 𝐶是一个正的调节参数,用于控制模型对误分类的惩罚程度。𝐶的值越大,模型对误分类的惩罚越重,越倾向于找到没有误分类的解;𝐶的值越小,模型对误分类的容忍度越高,越容易找到间隔更大的解,即使这意味着更多的误分类。

6.3 Márgenes suaves y márgenes duros

  • Margen duro: SVM que no introduce variables de holgura requiere que todos los puntos de datos estén fuera o en el límite del margen, es decir, no se permite ninguna clasificación errónea.
  • Margen suave: SVM introduce variables de holgura, lo que permite que algunos puntos de datos estén dentro del límite del margen, es decir, permite un cierto grado de clasificación errónea. Trucos del kernel y variables de holgura.

6.4 Trucos del kernel y variables de holgura

Incluso en el caso de separabilidad no lineal, al utilizar el truco del núcleo para mapear los datos en un espacio de alta dimensión, combinado con variables de holgura, SVM aún puede encontrar el hiperplano con el margen máximo.

7. Función del núcleo

La función kernel es una herramienta importante en la máquina de vectores de soporte (SVM), que permite a SVM manejar de manera efectiva problemas no lineales en espacios de alta dimensión. La idea básica de la función kernel es mapear los datos originales desde un espacio de baja dimensión a un espacio de alta dimensión mediante el mapeo y encontrar la separabilidad lineal de los datos en este espacio de alta dimensión.
Insertar descripción de la imagen aquí

7.1 Conceptos básicos de la función del kernel

Insertar descripción de la imagen aquí

7.2 Funciones del kernel de uso común

Insertar descripción de la imagen aquí

7.3 El papel de la función del núcleo

  1. Manejar problemas no lineales: al mapear el espacio de alta dimensión, la función del núcleo hace que los datos que originalmente eran linealmente inseparables en un espacio de baja dimensión sean linealmente separables en un espacio de alta dimensión.
  2. Mejorar la capacidad expresiva del modelo: diferentes funciones del núcleo pueden capturar diferentes características de los datos y mejorar la capacidad expresiva del modelo.
  3. Reducir la complejidad computacional: el uso de funciones del kernel puede evitar el cálculo directo en un espacio de alta dimensión, reduciendo así la complejidad computacional.