Cómo saber si Deep Learning funcionará mejor para un problema específico, que SVM o bosque aleatorio

Si aborda un problema de aprendizaje supervisado, le aconsejo que comience primero con el espacio de hipótesis más simple. Es decir, pruebe un modelo lineal como la regresión logística. Si esto no funciona “bien” (es decir, no cumple con sus expectativas o criterio de rendimiento que definió anteriormente), pasaría al siguiente experimento.

Bosques aleatorios vs. SVM

Diría que los bosques aleatorios son más o menos el enfoque “libre de preocupaciones” aquí: no hay hiperparámetros reales para ajustar (tal vez excepto por la cantidad de árboles; típicamente, cuantos más árboles tenga, mejor). Por el contrario, hay muchas perillas para activar en SVM: elegir el núcleo “correcto”, penalizaciones de regularización, la variable de holgura, …

Tanto los bosques aleatorios como las SVM son modelos no paramétricos (es decir, la complejidad crece con el número de muestras de entrenamiento), y el entrenamiento también puede ser computacionalmente bastante costoso (en comparación con un modelo lineal generalizado, por ejemplo). Cuantos más árboles tenga, más costoso es construir un bosque aleatorio. Por otro lado, puede terminar con muchos vectores de soporte en SVM, en el peor de los casos, tiene tantos vectores de soporte como muestras en el conjunto de entrenamiento. Si bien hay SVM de varias clases, también tenga en cuenta que las SVM se implementan típicamente usando la clasificación Uno contra todos, por lo tanto, debe entrenar un SVM para cada clase; en contraste, los árboles de decisión / bosques aleatorios pueden manejar múltiples clases fuera de la caja.

En resumen, los bosques aleatorios son mucho más fáciles de entrenar; Es más fácil obtener un modelo bueno y robusto. La complejidad de un bosque aleatorio crece con la cantidad de árboles en el bosque y la cantidad de muestras de entrenamiento que tiene. En los SVM, normalmente necesita hacer una buena cantidad de ajuste de parámetros, y el costo computacional también aumenta linealmente con el número de clases.

Aprendizaje profundo

Como regla general, diría que los SVM son excelentes para conjuntos de datos relativamente pequeños con menos valores atípicos, los bosques aleatorios pueden requerir más datos, pero casi siempre presentan un modelo bastante robusto. Y el aprendizaje profundo … bueno, requieren conjuntos de datos “relativamente” grandes para funcionar bien, y necesita la infraestructura para capacitarlos en un tiempo razonable. Además, los algoritmos de aprendizaje profundo requieren mucha más experiencia para “configurarlos” en comparación con los clasificadores listos para usar, como bosques aleatorios y SVM.

Por otro lado, el aprendizaje profundo realmente brilla cuando se trata de problemas complejos como la clasificación de imágenes, el procesamiento del lenguaje natural y el reconocimiento de voz. Otra ventaja es que debe preocuparse menos por la ingeniería de características. Nuevamente, en la práctica, la decisión de qué clasificador elegir realmente depende de su conjunto de datos y de la complejidad general del problema: ahí es donde entra en juego su experiencia como profesional de aprendizaje automático.

Si se trata de rendimiento predictivo, hay casos en que los SVM funcionan mejor que los bosques aleatorios y viceversa:

  • Caruana, Rich y Alexandru Niculescu-Mizil. “Una comparación empírica de algoritmos de aprendizaje supervisado”. Actas de la 23ª conferencia internacional sobre aprendizaje automático. ACM, 2006. https://www.cs.cornell.edu/~caru…

Lo mismo es cierto para los algoritmos de aprendizaje profundo si nos fijamos en los puntos de referencia MNIST (base de datos de dígitos escritos a mano MNIST, Yann LeCun, Corinna Cortes y Chris Burges):

El mejor modelo en este conjunto es un comité de 35 ConvNets, de los cuales se informó que tenían un error de prueba del 0.23%; El mejor modelo SVM tiene un error de prueba del 0,56%. El conjunto ConvNet puede ser mejor (por el bien de este conjunto, supongamos que se trata de estimaciones totalmente imparciales), pero sin duda, diría que los 35 conv. El comité neto es mucho más caro (computacionalmente). Entonces, si toma esa decisión: ¿Vale la pena una mejora del 0.33%? En algunos casos, tal vez lo sea (por ejemplo, en el sector financiero para predicciones en tiempo no real), en algunos casos probablemente no lo sea.

Entonces, mi consejo práctico es:

  1. Defina una métrica de rendimiento para evaluar su modelo
  2. Pregúntese: qué puntaje de rendimiento se desea, qué hardware se requiere, cuál es la fecha límite del proyecto
  3. Comience con el modelo más simple.
  4. Si no cumple con su objetivo esperado, pruebe con modelos más complejos (si es posible)

Hola, gracias por el A2A!

Sebastian tiene una muy buena respuesta, solo agregaré algunos puntos más

1) Hay una muy buena explicación de cómo los métodos de aprendizaje profundo se escalan muy bien (o más bien el crecimiento en el rendimiento es más con el aumento de los datos), diapositiva no 3 de http://cs229.stanford.edu/materi

2) Para un problema de tipo de aprendizaje supervisado, vea si tiene una gran cantidad de datos sin marcar aparte de sus datos supervisados ​​habituales. Creo que esta es una de las razones por las cuales los algoritmos de aprendizaje profundo han tenido éxito ya que tenemos más datos sin etiquetar (imágenes, texto, voz). Los algoritmos tradicionales no utilizan estos datos.

3) Algoritmos como los bosques aleatorios no son sensibles a los valores atípicos. Un buen hilo es ¿Cómo los bosques aleatorios no son sensibles a los valores atípicos?

4) Además, esto es bastante interesante en Machine Learning, What is Better: More Data or better Algorithms.

5) Personalmente, he encontrado que las estrategias de CEC también funcionan bien con la clasificación multiclase, particularmente en el conjunto de datos de tejido mamario, estas funcionaron mejor que una vs todas las SVM para mí. De nuevo, ¡este puede no ser el caso siempre! Puede encontrar mis diapositivas en Estrategias de clase binaria y multiclase para aprendizaje automático

6) Además, y lo que es más importante, las arquitecturas de aprendizaje profundo se escalan mejor con los datos y, por lo tanto, con una menor cantidad de datos, la mayoría de los algoritmos de aprendizaje funcionarán mejor que las arquitecturas profundas (como el profesor Ng. Mencionado en sus diapositivas), por lo tanto, para conjuntos de datos más pequeños, intente utilizar enfoques basados ​​en SVM .

En general, debe leer literatura (si está disponible para el problema). Probablemente abordaría el problema de la misma manera que Sebastian lo haría si no hay información disponible. Otros parámetros que pueden definir su algoritmo son, por supuesto, los requisitos de memoria (como se menciona en Sebastian Random Forests vs SVMs), la precisión deseada y también en ciertos escenarios, es posible que desee que un algoritmo “explique” sus resultados, es decir, absolutamente no puede implementar un modelo de “caja negra”.