Machine Learning es un tema importante en estos momentos y todo el mundo está tratando de conseguir cualquier forma que pueda obtener sobre el tema. Con la cantidad de información que existe, en ocasiones nos podemos sentir abrumado. Por lo tanto, acá te muestro los 6 pasos más importantes que debes considerar al momento de desarrollar un proyecto de Machine Learning.
Hay muchas cosas a considerar mientras se construye un sistema de Machine Learning. Pero a menudo sucede que nosotros, solo nos preocupamos por ciertas partes del proyecto.
La mayoría de las veces se trata de modelos, pero en realidad, el éxito o el fracaso de un proyecto de Machine Learning depende de muchos otros factores, ya que no es solamente crear modelos, es esencial entender lo que sucede antes de entrenar un modelo y después de entrenarlo e implementarlo en producción.
Acá explicaremos lo que involucra crear un proyecto de Machine Learning de extremo a extremo.
Definición del problema
Esta puede ser la parte más crucial de todo el ejercicio. Entonces, ¿cómo definir un problema para Machine Learning?
Eso depende de muchos factores. Entre todos los elementos que consideramos el primero debe ser entender cómo beneficiará al negocio. Ese es el santo grial de cualquier proyecto de Machine Learning. Si tu proyecto no ayuda a las empresas, no lo podrás implementarlo. Así de simple.
Una vez que se tiene una idea y se determina la compatibilidad del negocio, es necesario definir una métrica de éxito. Ahora, ¿cómo es el éxito? Puede ser un 90% de precisión o un 95% o un 99% de precisión.
Inclusive, puedes estar contento con una precisión de predicción del 70%, ya que un humano promedio no superará esa precisión nunca y, mientras tanto, tu puedes automatizar el proceso.
Debes tener cuidado, en este momento no se deben establecer metas elevados. Es el momento de ser lógico y sensato acerca de cómo cada cambio en la precisión del 1 por ciento podría afectar el éxito.
Por ejemplo, para un problema de predicción de clic o una aplicación que prediga fraudes, un aumento del 1% de precisión aumentará el resultado final del negocio en comparación con un aumento del 1% de precisión para una aplicación que prediga los sentimientos.
Datos
Hay varias preguntas que debes responder en el momento de la adquisición de datos y la creación de datos para el modelo de Machine Learning.
La pregunta más importante que hay que responder aquí es ¿si el modelo necesita trabajar en tiempo real?
Si ese es el caso, no se puede utilizar ciertos sistemas de almacenamiento de datos, ya que tales sistemas pudrían introducir mucha latencia y son más adecuados para el procesamiento por lotes fuera de línea.
Otras preguntas que se deben responder son las siguientes:
¿El modelo necesita ser entrenado en tiempo real?
Si el rendimiento del modelo de Machine Learning disminuye con el tiempo, es posible que desees considerar el entrenamiento en tiempo real. La capacitación en tiempo real podría ser beneficiosa para la mayoría de los sistemas de predicción de los clics, ya que las tendencias de internet cambian con bastante rapidez.
¿Existen algunas inconsistencias entre los datos de las pruebas y los de entrenamiento?, o en pocas palabras, ¿sospechas que los datos de producción provienen de una distribución diferente de los datos de formación?
Por ejemplo, en un entrenamiento en tiempo real para un problema de predicción de clics, le muestras al usuario el anuncio y él no hace clic, ¿es un ejemplo de fracaso? Tal vez el usuario hace clic típicamente después de 10 minutos. Pero ya has creado los datos y entrenado tu modelo en eso.
Hay muchos factores que debes considerar al preparar los datos para tus modelos. Necesitas hacer preguntas y pensar en el proceso de principio a fin para tener éxito en esta etapa.
Evaluación
¿Cómo evaluaremos el desempeño de nuestro modelo?
Lo importante acá es la separación de los datos en entrenamiento y prueba.
Frecuentemente haciendo un conjunto de datos de entrenamiento y prueba, por muestreo, nos olvidamos de una suposición implícita, los datos rara vez se encuentran distribuidos de forma independiente e idéntica.
En términos sencillos, nuestra suposición de que cada punto de datos es independiente entre sí y proviene de la misma distribución es, en el mejor de los casos, defectuosa, si no totalmente incorrecta.
Para una empresa de internet, un punto de datos de 2007 es muy diferente a un punto de datos que viene en 2020. No provienen de la misma distribución debido a muchos factores, la velocidad de internet es lo más importante.
Si tiene un problema de predicción de gato vs perro, es adecuado utilizar el muestreo aleatorio, pero, en la mayoría de los modelos de Machine Learning, la tarea es predecir el futuro.
Puedes pensar en dividir los datos usando la variable de tiempo en lugar de tomar muestras al azar de los datos.
Por ejemplo, para el problema de predicción de clics puedes tener todos los datos anteriores hasta el mes pasado como datos de entrenamiento y datos del mes pasado como validación.
Lo siguiente que tendrás que pensar es en el modelo de línea de base.
Digamos que usamos el error cuadrático medio como métrica de evaluación para nuestros modelos de series temporales. Evaluamos el modelo en el equipo de prueba, y el error cuadrático medio resultó ser de 4,8. ¿Es un buen error? ¿Cómo lo sabemos? Necesitamos una base de referencia de error cuadrático medio.
Esto podría provenir de un modelo actualmente empleado para la misma tarea o usando algún modelo simple. Para el modelo de series de tiempo, una línea de base es utilizar la predicción del último día, es decir, predecir el número del día anterior. Para los modelos de clasificación del procesamiento del lenguaje natural se puede utilizar las métricas de evaluación, como precisión, F1, entre otros.
También debes pensar en cómo vas a romper la evaluación en múltiples grupos para que tu modelo no induzca sesgos innecesarios. En el 2018, Amazon apareció en las noticias por una herramienta secreta de reclutamiento de inteligencia artificial que mostraba prejuicios contra las mujeres.
Para salvar nuestro modelo de Machine Learning de tales inconsistencias, necesitamos evaluar nuestro modelo de diferentes grupos. Tal vez nuestro modelo no es tan preciso para las mujeres como lo es para los hombres porque hay mucho menos mujeres en los datos de entrenamiento. O tal vez un modelo que predice si un producto va a ser comprado o no, funciona bastante bien para una categoría de producto específica y no para otras categorías de productos.
Tener en cuenta estas cosas de antemano y pensar precisamente en lo que podría fallar con un enfoque de evaluación en particular es algo que definitivamente podría ayudarnos a diseñar un buen sistema de Machine Learning.
Características
Las buenas características son la columna vertebral de cualquier modelo de Machine Learning. Y a menudo la parte en la que pararías más tiempo. Esta es la parte que se puede afinar para obtener el máximo rendimiento del modelo.
Una buena creación de características a menudo requiere conocimiento del dominio, creatividad y mucho tiempo.
Además, el ejercicio de creación de la característica puede cambiar para diferentes modelos. La comprensión de varios métodos para la selección de características es un tema bastante importante dentro de Machine Learning, por lo que es adecuado implementarlo y evaluar los resultados obtenidos para al final obtener las características más adecuadas para construir el modelo.
Modelado
Ahora viene la parte que más nos importa. Es la pieza que terminamos entregando al final del proyecto. Y esta es la parte para la que hemos dedicado todas esas horas a la adquisición y limpieza de datos, a la creación de características y demás. Entonces, ¿qué necesitamos pensar mientras creamos un modelo?
La primera pregunta que tenemos que hacernos es que si el modelo necesita ser interpretable. Hay muchos casos de uso en los que la empresa puede querer un modelo interpretable. Uno de estos casos de uso es cuando queremos hacer un modelo de atribución, aquí definimos el efecto de varios flujos de publicidad, TV, radio, periódicos, etc, sobre los ingresos. En tales casos, es esencial comprender la respuesta de cada flujo de publicidad.
Experimentación
Ahora ya has creado tu modelo.
Funciona mejor el modelo construido que la línea base con la que se comenzó. Ahora, ¿cómo debemos seguir adelante?
Tenemos dos opciones:
- Entrar en un bucle interminable para mejorar aún más nuestro modelo.
- Probar nuestro modelo en entornos de producción, obtener más información sobre lo que podría salir mal y continuar mejorando nuestro modelo con una integración continua.
Lo ideal es ejecutar la opción 2, implementar el modelo construido a irlo mejorando poco a poco.
Una cosa que también es importante destacar es la integración continua. Si el nuevo modelo funciona mejor que el modelo existente, ¿por qué no desplegarlo en la producción en lugar de correr tras ganancias incrementales?
Para probar la validez de esta suposición, que el nuevo modelo es mejor al modelo existente, puedes configurar una prueba A/B. Algunos usuarios, grupos de prueba, ven tu modelo mientras que algunos usuarios, control, ven las predicciones del modelo anterior.
Siempre debes tratar de minimizar el tiempo para el primer experimento en línea del modelo. Esto no solo genera valor, sino que también te permite entender las deficiencias del modelo con la retroalimentación en tiempo real que luego puedes trabajar.
Nada es simple en Machine Learning y, por supuesto, nada debe ser asumido. Siempre debes ser critico de cualquier decisión que hayas tomado mientras construyes un proyecto de Machine Learning. Una simple decisión puede ser la diferencia entre el éxito o el fracaso de tu proyecto.
Con esto finalizamos la explicación. Ya tienes los pasos de cómo desarrollar un proyecto de Machine Learning, por lo tanto te dejo la siguiente pregunta, ¿Cuáles de las siguientes afirmaciones crees tú que sea cierta?
Opción 1: No es posible trabajar en Machine Learning con datos en tiempo real.
Respuesta Incorrecta. Se puede trabajar en Machine Learning con datos en tiempo real, solamente se debe seleccionar un sistema de almacenamiento de datos adecuado que no haga lento el proceso.
Opción 2: Al momento de desarrollar un modelo tengo que utilizar todas las características disponibles.
Respuesta Incorrecta. Es recomendable realizar una selección de características de esa forma se trabajará con las variables más importantes.
Opción 3: Al momento de evaluar el modelo el resultado de precisión es de 76%, por tanto tengo que desecharlo por completo.
Respuesta Incorrecta. El porcentaje de precisión deberá estar acorde con los objetivos establecidos al principio del proyecto, de repente un resultado del 76% es muy bueno para la empresa.
Por favor, si podría enviarme más información de inteligencia artificial y machine Learning
Hola Tomas, en está página y en mi canal de Youtube: http://bit.ly/2Inabt7, encuentras bastante información al respecto. Saludos.