¿Por qué las máquinas de vectores de soporte han caído en desgracia?

Las máquinas de vectores de soporte NO han caído en desgracia.

No se deje engañar por el bombo publicitario profundo, ese aprendizaje profundo es el principio y el final del aprendizaje automático. El aprendizaje profundo está resolviendo algunos problemas importantes, y debido a que los métodos de aprendizaje profundo acaban de volver a ser el centro de atención, las personas están tratando de atacar a todos los frutos bajos, lo que les está dando mucha tracción a estos métodos. Pero esto no significa que los otros algoritmos de ML hayan caído en desgracia.

Si mira el siguiente enlace: Cortes: Redes de vectores de soporte: citas: verá que el documento SVM original ha sido citado más de 3000 veces desde 2016 . Claro, algunas de estas citas solo usarían SVM como líneas de base para demostrar que un nuevo algoritmo funciona mejor que SVM, pero si observa la lista de cerca, verá muchos documentos en varios campos, incluidos medicina, genómica, neurociencia, botánica, etc., además de informática, extender SVM o usar SVM en diferentes tareas. Por lo tanto, todavía son bastante populares y continuarán siéndolo al menos durante otros años.


Escribí una respuesta hace tiempo a una pregunta similar: ¿por qué todavía se usa SVM en el aprendizaje automático cuando las redes neuronales son mucho más precisas? – que también es relevante para esta pregunta:

Esta pregunta me recuerda a un pareado hindi, que dice más o menos “¡No tires la aguja cuando consigas una espada!”

Recientemente se ha demostrado que las redes neuronales son mejores que las SVM en diversas tareas, pero aquí hay un claro sesgo de observación. Las redes neuronales están en tendencia en estos días. Si tiene una tarea en la que puede entrenar a un NN que funciona mejor que los SVM, puede publicar un documento. Por otro lado, si tiene una tarea donde las SVM funcionan mejor que las NN, no podrá publicarla. Entonces solo escuchará un lado de la historia.

Ahora, hay algunas limitaciones obvias de NN en comparación con SVM:

  1. Hambre de datos : para entrenar NNs, necesita grandes cantidades de datos. ¿Qué haces cuando tienes muy pocos datos? Aquí hay un conjunto estándar de conjuntos de datos de referencia: UCI Machine Learning Repository: conjuntos de datos. Elija cualquier conjunto de datos de este conjunto con menos de 1000 ejemplos de entrenamiento e intente entrenar un NN que supere a SVM en esos datos por un amplio margen. Este es, con mucho, el punto más importante en mi opinión.
  2. Gran requisito de recursos computacionales : no puede hacer mucho con NN a menos que tenga GPU. Por otro lado, puede entrenar SVM en máquinas personales sin GPU.
  3. Las CNN requieren propiedad espacial : la operación de convolución realiza una operación en un conjunto de píxeles o una secuencia de palabras / señales de audio cercanas. Mezclar los píxeles / palabras / señales de audio cambiará completamente la salida de la CNN. Es decir, el orden de las características es importante o, en otras palabras, la convolución es una operación “espacial”. Las SVM no se ven afectadas por la combinación aleatoria de funciones. Por lo tanto, los problemas que no tienen la propiedad espacial no se beneficiarán de las CNN.
  4. Optimización de parámetros no trivial : ya he discutido este problema en detalle en otra respuesta. Para SVM, solo necesita ajustar 2–3 parámetros.
  5. Menos interpretable : muchas veces, tiene poca idea de lo que sucede dentro de la red, en particular, en las capas más cercanas a la salida. Esto nuevamente los hace más difíciles de mejorar, ya que no sabes mucho sobre lo que está mal. Las SVM pueden no ser completamente interpretables tampoco, pero son más interpretables que las NN.
  6. Configuración más larga : a menos que esté haciendo algo muy similar a ImageNet, no encontrará un modelo previamente entrenado en la web. Por lo tanto, tendrá que escribir una cantidad significativa de código para capacitar y evaluar un modelo NN razonable, incluso cuando se base en los marcos de aprendizaje profundo estándar. Con SVM, solo descarga LibSVM y puede comenzar a entrenar sus modelos en unos minutos.

La idea no es minimizar NNs vs SVMs. Refiriéndome a la analogía en mi línea de apertura, estos son algoritmos que son similares, pero uno no puede reemplazar al otro por el momento.

Lo tiene?

Bueno, estadísticamente hablando, Google Scholar definitivamente puede decirte lo contrario. ¡Solo estoy señalando los resultados de búsqueda de 2017 y parecen ser bastante! Este es un fuerte indicador de que los investigadores todavía están muy interesados ​​en expandir el alcance de SVM para explorar más aplicaciones para él o en mejorarlo.

En términos académicos y prácticos, puede echar un vistazo, por ejemplo, a este libro publicado en 2016 que contiene avances y aplicaciones recientes de SVM.

SVM tiene sus inconvenientes como cualquier otro algoritmo de aprendizaje automático, y esto solo significa avanzar hacia mejorarlo como ya lo han hecho muchos investigadores, pero definitivamente no hacia abandonarlo.

Debido a que los problemas que estamos tratando de resolver hoy son diferentes de los problemas que tratamos de resolver hace años.

De hecho, los SVM y NN son casi exactamente opuestos entre sí.

  • Los SVM funcionan bien en conjuntos de datos pequeños, mientras que los NN funcionan bien en conjuntos de datos grandes.
  • Los SVM requieren un amplio conocimiento, especialmente cuando se trata de encontrar la función del núcleo requerida. NN’s encuentra las cosas interesantes en tu lugar.
  • Los SVM son estables, mientras que los NN requieren mucha regularización.
  • Por otro lado, los NN pueden aprender en línea, mientras que los SVM deben ser entrenados previamente.

Por lo tanto, en general, los SVM se utilizan en pequeños conjuntos de datos y se basan en el conocimiento experto.

Desafortunadamente, estos casos ya no ocurren. Lo hacen, en pequeñas empresas que ni siquiera se mencionan en un periódico. Las grandes empresas, que llegan a los titulares, casi se ahogan en los datos, y en estos casos en los que tiene una gran cantidad de datos, pero no tiene la paciencia para tratar de comprenderlos, las redes neuronales realmente brillan.

Algunas de las razones por las que puedo pensar

  1. Toman mucho tiempo entrenar, especialmente con un problema no lineal y muchos datos.
  2. El diseño de los granos es difícil.
  3. Debido a la creciente popularidad de los algoritmos de aprendizaje profundo y el bosque aleatorio.
  4. Tedioso entrenar para la clasificación de varias clases.