Skip to Content

¿Qué es un flujo de trabajo de aprendizaje automático?

Un flujo de trabajo de aprendizaje automático es el proceso sistemático de desarrollo, capacitación, evaluación e implementación de modelos de aprendizaje automático. Abarca una serie de pasos que guían a los profesionales a través de todo el ciclo de vida de un proyecto de aprendizaje automático, desde la definición de problemas hasta la implementación de soluciones. 

¿Por qué son importantes los flujos de trabajo de aprendizaje automático?

Los flujos de trabajo de aprendizaje automático ayudan con lo siguiente: 

  • Claridad y enfoque: Un flujo de trabajo bien definido ayuda a definir claramente los objetivos, las funciones y las responsabilidades del proyecto para que todos los miembros del equipo estén alineados y enfocados en lograr los resultados deseados y previstos.
  • Eficiencia y productividad: Un flujo de trabajo estructurado proporciona un enfoque sistemático para abordar proyectos complejos de aprendizaje automático. Esto lleva a una mayor eficiencia y productividad porque ayuda a organizar tareas, administrar recursos y realizar un seguimiento del progreso de manera eficaz.
  • Garantía de calidad: El uso de un flujo de trabajo estructurado lo ayuda a ejecutar sistemáticamente cada etapa del proceso de aprendizaje automático, lo que ayuda a identificar y abordar posibles problemas al principio del ciclo de vida del proyecto.
  • Reproducibilidad y escalabilidad: Un flujo de trabajo bien definido documenta todos los pasos tomados durante el proceso de desarrollo, lo que facilita la replicación de los resultados y proporciona un marco de trabajo que puede adaptar y reutilizar para proyectos futuros.
  • Administración de riesgos: Los flujos de trabajo de aprendizaje automático mejoran la gestión de riesgos al identificar posibles riesgos e incertidumbres al principio del ciclo de vida del proyecto, lo que le permite implementar estrategias de mitigación proactiva que reducen las posibilidades de falla del proyecto.

¿Cuáles son los pasos típicos del flujo de trabajo del aprendizaje automático?

Un flujo de trabajo típico de aprendizaje automático implica las siguientes etapas:

Definición del problema, donde usted define claramente el problema que se resolverá y establece los objetivos del proyecto. Este paso implica comprender el contexto comercial, identificar fuentes de datos relevantes y definir métricas de rendimiento clave.

Recopilación y procesamiento previo de datos, donde reúne los datos necesarios de varias fuentes y los procesa previamente para garantizar que estén limpios, sean consistentes y estén listos para el análisis. Este paso puede implicar tareas como la limpieza de datos, la ingeniería de características y la transformación de datos.

Análisis de datos exploratorios (EDA ), donde explora los datos para obtener resultados e identificar patrones, tendencias y relaciones. La EDA ayuda a comprender las características de los datos e informar las decisiones sobre la selección de características, la selección de modelos y las estrategias de preprocesamiento de datos.

Selección y capacitación de modelos, donde elige algoritmos y técnicas de aprendizaje automático adecuados basados en los requisitos del problema y las características de los datos, capacita los modelos seleccionados utilizando los datos preparados y evalúa su rendimiento utilizando métricas de evaluación adecuadas.

Evaluación y ajuste de modelos, donde se evalúa el rendimiento de los modelos capacitados mediante técnicas de validación, como validación cruzada y métodos de ajuste de hiperparámetros para optimizar el rendimiento del modelo.

Implementación y monitoreo del modelo , donde implementa el modelo capacitado en el entorno de producción, lo integra en los sistemas existentes, monitorea el rendimiento del modelo en escenarios del mundo real y lo actualiza según sea necesario para garantizar la eficacia continua.

Profundicemos un poco más en cada una de estas etapas. 

Definición del problema

Para definir el problema:

1. Comprenda sus objetivos comerciales

El primer paso para definir el problema es comprender los objetivos y metas comerciales más amplios. Esto significa colaborar estrechamente con las partes interesadas para identificar los desafíos u oportunidades comerciales clave que desea abordar con el aprendizaje automático.

2. Formular una declaración de problema

En función de estos objetivos comerciales, diseñe una declaración de problemas clara y concisa. Esta declaración debe especificar lo que debe predecirse, clasificarse u optimizarse, y cómo se alinea con sus objetivos comerciales generales. También debe considerar factores como la disponibilidad de datos, la viabilidad y el impacto potencial.

3. Definir los criterios de éxito

Establezca criterios de éxito medibles o indicadores clave de rendimiento (KPI) que pueda usar para evaluar el rendimiento de la solución de aprendizaje automático. Deben estar alineados con la declaración del problema y los resultados comerciales deseados.

4. Identificar los requisitos y las limitaciones de datos

Identificar los requisitos de datos para resolver el problema, incluidos los tipos de datos (estructurados o no estructurados), las fuentes, las consideraciones de calidad y cualquier limitación regulatoria o ética relacionada con el uso de datos. Comprender las limitaciones y limitaciones de datos por adelantado le ayudará a establecer expectativas realistas y planificar estrategias de adquisición y procesamiento previo de datos.

5. Evaluación de riesgos

Realice una evaluación de riesgos preliminar para identificar los posibles riesgos y desafíos asociados con la definición del problema. Esto incluye los riesgos relacionados con la calidad de los datos, la complejidad del modelo, la interpretabilidad, el cumplimiento regulatorio y el impacto en el negocio. Desarrollar estrategias de mitigación de riesgos al principio del proyecto puede ayudar a abordar estos desafíos de manera proactiva.

6. Documente la definición del problema

Por último, documente la definición del problema, incluida la declaración del problema, los criterios de éxito, los requisitos de datos, el alcance, las limitaciones y los hallazgos de la evaluación de riesgos. Esta documentación será su referencia para todas las partes interesadas involucradas y ayudará a garantizar la alineación en todo el flujo de trabajo de aprendizaje automático.

Recopilación de datos

La recopilación de datos relevantes para su proyecto de aprendizaje automático es un paso importante que puede afectar significativamente el rendimiento y los resultados del modelo. 

Este es el proceso paso a paso para recopilar datos y consejos para garantizar su confiabilidad y calidad:

1. Definir objetivos

Defina claramente los objetivos de su proyecto de aprendizaje automático. Comprenda las preguntas que desea responder y los problemas que desea resolver. Esto guiará sus esfuerzos de recopilación de datos hacia la recopilación de la información más relevante.

2. Identificar las fuentes de datos

Determine dónde puede encontrar los datos que necesita. Las fuentes de datos pueden variar según la naturaleza de su proyecto, pero las fuentes comunes incluyen: 

  • Sitios web como Kaggle, UCI Machine Learning Repository y bases de datos gubernamentales. 

  • API: Muchas organizaciones ofrecen API para acceder a sus datos de forma programática.

  • Raspado web: Extraer datos de sitios web usando herramientas como Beautiful Soup o Scrapy.

  • Bases de datos internas: Si corresponde, utilice los datos almacenados en las bases de datos de su organización.

  • Encuestas o entrevistas: Recopile datos directamente de usuarios o expertos en dominios a través de encuestas o entrevistas.

3. Evalúe la calidad de los datos

Antes de recopilar datos, evalúe su calidad para asegurarse de que sea adecuada para su proyecto. Tenga en cuenta los siguientes factores:

  • Precisión: ¿Los datos están libres de errores o inconsistencias?

  • Integridad: ¿El conjunto de datos cubre todas las variables y registros necesarios?

  • Coherencia: ¿Los valores de los datos son consistentes en diferentes fuentes o períodos de tiempo?

  • Relevancia: ¿Los datos incluyen la información necesaria para abordar sus objetivos?

  • Puntualidad: ¿Los datos están actualizados y son relevantes para su análisis?

  • Métodos de recopilación de datos: ¿Ha elegido los métodos adecuados para recopilar sus datos de acuerdo con la fuente de datos?

4. Documente las fuentes de datos y los pasos de procesamiento

Mantenga una documentación integral de las fuentes de datos, los métodos de recopilación, los pasos de preprocesamiento y cualquier transformación que se aplique a los datos. Esta documentación es crucial para la transparencia, la reproducibilidad y la colaboración.

5. Iterar

La recopilación de datos es un proceso iterativo. A medida que analiza los datos y refina su modelo, es posible que necesite datos adicionales o ajustes a sus conjuntos de datos existentes. Evalúe continuamente la relevancia y la calidad de sus datos para mejorar la precisión y la eficacia de su modelo de aprendizaje automático.

Preprocesamiento de datos

El preprocesamiento de datos es el proceso de preparación de datos sin procesar para el análisis en proyectos de aprendizaje automático y ciencia de datos. Implica limpiar, transformar y organizar los datos para garantizar que sean adecuados para el modelado y el análisis. También ayuda con la calidad de datos, la ingeniería de características, el rendimiento del modelo y la compatibilidad de datos. 

Estos son algunos aspectos clave del preprocesamiento de datos y las instrucciones sobre el manejo de datos faltantes, valores atípicos y normalización de datos:

1. Manejo de datos faltantes

Comience por identificar columnas o características con valores faltantes en el conjunto de datos. Luego, dependiendo de la naturaleza de los datos faltantes, elija un método de imputación adecuado, como media, mediana, modo o el uso de modelos predictivos para completar los valores faltantes. En los casos en que los valores faltantes sean demasiado numerosos o no puedan imputarse de manera confiable, considere eliminar filas o columnas con datos faltantes. Para las características categóricas, considere agregar una nueva categoría para representar los valores faltantes o utilice técnicas como imputación de modo para variables categóricas.

2. Manejo de valores atípicos

Para manejar los valores atípicos:

  • Use métodos estadísticos como diagramas de caja, puntajes Z o IQR (rango intercuartil) para identificar valores atípicos en datos numéricos.
  • Elimine los valores atípicos extremos del conjunto de datos.
  • Limite los valores extremos reemplazándolos por los valores no atípicos más cercanos.
  • Aplique transformaciones como transformación logarítmica, de raíz cuadrada o Box-Cox para que los datos se distribuyan de manera más normal y reduzcan el impacto de los valores atípicos.
  • Consulte a expertos de dominio para validar los valores atípicos que pueden representar anomalías o errores genuinos en los datos.

3. Normalización de datos

Los pasos de la normalización de datos son:

a. Estandarización (normalización del puntaje Z): Transforme las características numéricas para que tengan una media de 0 y una desviación estándar de 1. Ayuda a escalar las funciones a un rango similar, haciéndolas comparables.

b. Escalamiento mín.-máx.: Escale las características a un rango específico, generalmente entre 0 y 1, preservando las relaciones relativas entre los puntos de datos.

c. Escalamiento robusto: Use técnicas de escalamiento robustas como RobustScaler, que escala los datos en función de la mediana y el rango intercuartil, lo que lo hace menos sensible a los valores atípicos.

Ingeniería de características

La ingeniería de características implica transformar los datos sin procesar en un formato que sea más adecuado para el modelado. Se centra en crear nuevas funciones, seleccionar funciones importantes y transformar las funciones existentes para mejorar el rendimiento de los modelos de aprendizaje automático. La ingeniería de características es muy importante para la precisión del modelo, la reducción del sobreajuste y la mejora de la capacidad de generalización de los modelos.

Estas son explicaciones y ejemplos de algunas técnicas comunes de ingeniería de características:

Codificación en caliente

La codificación en un solo punto convierte las variables categóricas en un formato numérico que se puede introducir en los algoritmos de aprendizaje automático. Crea columnas binarias para cada categoría, donde 1 indica la presencia de la categoría y 0 de lo contrario. Por ejemplo, considere una característica de “Color” con las categorías “Rojo”, “Verde” y “Azul”. Después de la codificación de un solo uso, esta función se transformaría en tres funciones binarias: "Is_Red", "Is_Green" y "Is_Blue", donde cada característica representa la presencia de ese color.

Escalación de funciones

El escalamiento de funciones lleva las funciones numéricas a una escala o rango similar. Ayuda a que los algoritmos converjan más rápido y evita que las funciones con mayores magnitudes dominen durante el entrenamiento. Las técnicas de escalamiento comunes incluyen la estandarización y el mínimo/máximo mencionados anteriormente. 

Reducción de la dimensionalidad

Las técnicas de reducción de la dimensionalidad reducen la cantidad de características mientras retienen la mayor parte de la información relevante. Esto ayuda a reducir la complejidad computacional, mejorar el rendimiento del modelo y evitar la dimensionalidad.

Extracción de funciones

La extracción de características implica crear nuevas características a partir de las existentes mediante transformaciones matemáticas, conocimientos de dominio o técnicas de procesamiento de texto. Generar combinaciones polinómicas de características para capturar relaciones no lineales en los datos sería un ejemplo. Otro ejemplo es convertir datos de texto en características numéricas usando métodos como TF-IDF, incrustaciones de palabras o representaciones de un paquete de palabras. 

Selección de modelos

Seleccionar el modelo de aprendizaje automático adecuado para una tarea específica es un paso fundamental en los flujos de trabajo de aprendizaje automático. Implica considerar varios factores, como la naturaleza del problema, los datos disponibles, las características del modelo deseado (p. ej., interpretabilidad, precisión) y los recursos informáticos. 

Estos son los pasos y consideraciones clave en el proceso de selección de modelos:

1. Comprender el problema

Primero, determine si el problema es una clasificación, regresión, agrupación en clústeres u otro tipo de tarea. Debe comprender las características, variable(s) objetivo, tamaño de datos, distribución de datos y cualquier patrón o complejidad inherente en los datos.

2. Selección de modelos candidatos 

Aproveche la experiencia en el dominio para identificar modelos que se utilizan comúnmente y son adecuados para tareas similares en el dominio. Una parte importante de esto es considerar diferentes tipos de modelos de aprendizaje automático, como modelos lineales, modelos basados en árboles, máquinas vectoriales de soporte (SVM), redes neuronales, métodos de conjunto, etc., según el tipo de problema y las características de los datos.

3. Evaluar la complejidad e interpretabilidad del modelo

Considere la complejidad del modelo y su capacidad para capturar relaciones complejas en los datos. Los modelos más complejos, como las redes neuronales de aprendizaje profundo, pueden ofrecer una mayor precisión predictiva, pero pueden ser costosos desde el punto de vista informático y propensos a un sobreajuste. Dependiendo de la aplicación y las necesidades de las partes interesadas, decida si la interpretabilidad del modelo es crucial. Los modelos simples, como la regresión lineal o los árboles de decisión, son más interpretables en comparación con los modelos complejos de caja negra, como las redes neuronales profundas.

4. Considerar las métricas de rendimiento

Para las tareas de clasificación, considere métricas como exactitud, precisión, recuperación, F1-score, ROC-AUC, etc., en función del desequilibrio de clase y los objetivos comerciales. Para las tareas de regresión, puede usar métricas como error medio al cuadrado (MSE), error medio absoluto (MAE), R al cuadrado y otras para evaluar el rendimiento del modelo. Use técnicas de validación adecuadas, como validación cruzada, división de prueba de capacitación o validación basada en el tiempo (para datos de series temporales) para evaluar completamente el rendimiento del modelo.

5. Comparación y validación de modelos

Comience con modelos de referencia simples para establecer una referencia de rendimiento. Capacite a varios modelos candidatos utilizando conjuntos de datos de validación/capacitación adecuados y evalúe su rendimiento utilizando las métricas elegidas. Ajuste los hiperparámetros de los modelos utilizando técnicas como la búsqueda en la red, la búsqueda aleatoria o la optimización bayesiana para mejorar el rendimiento.

6. Seleccionar el mejor modelo

Considere las compensaciones entre la complejidad del modelo, la interpretabilidad, los recursos informáticos y las métricas de rendimiento, luego evalúe el modelo de mejor rendimiento en un conjunto de datos de prueba de retención para garantizar su capacidad de generalización en datos no vistos.

7. Iterar y refinar

La selección de modelos suele ser un proceso iterativo. Si su modelo elegido no cumple con los criterios deseados, itere refinando la ingeniería de características, hiperparámetros o probando diferentes algoritmos hasta que se logren resultados satisfactorios.

Capacitación modelo

La capacitación de un modelo de aprendizaje automático implica ajustar el algoritmo seleccionado a los datos de capacitación para aprender patrones y relaciones en los datos. Este proceso incluye dividir los datos en conjuntos de capacitación y validación, optimizar los parámetros del modelo y evaluar el rendimiento del modelo. 

Veamos más de cerca los pasos:

1. División de datos

Divida el conjunto de datos en conjuntos de capacitación y validación/prueba. Las relaciones de división típicas son 70-30 u 80-20 para la capacitación/validación, lo que garantiza que el conjunto de validación represente la distribución de datos en el mundo real.

2. Elegir el algoritmo

En función de su tipo de problema (clasificación, regresión, agrupación en clústeres) y las características de los datos, seleccione el algoritmo de aprendizaje automático adecuado o el conjunto de algoritmos para entrenar el modelo.

3. Instantiación del modelo

Cree una instancia del modelo elegido inicializando sus parámetros. Por ejemplo, en Python con Scikit-Learn, puede usar un código como:

de sklearn.linear_model Import LogisticRegression

modelo = LogisticRegression()

4. Capacitación del modelo

Ajuste el modelo a los datos de capacitación utilizando el método .fit(). Este paso implica aprender los patrones y las relaciones en los datos.

5. Optimización de los parámetros del modelo

Realice un ajuste de hiperparámetros para optimizar el rendimiento del modelo. Las técnicas comunes incluyen la búsqueda en la cuadrícula, la búsqueda aleatoria o la optimización bayesiana.

6. Evaluación del modelo

Evalúe el rendimiento del modelo capacitado usando el conjunto de validación/prueba. Calcule las métricas relevantes, como exactitud, precisión, recuperación, F1-score (para clasificación) o error al cuadrado medio.

7. Selección del modelo final

Una vez satisfecho con el rendimiento del modelo en el conjunto de validación, vuelva a capacitar el modelo final usando todo el conjunto de datos de capacitación (incluidos los datos de validación) para maximizar el aprendizaje antes de la implementación.

Implementación del modelo

Una vez que haya seleccionado y capacitado su modelo, estará listo para implementarlo. 

Los pasos de implementación incluyen:

1. serialización del modelo

Serialice el modelo capacitado en un formato adecuado para la implementación. Los formatos comunes incluyen pickle (Python), PMML (lenguaje predictivo de marcado de modelos), ONNX (intercambio de red neuronal abierta) o formatos personalizados según el marco de trabajo utilizado.

2. Integración con el entorno de producción

Elija un entorno de implementación adecuado, como plataformas en la nube (AWS, Azure, Google Cloud), servidores en las instalaciones o soluciones en contenedores (Docker, Kubernetes). Integre el modelo en el entorno de producción utilizando marcos o bibliotecas específicos para el entorno de implementación elegido (p. ej., Flask para API web, TensorFlow Serving o PyTorch para modelos de servicio).

3. Consideraciones de escalabilidad

Diseñe la arquitectura de implementación para manejar diferentes cargas y requisitos de escalabilidad. Considere factores como usuarios simultáneos, procesamiento por lotes y utilización de recursos. Use las funciones de escalamiento automático basadas en la nube o las herramientas de organización de contenedores para el escalamiento dinámico según demanda. Considere la modernización del centro de datos para escalar la AI

4. Predicciones en tiempo real

Asegúrese de que la implementación del modelo admita predicciones en tiempo real, si es necesario. Esto implica configurar puntos finales o servicios de latencia baja para manejar rápidamente las solicitudes de predicción entrantes. Considere optimizar la velocidad de inferencia del modelo a través de técnicas como la cuantificación del modelo, la poda o el uso de aceleradores de hardware (p. ej., GPU, TPU) basados en el entorno de implementación.

5. Métricas de monitoreo y rendimiento

Implemente soluciones de monitoreo para hacer un seguimiento del rendimiento del modelo en la producción. Monitoree métricas como latencia de predicción, rendimiento, tasas de error y desviación de datos (cambios en la distribución de datos de entrada con el tiempo). Configure alertas y umbrales para métricas de rendimiento críticas para detectar y responder a los problemas de inmediato.

6. Actualizaciones de versiones y modelos

Establezca una estrategia de control de versiones para sus modelos implementados con el fin de realizar un seguimiento de los cambios y facilitar la reversión si es necesario. Implemente un proceso para implementar actualizaciones de modelos o ciclos de recapacitación basados en nuevos datos o algoritmos mejorados. Considere técnicas como la prueba A/B para comparar versiones de modelos en producción antes de la implementación completa.

7. Seguridad y cumplimiento

Implemente medidas de seguridad para proteger el modelo, los datos y los puntos finales implementados del acceso no autorizado, los ataques y las violaciones de datos. Garantice el cumplimiento de los requisitos regulatorios, como GDPR, HIPAA o los estándares específicos de la industria relacionados con la privacidad de datos y la implementación de modelos.

8. Documentación y colaboración

Mantenga documentación detallada para el modelo implementado, incluida su arquitectura, API, dependencias y configuraciones. Fomente la colaboración entre científicos de datos, ingenieros y partes interesadas para iterar las mejoras del modelo, abordar los problemas e incorporar comentarios del uso del mundo real.

Conclusiones

Ahora conoce los componentes esenciales de un flujo de trabajo estructurado de aprendizaje automático, incluidos los pasos clave, como la definición del problema, el preprocesamiento de datos, la ingeniería de características, la selección de modelos, la capacitación y la evaluación. 

Cada paso desempeña un papel fundamental en el éxito general de un proyecto de aprendizaje automático. Definir el problema establece con precisión el escenario para desarrollar una solución dirigida, mientras que el preprocesamiento de datos garantiza la calidad de los datos y la idoneidad para el análisis. La ingeniería de características mejora el rendimiento del modelo al extraer información significativa de los datos. La selección de modelos implica elegir el algoritmo más adecuado en función de factores como la complejidad, la interpretabilidad y las métricas de rendimiento, seguido de una capacitación, optimización y evaluación exhaustivas para garantizar un rendimiento sólido del modelo.

Al seguir un flujo de trabajo estructurado, los científicos de datos pueden mejorar la eficiencia, mantener la integridad del modelo y tomar decisiones informadas durante todo el ciclo de vida del proyecto, lo que en última instancia conduce a modelos de aprendizaje automático más precisos, confiables e impactantes que ofrecen un verdadero valor a las organizaciones y las partes interesadas.

Sin embargo, uno de los principales desafíos de todos los flujos de trabajo de aprendizaje automático son los cuellos de botella. Los conjuntos de datos de capacitación de aprendizaje automático generalmente superan ampliamente la capacidad de DRAM en un servidor. La mejor manera de estar preparado para estos cuellos de botella es evitarlos por completo al tener una infraestructura lista para AI y ML, como AIRI® o FlashStack®. Obtenga más información sobre cómo Pure Storage ayuda a acelerar sus iniciativas de AI y ML.

03/2024
High-Performance AI for State and Local Government
AI has the potential to transform national, state, and local governments. Here’s how AIRI, AI-ready infrastructure by Pure Storage and NVIDIA, can help.
Resumen de la solución
4 páginas
CONTÁCTENOS
¿Preguntas, comentarios?

¿Tiene alguna pregunta o comentario sobre los productos o las certificaciones de Pure?  Estamos aquí para ayudar.

Programe una demostración

Programe una demostración en vivo y compruebe usted mismo cómo Pure puede ayudarlo a transformar sus datos en potentes resultados. 

Llámenos: 800-976-6494

Medios de comunicación: pr@purestorage.com

 

Pure Storage, Inc.

2555 Augustine Dr.

Santa Clara, CA 95054

800-379-7873 (información general)

info@purestorage.com

CERRAR
¡Su navegador ya no es compatible!

Los navegadores más antiguos a menudo representan riesgos de seguridad. Para brindar la mejor experiencia posible al utilizar nuestro sitio, actualice a cualquiera de estos navegadores más recientes.