Hoy me gustaría hablar del Machine Learning Canvas, un marco de trabajo para analizar casos de uso o para la definición de proyectos de machine learning, donde podemos estar involucrando tanto a las personas de negocio como a las personas técnicas para pensar en soluciones que les den uso a los datos para resolver algún problema.
Si se acuerdan hace un tiempo habíamos hecho un episodio hablando del Chatbot design canvas, que era un modelo para diseñar chatbots, bueno, el machine learning canvas es un concepto similar pero para cualquier proyecto que incluya machine learning. O sea por lo general va a ser un proyecto donde mediante datos que tengamos vamos a entrenar un modelo que genere algún tipo de predicción que va a servir para solucionar un problema de negocio.
Así que empecemos!
Este marco de trabajo fue creado por Louis Dorard en el año 2015 y sirve para pensar y estructurar proyectos de machine learning, intentando hacernos pensar en todas las cosas que tenemos que tener en cuenta antes de comenzar con el proyecto.
Este canvas tiene 10 recuadros que tenemos que pensar y completar para que nos queden documentados. En líneas generales podemos verlo como 4 grandes secciones, primero definir el objetivo del sistema, después definir cómo va a aprender, cómo van a ser las predicciones y finalmente cómo vamos a evaluar el modelo.
El primer recuadro se llama propuesta de valor, y acá es donde tenemos que decir quién es el usuario final y como este sistema se va a integrar en su flujo de trabajo para resolverle uno de sus problemas. Podemos especificar cómo interactúa el usuario con el sistema, qué pantallas usa en el caso de que sea una aplicación con interfaz gráfica, y lo más importante es tratar de dejar bien en claro cómo este usuario se va a beneficiar del sistema de machine learning.
Básicamente estamos definiendo el objetivo. Entonces ahora vamos a ver cómo alcanzamos ese objetivo.
Y básicamente el objetivo se alcanzará con predicciones. Para eso hay un recuadro donde se debe definir la tarea de predicción. Ahí tenemos que poner qué tipo de tarea es, ¿es una clasificación? ¿Una regresión? y especificar cuáles van a ser las entradas y la salida esperada.
Supongamos que es una clasificación, entonces tenemos que poner que queremos clasificar, ¿queremos saber si una pieza fabricada está OK o está defectuosa? Entonces estamos hablando de una clasificación binaria, ¿y cómo entrada que le vamos a dar al modelo para hacer la predicción? Bueno acá también tenemos que detallar esto.
Después viene una casilla que se llama Decisiones donde tenemos que indicar cómo se usan las predicciones para tomar decisiones que le den el valor que proponemos al usuario final.
Esta es una pregunta muy importante porque nos obliga a pensar cómo vamos a usar esas predicciones para tomar decisiones, y estas decisiones por lo general son lo que general el valor real en el negocio, entonces pensar en esto nos sirve para validar si realmente estamos generando una eficiencia que haga que valga la pena hacer la inversión de generar este sistema y cambiar el flujo de trabajo actual.
Y acá puede pasar que llegados a este punto nos demos cuenta que no vale la pena seguir con un enfoque con el que empezamos porque la predicción que generamos al usuario no le sirve porque no la puede transformar en valor real o al menos no de una manera rentable.
Luego, y relacionado con esto de las decisiones, viene otro recuadro que se llama Haciendo predicciones, y a lo que se refiere es a en que momento se van a estar haciendo las predicciones cuando el sistema esté funcionando. ¿van a ser en tiempo real? ¿van a hacerse en un proceso batch? o sea que por ejemplo una vez cada X cantidad de horas vamos a tomar un lote y hacer la predicción para todo ese rango de casos?
También podría ser que las predicciones sean disparadas a demanda por el usuario haciendo click en un botón o algo por el estilo…o que se dispare por un evento que ocurre…
Acá también pueden surgir temas como que las predicciones sean valiosas para el negocio si se tienen cada una hora, pero nos damos cuenta que con la capacidad actual el proceso de generación de predicciones dura 2 horas.
Bien. Después de esto viene un recuadro que se llama evaluación offline, y acá es donde tenemos que describir qué métodos y métricas podemos usar para evaluar la forma en la que se van a hacer y usar las predicciones ANTES de la implementación. O sea, cómo vamos a evaluar el desempeño del modelo antes de decidir ponerlo en producción. Y esto es importante planificarlo, para que al momento del desarrollo podamos tener una métrica de validación y podamos seleccionar el modelo que hace las mejores predicciones, y entender si el modelo ya es lo suficientemente bueno según lo esperado o si hace falta seguir iterando.
Ok. Después tenemos la casilla Origen de los datos, y acá tenemos que pensar que fuentes de datos podemos usar, sin son internas, externas, datos abiertos, una API o si vamos a hacer web scraping, etc.
Veamos la siguiente casilla que se llama Recolección de datos, acá tenemos que pensar en como podemos obtener nuevos datos de los que aprender, tanto los datos de entrada como los de salida. Y tenemos que pensar tanto para un inicio, o sea datos para el entrenamiento inicial del modelo como para luego ir actualizandolo.
Acá generalmente pasa que al inicio los datos no los tengamos etiquetados, entonces tenemos que pensar en como vamos a generar ese dataset inicial de entrenamiento. Y es un tema importante a tener en cuenta porque si bien no suele ser una tarea complicada, si es algo que suele llevar bastante esfuerzo de trabajo manual hecho por personas.
Todo esto del etiquetado obviamente aplica para el caso de aprendizaje supervisado, caso contrario nos ahorramos esta parte del etiquetado.
Bueno sigamos. El próximo apartado se llama Características, acá tendríamos que decir que características de los datos de entrada consideramos según el conocimiento en el dominio del problema o mismo por intuición creemos que son las mas importantes para inferir la predicción. Si bien esto es algo que luego cuando se desarrolle el proyecto vamos a tener manera de trabajarlo, es bueno también contar con esta info para el futuro.
Bien. Después viene la sección construcción de modelos: que de lo que se trata es de pensar en cada cuanto vamos a estar creando o actualizando los modelos. Porque depende lo que queramos predecir vamos a necesitar mejorar el modelo con nuevos datos para capturar los cambios que se van dando en el negocio.
Pensemos que las tendencias cambian, los hábitos de consumo cambian y a veces ocurren situaciones inesperadas como cuando fue el inicio de la pandemia donde de un día para el otro cambia todo y los modelos que funcionaban bien hasta ayer, hoy ya no sirven.
Asi que tambien es un tema importante a tener en cuenta…y bueno por ultimo viene la sección Monitoreo en vivo, acá lo que tenemos que pensar es como vamos a medir tanto la calidad de las predicciones como la creación de valor una vez que hayamos puesto el modelo en producción.
Cómo ven el mismo proceso nos va guiando y haciendo pensar en diferentes cuestiones a tener en cuenta cuando pensamos en desarrollar un proyecto para resolver un problema mediante el uso de machine learning. Sobre todo en organizaciones donde no tienen experiencia en este tipo de proyectos. La verdad que creo que es una muy buena guía.
Y bueno, hasta acá llegamos con el episodio de hoy, espero que les haya gustado. Aguardo sus comentarios al respecto. Y nos seguimos escuchando en el próximo episodio donde seguiremos hablando de este hermoso mundo de la inteligencia artificial.
Deja una respuesta