¿Cuál es la parte más lenta del método SVM?

Para agregar a la respuesta de Abhishek Shivkumar, realmente no se puede separar “encontrar la norma de margen máximo” de “encontrar vectores de soporte”: están unidos como parte de un único problema de optimización convexo que necesita resolver para entrenar al SVM.

El problema de optimización involucrado es un programa cuadrático, lo que hace que sea bastante fácil de optimizar. Además, se ha hecho un gran esfuerzo para resolver el problema de optimización rápidamente, y ahora existen solucionadores disponibles que resolverán el problema de optimización por usted, por ejemplo:

  1. LIBSVM – Una biblioteca para máquinas de vectores de soporte. Esto se basa en una clase de métodos de optimización llamada SMO: optimización mínima secuencial
  2. LIBLINEAR – Una biblioteca para clasificación lineal grande. Esto se basa en el descenso coordinado en la dual del problema convexo
  3. PEGASOS: (marque bajo el encabezado PEGASOS en el código fuente de Shai Shalev-Shwartz) basado en el descenso de gradiente estocástico
  4. Máquina de vectores de soporte SVM-Light

Entonces, si desea acelerar el entrenamiento SVM, realmente tendrá que profundizar en el mundo de la optimización convexa a lo grande.

Creo que la parte más lenta del método SVM es la optimización de la función objetivo.

En SVM, está tratando de maximizar el margen del hiperplano que separa los puntos de datos, lo que finalmente se reduce a minimizar una función objetivo.

Esta minimización de la función objetivo está sujeta a restricciones lineales y además la función es convexa. Por lo tanto, se convierte en un problema de optimización restringido de una función convexa. Esto se conoce como programación cuadrática (programación cuadrática).

He encontrado este ppt – http://pages.cs.wisc.edu/~jerryz … – que describe los detalles de SVM de forma intuitiva y proporciona más detalles de las matemáticas involucradas, lo cual creo que es la parte que más tiempo consume de un SVM .