Esta pregunta es en respuesta a un comentario que vi en otra pregunta.
El comentario fue sobre el programa de estudios de Machine Learning en Coursera, y en la línea de "SVMs no se utilizan tanto hoy en día".
Acabo de terminar las conferencias relevantes por mí mismo, y entiendo que los SVM son un algoritmo de aprendizaje robusto y eficiente para la clasificación, y que cuando usan un núcleo, tienen un "nicho" que cubre un número de características quizás de 10 a 1000 y número de muestras de entrenamiento quizás de 100 a 10,000. El límite en las muestras de entrenamiento se debe a que el algoritmo central gira en torno a la optimización de los resultados generados a partir de una matriz cuadrada con dimensiones basadas en el número de muestras de entrenamiento, no en el número de características originales.
Entonces, ¿el comentario que vi hace referencia a algún cambio real desde que se realizó el curso? Y si es así, ¿cuál es ese cambio? ? ¿O acaso es opinión o experiencia personal del comentarista?
Intenté buscar, por ejemplo, "son máquinas de vectores de soporte pasadas de moda" y no encontré nada que implique que fueron descartadas a favor de cualquier otra cosa.
Y Wikipedia tiene esto: http://en.wikipedia.org/wiki/Support_vector_machine#Issues . . . El principal problema parece ser la dificultad de interpretar el modelo. Lo que hace que SVM sea bueno para un motor de predicción de caja negra, pero no tan bueno para generar ideas. No lo veo como un problema importante, solo otra cosa menor a tener en cuenta al elegir la herramienta adecuada para el trabajo (junto con la naturaleza de los datos de capacitación y la tarea de aprendizaje, etc.).
fuente
Respuestas:
SVM es un clasificador poderoso. Tiene algunas buenas ventajas (que supongo que fueron responsables de su popularidad) ... Estas son:
También hay algunas desventajas significativas.
Los SVM generalmente pertenecen a la clase de "Máquinas de kernel dispersas". Los vectores dispersos en el caso de SVM son los vectores de soporte que se eligen del criterio de margen máximo. Otras máquinas de vectores dispersos, como la Máquina de vectores de relevancia (RVM), funcionan mejor que SVM. La siguiente figura muestra un rendimiento comparativo de los dos. En la figura, el eje x muestra datos unidimensionales de dos clases y = {0,1}. El modelo de mezcla se define como P (x | y = 0) = Unif (0,1) y P (x | y = 1) = Unif (.5,1.5) (Unif denota una distribución uniforme). Se tomaron muestras de 1000 puntos de esta mezcla y se usaron una SVM y una RVM para estimar la posterior. El problema de SVM es que los valores predichos están muy lejos de las verdaderas probabilidades de registro.
Un clasificador muy efectivo, que es muy popular hoy en día, es el Bosque Aleatorio . Las principales ventajas son:
fuente
Al responder a esta pregunta, una distinción importante es si estamos hablando de máquinas de vectores de soporte lineales o no , es decir, máquinas de vectores de soporte kernelizadas.
SVM lineales
Los SVM lineales son, en teoría y práctica, modelos muy buenos cuando sus datos pueden explicarse por las relaciones lineales de sus características. Son superiores a los métodos clásicos como la regresión lineal (también conocida como mínimos cuadrados) porque son robustos , en el sentido de que pequeñas perturbaciones en los datos de entrada no producen cambios significativos en el modelo. Esto se logra tratando de encontrar la línea (hiperplano) que maximiza los márgenes entre sus puntos de datos. Se ha demostrado que este hiperplano de margen máximo brinda garantías sobre la capacidad de generalización del modelo sobre puntos de datos no vistos, una propiedad teórica de la que carecen otros métodos de aprendizaje automático.
Los SVM lineales también se pueden interpretar como cualquier otro modelo lineal, ya que cada característica de entrada tiene un peso que influye directamente en la salida del modelo.
Además, los SVM lineales son muy rápidos de entrenar y muestran tiempos de entrenamiento sublineales para conjuntos de datos muy grandes. Esto se logra mediante el uso de técnicas de descenso de gradiente estocástico, muy al estilo de los métodos actuales de aprendizaje profundo.
SVM no lineales
Los SVM no lineales siguen siendo modelos lineales y cuentan con los mismos beneficios teóricos, pero emplean el llamado truco del núcleo para construir este modelo lineal sobre un espacio ampliado. El resultado visible es que el modelo resultante puede tomar decisiones no lineales sobre sus datos. Dado que puede proporcionar similitudes de codificación de kernel personalizadas entre puntos de datos, puede utilizar el conocimiento del problema para hacer que ese kernel se enfoque en las partes relevantes de su problema. Sin embargo, hacer esto de manera efectiva puede ser difícil, por lo que, en general, casi todos usan el núcleo gaussiano plug-and-play.
Los SVM no lineales son parcialmente interpretables, ya que le indican qué datos de entrenamiento son relevantes para la predicción y cuáles no. Esto no es posible para otros métodos, como bosques aleatorios o redes profundas.
Lamentablemente, las SVM no lineales son lentas. El algoritmo de última generación es la optimización mínima secuencial , que muestra el rendimiento cuadrático, y se implementa ampliamente a través de la biblioteca LIBSVM en varias bibliotecas de aprendizaje automático, incluido scikit-learn.
Popularidad de estos métodos
Es cierto que las SVM no son tan populares como solían serlo: esto se puede verificar buscando en Google trabajos de investigación o implementaciones para SVM frente a bosques aleatorios o métodos de aprendizaje profundo. Aún así, son útiles en algunos entornos prácticos, especialmente en el caso lineal.
Además, tenga en cuenta que, debido al teorema del almuerzo sin almuerzo, no se puede demostrar que ningún método de aprendizaje automático sea superior a ningún otro sobre todos los problemas. Si bien algunos métodos funcionan mejor en general, siempre encontrará conjuntos de datos donde un método no tan común logrará mejores resultados.
fuente