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.
- Cómo evaluar los sistemas de recomendación de calificación unaria
- ¿Qué aplicaciones se pueden construir con TensorFlow en el futuro?
- ¿Cómo combina Eureqa bloques de construcción matemáticos en ecuaciones?
- ¿Por qué es tan difícil hacer un traductor universal?
- ¿Por qué los científicos están obsesionados con construir robots y desarrollar inteligencia artificial?
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:
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.