Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
SE APLICA A:
SDK de Python azure-ai-ml v2 (actual)
El aprendizaje automático automatizado, también conocido como ML automatizado o AutoML, automatiza las tareas iterativas y lentas del desarrollo de modelos de aprendizaje automático. Con ml automatizado, los científicos de datos, los analistas y los desarrolladores pueden crear modelos de aprendizaje automático a escala con eficiencia y productividad, a la vez que se mantiene la calidad del modelo. El aprendizaje automático de Azure Machine Learning se basa en una innovación de la división Microsoft Research.
- Para clientes con experiencia en código, instala el SDK de Azure Machine Learning para Python. Comience con Tutorial: Entrenamiento de un modelo de detección de objetos (versión preliminar) con AutoML y Python.
¿Cómo funciona AutoML?
Durante el entrenamiento, Azure Machine Learning crea varias canalizaciones en paralelo que prueban distintos parámetros y algoritmos. El servicio repite los algoritmos de ML emparejados con selecciones de características. Cada iteración genera un modelo con una puntuación de entrenamiento. Cuanto mejor sea la puntuación de la métrica que desea optimizar, mejor se ajuste el modelo a los datos. El proceso se detiene una vez que cumple los criterios de salida definidos en el experimento.
Si usa Azure Machine Learning, puede diseñar y ejecutar sus experimentos de entrenamiento de Machine Learning automatizado mediante los siguientes pasos:
Identifique el problema de ML para resolver: clasificación, previsión, regresión, visión informática o NLP.
Elija una experiencia orientada a la programación o una experiencia web de Studio sin código: los usuarios que prefieren una experiencia orientada a la programación pueden usar el SDK v2 de Azure Machine Learning o la CLI v2 de Azure Machine Learning. Comience con Tutorial: Entrenamiento de un modelo de detección de objetos con AutoML y Python. Los usuarios que prefieren una experiencia limitada o sin código pueden usar la interfaz web en Estudio de Azure Machine Learning en https://ml.azure.com. Comience con Tutorial: Creación de un modelo de clasificación con aprendizaje automático automatizado en Azure Machine Learning.
Especifique el origen de los datos de entrenamiento etiquetados: lleve los datos a Azure Machine Learning de muchas maneras diferentes.
Configure los parámetros de aprendizaje automático automatizado: establezca el número de iteraciones en diferentes modelos, la configuración de hiperparámetros, las opciones avanzadas de preprocesamiento y caracterización, y las métricas que se evaluarán al determinar el mejor modelo.
Envíe el trabajo de entrenamiento.
Revisa los resultados.
En el siguiente diagrama se muestra este proceso.
También puede inspeccionar la información de trabajo registrada, que contiene las métricas que se recopilan durante el trabajo. El trabajo de entrenamiento genera un objeto serializado de Python (archivo .pkl) que contiene el modelo y el preprocesamiento de los datos.
Aunque se automatiza la creación del modelo, también puede conocer las características importantes o pertinentes de los modelos generados.
Cuándo usar AutoML: clasificación, regresión, previsión, computer vision y NLP
Use ML automatizado cuando quiera que Azure Machine Learning entrene y ajuste un modelo automáticamente mediante la métrica de destino que especifique. Ml automatizado democratiza el proceso de desarrollo de modelos de aprendizaje automático y permite a sus usuarios, independientemente de su experiencia en ciencia de datos, identificar una canalización de aprendizaje automático de un extremo a otro para cualquier problema.
Los profesionales y desarrolladores de ML de todos los sectores pueden usar el aprendizaje automático para:
- Implementar soluciones de ML sin grandes conocimientos de programación.
- Ahorrar tiempo y recursos.
- Aplicar procedimientos recomendados de la ciencia de datos
- Proporcionar soluciones ágiles a los problemas.
clasificación
La clasificación es un tipo de aprendizaje supervisado en el que los modelos aprenden a usar datos de entrenamiento y aplican lo que han aprendido a nuevos datos. Azure Machine Learning ofrece caracterizaciones específicas para estas tareas, como los caracterizadores de texto de red neuronal profunda para la clasificación. Para obtener más información sobre las opciones de caracterización, consulta Caracterización de datos. También puedes encontrar la lista de algoritmos que admite AutoML en Algoritmos admitidos.
El objetivo principal de los modelos de clasificación es predecir en qué categorías se incluyen los nuevos datos en función de lo aprendido de los datos de entrenamiento. Algunos ejemplos comunes de clasificación son la detección de fraudes, el reconocimiento de escritura a mano y la detección de objetos.
Consulte un ejemplo de clasificación y de aprendizaje automático automatizado en este cuaderno de Python: Bank Marketing.
Regresión
De forma similar a la clasificación, las tareas de regresión también son una tarea de aprendizaje supervisada común. Azure Machine Learning ofrece características específicas de los problemas de regresión. Más información sobre las opciones de caracterización. También puedes encontrar la lista de algoritmos que admite AutoML en Algoritmos admitidos.
A diferencia de la clasificación, donde los valores de salida pronosticados son categóricos, los modelos de regresión predicen valores de salida numéricos basados en predicciones independientes. En la regresión, el objetivo es ayudar a establecer la relación entre esas variables de predicción independientes mediante la estimación de cómo una variable afecta a las otras. Por ejemplo, el modelo podría predecir el precio de un automóvil según características como el rendimiento del combustible y la clasificación de seguridad.
Consulte ejemplos de regresión y aprendizaje automático automatizado para realizar predicciones en estos cuadernos de Python: Rendimiento del hardware.
Previsión de series temporales
La creación de previsiones es una parte integral de cualquier empresa, ya sea de los ingresos, los inventarios, las ventas o los clientes. Utilice ML automatizado para combinar técnicas y enfoques y obtener una previsión de alta calidad recomendada para series temporales. Para obtener una lista de los algoritmos admitidos por AutoML, consulte Algoritmos admitidos.
Un experimento automatizado de serie temporal trata el problema como un problema de regresión multivariante. Los valores de series temporales anteriores se "dinamizan" para convertirse en más dimensiones para el regresor junto con otros indicadores. Este enfoque, a diferencia de los métodos clásicos de series temporales, tiene la ventaja de incorporar de forma natural varias variables contextuales y su relación entre sí durante el entrenamiento. El aprendizaje automático automatizado aprende un modelo único (a menudo, internamente bifurcado) para todos los elementos en el conjunto de datos y horizontes de predicción. Por tanto, hay más datos disponibles para calcular los parámetros del modelo, y se hace posible la generalización hasta series totalmente nuevas.
La configuración de previsión avanzada incluye:
- Detección y caracterización de días festivos
- Aprendizajes de series temporales y DNN (Auto-ARIMA, Prophet, ForecastTCN)
- Compatibilidad con muchos modelos mediante la agrupación
- Validación cruzada de origen variable
- Retrasos configurables
- Características de agregado en períodos acumulados
Para obtener un ejemplo de previsión y aprendizaje automático automatizado, consulte este cuaderno de Python: Demanda de energía.
Visión del equipo
La compatibilidad con tareas de Computer Vision permite generar fácilmente modelos entrenados en datos de imagen para escenarios como la clasificación de imágenes y la detección de objetos.
Con esta funcionalidad puede hacer lo siguiente:
- Integrar sin problemas con la capacidad de etiquetado de datos de Azure Machine Learning.
- Usar datos etiquetados para generar modelos de imagen.
- Optimizar el rendimiento del modelo especificando el algoritmo de modelo y ajustando los hiperparámetros.
- Descargar o implementar el modelo resultante como un servicio web en Azure Machine Learning.
- Operacionalizar a gran escala, aprovechando las funcionalidades de MLOps y canalizaciones de ML de Azure Machine Learning.
Puede crear modelos de AutoML para tareas de visión mediante el SDK de Python de Azure Machine Learning. Puede acceder a los trabajos, modelos y salidas de experimentación resultantes desde la interfaz de usuario de Azure Machine Learning Studio.
Aprenda a configurar el entrenamiento de AutoML para modelos de Computer Vision.
Imagen de: http://cs231n.stanford.edu/slides/2021/lecture_15.pdf
ML automatizado para imágenes admite las siguientes tareas de Computer Vision:
| Tarea | Descripción |
|---|---|
| Clasificación de imágenes de varias clases | Tareas en las que una imagen se clasifica con una sola etiqueta de un conjunto de clases; por ejemplo, cada imagen se clasifica como una imagen de un "gato", un "perro" o un "pato". |
| Clasificación de imágenes con varias etiquetas | Tareas en las que una imagen podría tener una o varias etiquetas de un conjunto de etiquetas; por ejemplo, una imagen podría etiquetarse con "gato" y "perro". |
| Detección de objetos | Tareas para identificar objetos en una imagen y localizar cada objeto con un rectángulo delimitador; por ejemplo, localizar todos los perros y gatos de una imagen y dibujar un rectángulo delimitador alrededor de cada uno. |
| Segmentación de instancias | Tareas para identificar objetos de una imagen en el nivel de píxel, dibujando un polígono alrededor de cada objeto de la imagen. |
Procesamiento del lenguaje natural (NLP)
La compatibilidad con tareas de procesamiento de lenguaje natural (NLP) en ML automatizado permite generar fácilmente modelos entrenados en datos de texto para escenarios de clasificación de texto y reconocimiento de entidades con nombre. Puede desarrollar modelos de NLP entrenados mediante ML automatizado usando el SDK de Azure Machine Learning para Python. Puede acceder a los trabajos, modelos y salidas de experimentación resultantes desde la interfaz de usuario de Azure Machine Learning Studio.
La funcionalidad NLP admite:
- Entrenamiento de NLP de red neuronal profunda de un extremo a otro con los modelos de BERT entrenados previamente más recientes
- Integración sin problemas con el etiquetado de datos de Azure Machine Learning
- Usar datos etiquetados para generar modelos NLP
- Compatibilidad multilingüe con 104 idiomas
- Entrenamiento distribuido con Horovod
Aprenda a configurar el entrenamiento de AutoML para modelos NLP.
Datos de entrenamiento, validación y prueba
Con la ML proporcionas los datos de entrenamiento para entrenar modelos de ML y puedes especificar qué tipo de validación de modelos se va a realizar. El ML automatizado realiza la validación del modelo como parte del entrenamiento. Es decir, el aprendizaje automático automatizado utiliza datos de validación para optimizar los hiperparámetros del modelo en función del algoritmo aplicado para encontrar la combinación que mejor se adapte a los datos de entrenamiento. Sin embargo, se usan los mismos datos de validación para cada iteración de optimización, lo que introduce el sesgo de evaluación del modelo, ya que el modelo sigue mejorando y ajustando los datos de validación.
Para ayudar a confirmar que este sesgo no se aplica al modelo recomendado final, el ML automatizado admite el uso de datos de prueba para evaluar el modelo final que el ML automatizado recomienda al final del experimento. Cuando se proporcionan datos de prueba como parte de la configuración del experimento de AutoML, este modelo recomendado se prueba de forma predeterminada al final del experimento (versión preliminar).
Importante
La característica para probar modelos con un conjunto de datos de prueba con el fin de evaluar los modelos generados es una característica en vista previa. Esta capacidad es una característica experimental en versión preliminar y podría cambiar en cualquier momento.
Aprenda a configurar experimentos de AutoML para usar datos de prueba (versión preliminar) con el SDK o con Estudio de Azure Machine Learning.
Ingeniería de características
La ingeniería de características usa conocimientos de dominio de los datos para crear características que ayudan a los algoritmos de APRENDIZAJE automático a aprender mejor. En Azure Machine Learning, las técnicas de escalado y normalización ayudan con la ingeniería de características. En conjunto, estas técnicas y la ingeniería de características se conocen como caracterización.
En el caso de los experimentos de aprendizaje automático automatizado, la caracterización se produce automáticamente, pero también se puede personalizar en función de los datos. Obtenga más información sobre qué caracterización se incluye (SDK v1) y sobre la forma en que AutoML ayuda a evitar el sobreajuste y los datos desequilibrados en los modelos.
Nota:
Los pasos de caracterización de aprendizaje automático automatizados, como la normalización de características, el control de los datos que faltan y la conversión de texto en numérico, forman parte del modelo subyacente. Cuando se usa el modelo para las predicciones, los mismos pasos de caracterización aplicados durante el entrenamiento se aplican automáticamente a los datos de entrada.
Personalización de la caracterización
También puede usar otras técnicas de ingeniería de características, como codificación y transformaciones.
Para habilitar esta configuración, realice lo siguiente:
Estudio de Azure Machine Learning: Habilite Características automáticas en la sección Ver configuración adicional siguiendo estos pasos.
SDK de Python: especifique la caracterización en el objeto de trabajo de AutoML. Más información sobre cómo habilitar la ingeniería de características.
Modelos de conjuntos
El aprendizaje automático automatizado admite modelos de conjunto, que están habilitados de forma predeterminada. El aprendizaje de conjunto mejora los resultados del aprendizaje automático y el rendimiento predictivo mediante la combinación de varios modelos en lugar de usar modelos únicos. Las iteraciones del conjunto aparecen como las iteraciones finales del trabajo. El aprendizaje automático automatizado usa los métodos de conjunto de votaciones y apilamiento para combinar modelos:
- Votación: realiza la predicción en función de la media ponderada de las probabilidades de clase predichas (para tareas de clasificación) o de los destinos de regresión predichos (para tareas de regresión).
- Apilamiento: combina modelos heterogéneos y entrena un metamodelo basado en la salida de los modelos individuales. Los metamodelos predeterminados actuales son LogisticRegression para las tareas de clasificación y ElasticNet para las tareas de regresión y previsión.
El algoritmo de selección de conjuntos de Caruana con inicialización de conjunto ordenado decide qué modelos usar dentro del conjunto. En un nivel alto, este algoritmo inicializa el conjunto con hasta cinco modelos con las mejores puntuaciones individuales y comprueba que estos modelos se encuentran en un umbral del 5 % de la mejor puntuación para evitar un conjunto inicial deficiente. A continuación, para cada iteración de conjunto, se agrega un nuevo modelo al conjunto existente y se calcula la puntuación resultante. Si un nuevo modelo mejora la puntuación del conjunto de modelos existente, el conjunto se actualiza para incluir el nuevo modelo.
Consulte el paquete de AutoML para cambiar la configuración del conjunto predeterminado en el aprendizaje automático automatizado.
AutoML y ONNX
Con Azure Machine Learning, puede usar Machine Learning para generar un modelo de Python y convertirlo al formato ONNX. Una vez que los modelos están en formato ONNX, puede ejecutarlos en varias plataformas y dispositivos. Más información sobre la aceleración de los modelos de Machine Learning con ONNX.
Consulte cómo convertir al formato ONNX en este ejemplo de Jupyter Notebook. Aprenda cuáles son los algoritmos que se admiten en ONNX.
El entorno de ejecución de ONNX también es compatible con C#, por lo que puede usar el modelo creado automáticamente en sus aplicaciones de C# sin necesidad de volver a codificar o experimentar alguna de las latencias de red que presentan los puntos de conexión REST. Obtenga más detalles sobre el uso de un modelo AutoML de ONNX en una aplicación .NET con ML.NET y la creación de inferencias en modelos de ONNX con la API de C# del entorno de ejecución de ONNX.
Pasos siguientes
Use los siguientes recursos para ponerse en marcha con AutoML.
Tutoriales y artículos de procedimientos
Los tutoriales son ejemplos de introducción de un extremo a otro de escenarios de AutoML.
Para obtener una primera experiencia de código, siga Tutorial: Entrenamiento de un modelo de detección de objetos con AutoML y Python.
Para una experiencia sin código o con poco código, consulta Tutorial: Entrenamiento de un modelo de clasificación con aprendizaje automático automatizado sin código en Estudio de Azure Machine Learning.
Los artículos de procedimientos proporcionan más detalles sobre la funcionalidad que ofrece el aprendizaje automático automatizado. Por ejemplo,
Configure de los experimentos de aprendizaje automáticos
Obtenga más información sobre cómo entrenar modelos de Computer Vision con Python.
Obtenga información sobre cómo ver el código generado desde los modelos ML automatizados (SDK v1).
Muestras de cuaderno de Jupyter
Revise los ejemplos de código y los casos de uso detallados en el repositorio del cuaderno de GitHub para obtener muestras de aprendizaje automático automatizado.
Referencia de SDK de Python
Profundice sus conocimientos sobre patrones de diseño y especificaciones de clases del SDK con la documentación de referencia de la clase de trabajo de AutoML.
Nota:
Las capacidades del aprendizaje automático automatizado también están disponibles en otras soluciones de Microsoft como,ML.NET, HDInsight, Power BI y SQL Server.