¿Cuándo Es Mejor Evitar el Uso de Deep Learning?

Matt Przybyla
Nov 12, 2021


Introducción


Este artículo está dirigido a los científicos de datos que pueden considerar el uso de algoritmos de aprendizaje profundo, y quieren saber más sobre los contras de la implementación de este tipo de modelos en su trabajo. Los algoritmos de aprendizaje profundo tienen muchos beneficios, son potentes y puede ser divertido mostrarlos. Sin embargo, hay algunos momentos en los que deberías evitarlos. A continuación hablaré de esos momentos en los que deberías dejar de usar el aprendizaje profundo, así que sigue leyendo si quieres profundizar en el aprendizaje profundo.


Cuando quieres explicar fácilmente


Photo by Malte Helmhold on Unsplash [2].

Dado que los otros algoritmos llevan más tiempo en el mercado, cuentan con innumerables cantidades de documentación, incluyendo ejemplos y funciones que facilitan su interpretación. También es la forma en que los otros algoritmos funcionan por sí mismos. El aprendizaje profundo puede ser intimidante para los científicos de datos por esta razón también, puede ser un rechazo a usar un algoritmo de aprendizaje profundo cuando no estás seguro de cómo explicarlo a una parte interesada.


He aquí 3 ejemplos de cuándo tendrías problemas para explicar el aprendizaje profundo:
  • Cuando quiera describir las características principales de su modelo: las características se convierten en entradas ocultas, por lo que no sabrá qué causó una determinada predicción, y si necesita demostrar a las partes interesadas o a los clientes por qué se logró un determinado resultado, puede ser más bien una caja negra
  • Cuando se desea ajustar los hiperparámetros, como la tasa de aprendizaje y el tamaño del lote.
  • Cuando se quiere explicar el funcionamiento del algoritmo, por ejemplo, si se presenta el algoritmo a los interesados, éstos podrían perderse, ya que incluso un enfoque simplificado es difícil de entender.

Aquí hay 3 ejemplos de cómo podrías explicar esas mismas situaciones de arriba desde algoritmos de aprendizaje no profundos:

  • Cuando quiera explicar sus características principales, puede acceder fácilmente a las bibliotecas SHAP, por ejemplo, para el algoritmo CatBoost, una vez que su modelo está ajustado, puede simplemente hacer un gráfico de resumen de feat = model.get_feature_importance() y luego utilizar el summary_plot() para clasificar las características por nombre de característica, de modo que pueda presentar un bonito gráfico a las partes interesadas (y a usted mismo)


Ejemplo de salida SHAP clasificada de un modelo de aprendizaje no profundo [3]. 

  • Como solución, algunos otros algoritmos han facilitado mucho el ajuste de sus hiperparámetros mediante la búsqueda aleatoria en cuadrículas o un método más estructurado de búsqueda en cuadrículas. Incluso hay algunos algoritmos que se ajustan a sí mismos, por lo que no hay que preocuparse de un ajuste complicado 
  • Explicar cómo funcionan otros algoritmos puede ser mucho más fácil, como los árboles de decisión, por ejemplo, puedes mostrar fácilmente un gráfico de sí o no, 0/1 que muestra una respuesta simple para las características que conducen a una predicción, como sí está lloviendo, sí es invierno, proporcionaría para sí va a hacer frío 

En general, los algoritmos de aprendizaje profundo son útiles y poderosos, por lo que definitivamente hay un momento y un lugar para ellos, pero hay otros algoritmos que puedes usar en su lugar, como discutiremos a continuación. 


Cuando se pueden utilizar otros algoritmos



Photo by Luca Bravo on Unsplash [4].

Para ser sinceros, hay unos cuantos algoritmos que pueden proporcionarle un gran modelo con grandes resultados con bastante rapidez. Algunos de estos algoritmos son la regresión lineal, los árboles de decisión, el bosque aleatorio, XGBoost y CatBoost. Estas son alternativas que son más simples. 
 
Aquí hay ejemplos de por qué querrías usar un algoritmo de aprendizaje no profundo, porque tienes muchas otras opciones más simples de aprendizaje no profundo: 
Pueden ser más fáciles y rápidas de configurar, por ejemplo, el aprendizaje profundo puede requerir que tu modelo añada capas secuenciales y densas, y compilarlo, lo que puede ser más complejo, y tomar más tiempo que simplemente tener un regresor o clasificador y ajustarlo con algoritmos de aprendizaje no profundo
 
Personalmente encuentro más errores que pueden resultar de este código de aprendizaje profundo más complejo y la documentación de cómo solucionarlo puede ser confusa o antigua y no ser aplicable, utilizando un algoritmo como Random Forest en su lugar, puede tener mucha más documentación sobre los errores que son fáciles de entender 
El entrenamiento en un algoritmo de aprendizaje profundo puede no ser complicado a veces, pero cuando se predice a partir de un punto final, puede ser confuso sobre cómo alimentar los valores para predecir, mientras que algunos modelos, usted puede simplemente tener los valores en una lista codificada de valores ordenados 
 
Yo diría que, por supuesto, puedes probar algoritmos de aprendizaje profundo, pero antes de hacerlo, podría ser mejor empezar con una solución más simple. Puede depender de cosas como la frecuencia con la que vas a entrenar y hacer predicciones, o si se trata de una tarea puntual. Hay otras razones por las que no querrías utilizar un algoritmo de aprendizaje profundo, como cuando tienes un conjunto de datos pequeño y un presupuesto reducido, como veremos a continuación.
 

Cuando se tiene un conjunto de datos y un presupuesto pequeños



Photo by Hello I’m Nik on Unsplash [5].

A menudo, puedes trabajar como científico de datos en una empresa más pequeña, o quizás en una startup. En estos casos, no tendrás muchos datos y puede que no tengas un gran presupuesto. Por lo tanto, intentarás evitar el uso de algoritmos de aprendizaje profundo. A veces, incluso puede tener un pequeño conjunto de datos que es sólo unos pocos miles de filas y pocas características, podría simplemente ejecutar un modelo alternativo en lugar local, en lugar de gastar mucho dinero sirviéndolo con frecuencia.
 
Aquí es cuando deberías dudar de usar un algoritmo de aprendizaje profundo basándote en los costes y la disponibilidad de datos:

La disponibilidad de datos pequeños suele ser el caso de muchas empresas (pero no siempre es así), y el aprendizaje profundo se desempeña mejor en información con muchos datos 
Es posible que realices una tarea puntual, es decir, que el modelo sólo prediga una vez, y que puedas ejecutarlo localmente de forma gratuita (no todos los modelos se ejecutarán en producción con frecuencia), como un simple clasificador de árbol de decisiones. Puede que no merezca la pena invertir tiempo en un modelo de aprendizaje profundo. 

Su empresa está interesada en aplicaciones de ciencia de datos pero quiere mantener el presupuesto pequeño, en lugar de realizar costosas ejecuciones de un modelo de aprendizaje profundo, y más bien, utilizar un modelo basado en árboles con rondas de parada temprana para evitar el sobreajuste, acortar el tiempo de entrenamiento y, en última instancia, reducir los costes 

Ha habido ocasiones en las que he sacado a relucir el aprendizaje profundo y ha sido rechazado por una serie de razones, y estas razones solían ser el caso. Sin embargo, no quiero disuadir a nadie de utilizar el aprendizaje profundo por completo, ya que es algo que debes utilizar a veces en tu carrera, y puede ser algo que hagas con frecuencia o principalmente dependiendo de las circunstancias y de dónde estés trabajando.

Resumen


 
En general, antes de que te sumerjas en el aprendizaje profundo, date cuenta de que hay algunos momentos en los que deberías evitar su uso por una serie de razones. Hay, por supuesto, más razones para evitarlo, pero también hay razones para usarlo. En última instancia, es usted quien debe analizar los pros y los contras del aprendizaje profundo. 
 
Aquí hay tres momentos/razones en los que no deberías usar el aprendizaje profundo: 
* Cuando quieres explicar fácilmente 
* Cuando puedes usar otros algoritmos 
* Cuando tienes un conjunto de datos y un presupuesto pequeños 
 
Espero que hayas encontrado mi artículo interesante y útil. Por favor, siéntase libre de comentar abajo si está de acuerdo o no con las razones para evitar el aprendizaje profundo. ¿Por qué o por qué no? ¿Qué otras razones crees que deberías evitar el uso del aprendizaje profundo como científico de datos? Seguramente se pueden aclarar aún más, pero espero haber podido arrojar algo de luz sobre el aprendizaje profundo. ¡Gracias por leer! 
 
No estoy afiliado a ninguna de estas empresas. 
 
Por favor, siéntase libre de revisar mi perfil, Matt Przybyla, y otros artículos, así como suscribirse para recibir notificaciones por correo electrónico para mis blogs siguiendo el enlace de abajo, o haciendo clic en el icono de suscripción en la parte superior de la pantalla por el icono de seguir, y llegar a mí 
ourself.




Referencias


[1] Photo by Nadine Shaabana on Unsplash, (2018)

[2] Photo by Malte Helmhold on Unsplash, (2021)

[3] M.Przybyla, Example of ranked SHAP output from a non-deep learning model, (2021)

[4] Photo by Luca Bravo on Unsplash, (2016)

[5] Photo by Hello I’m Nik on Unsplash, (2021)

“¿Cuándo Es Mejor Evitar el Uso de Deep Learning?”
– Matt Przybyla twitter social icon Tweet


Compartir este artículo:

0 Comentarios

Crear un comentario
Ingresar para Comentar

Artículos Relacionados

Nov 25, 2021

5 Consejos para Superar Una Entrevista de Trabajo para una Vacante de Científico de Datos

5 Tips To Ace Your Job Interview For A Data Scientist Opening.PNG 795.94 KBImage SourceLos aspirantes a científicos de datos tienen un futuro brill...

Daniel Morales
Por Daniel Morales
Oct 16, 2021

6 Conceptos de Estadística Avanzada en Data Science

El artículo contiene algunos de los conceptos estadísticos avanzados más utilizados junto con su implementación en Python.En mis artículos anterior...

Nagesh Singh Chauhan
Por Nagesh Singh Chauhan
Oct 09, 2021

Las 10 Mejores Extensiones de Python para Visual Studio Code

En este nuevo post queremos hablar de las extensiones más útiles de Python para Visual Studio Code. Visual Studio Code es un entorno de desarrollo ...

Daniel Morales
Por Daniel Morales
Icon

Únete a nuestra comunidad privada en Slack

Manténgase al día participando de ésta gran comunidad de data scientists en latinoamérica. Hablamos sobre competiciones en data science, cómo estamos resolviendo los retos, modelos de machine learning aplicados a las competiciones, técnicas novedosas y mucho más!

 
Te enviaremos el link de invitación a tu email de forma inmediata.
arrow-up icon