Explicación del aprendizaje automático automatizado o AutoML

Las dos mayores barreras para el uso del aprendizaje automático (tanto el aprendizaje automático clásico como el aprendizaje profundo) son las habilidades y los recursos informáticos. Puede resolver el segundo problema invirtiendo dinero en él, ya sea para la compra de hardware acelerado (como computadoras con GPU de gama alta) o para el alquiler de recursos informáticos en la nube (como instancias con GPU, TPU y FPGA).

Por otro lado, resolver el problema de habilidades es más difícil. Los científicos de datos a menudo cobran altos salarios y aún puede ser difícil contratarlos. Google pudo capacitar a muchos de sus empleados en su propio marco de TensorFlow, pero la mayoría de las empresas apenas tienen personas lo suficientemente capacitadas para construir ellos mismos modelos de aprendizaje automático y aprendizaje profundo, y mucho menos enseñar a otros cómo.

¿Qué es AutoML?

El aprendizaje automático automatizado, o AutoML, tiene como objetivo reducir o eliminar la necesidad de que los científicos de datos capacitados creen modelos de aprendizaje automático y aprendizaje profundo. En cambio, un sistema AutoML le permite proporcionar los datos de entrenamiento etiquetados como entrada y recibir un modelo optimizado como salida.

Hay varias formas de hacerlo. Un enfoque es que el software simplemente entrene cada tipo de modelo con los datos y elija el que funcione mejor. Un refinamiento de esto sería construir uno o más modelos de conjuntos que combinen los otros modelos, lo que a veces (pero no siempre) da mejores resultados.

Una segunda técnica consiste en optimizar los hiperparámetros (explicados a continuación) del mejor modelo o modelos para entrenar un modelo aún mejor. La ingeniería de funciones (también explicada a continuación) es una valiosa adición a cualquier entrenamiento de modelos. Una forma de descalificar el aprendizaje profundo es utilizar el aprendizaje por transferencia, esencialmente personalizando un modelo general bien entrenado para datos específicos.

¿Qué es la optimización de hiperparámetros?

Todos los modelos de aprendizaje automático tienen parámetros, es decir, los pesos de cada variable o característica en el modelo. Por lo general, estos se determinan mediante la propagación hacia atrás de los errores, más la iteración bajo el control de un optimizador, como el descenso de gradiente estocástico.

La mayoría de los modelos de aprendizaje automático también tienen hiperparámetros que se establecen fuera del ciclo de entrenamiento. Estos a menudo incluyen la tasa de aprendizaje, la tasa de abandono y parámetros específicos del modelo, como el número de árboles en un bosque aleatorio.

El ajuste de hiperparámetros o la optimización de hiperparámetros (HPO) es una forma automática de barrido o búsqueda a través de uno o más de los hiperparámetros de un modelo para encontrar el conjunto que da como resultado el modelo mejor entrenado. Esto puede llevar mucho tiempo, ya que debe entrenar el modelo nuevamente (el ciclo interno) para cada conjunto de valores de hiperparámetros en el barrido (el ciclo externo). Si entrena muchos modelos en paralelo, puede reducir el tiempo requerido a expensas de utilizar más hardware.

¿Qué es la ingeniería de características?

Un rasgo es una propiedad individual mensurable o una característica de un fenómeno que se observa. El concepto de “característica” está relacionado con el de variable explicativa, que se utiliza en técnicas estadísticas como la regresión lineal. Un vector de características combina todas las características de una sola fila en un vector numérico. La ingeniería de características es el proceso de encontrar el mejor conjunto de variables y la mejor codificación y normalización de datos para la entrada al proceso de entrenamiento del modelo.

Parte del arte de elegir características es elegir un conjunto mínimo de variables independientes que expliquen el problema. Si dos variables están muy correlacionadas, es necesario combinarlas en una sola característica o descartar una. A veces, las personas realizan análisis de componentes principales (PCA) para convertir variables correlacionadas en un conjunto de variables linealmente no correlacionadas.

Para utilizar datos categóricos para la clasificación de la máquina, debe codificar las etiquetas de texto en otro formulario. Hay dos codificaciones comunes.

Una es la codificación de etiquetas , lo que significa que cada valor de etiqueta de texto se reemplaza por un número. La otra es la codificación one-hot , lo que significa que cada valor de etiqueta de texto se convierte en una columna con un valor binario (1 o 0). La mayoría de los marcos de aprendizaje automático tienen funciones que realizan la conversión por usted. En general, se prefiere la codificación one-hot, ya que la codificación de etiquetas a veces puede confundir al algoritmo de aprendizaje automático haciéndole pensar que la columna codificada está ordenada.

Para usar datos numéricos para la regresión de la máquina, generalmente necesita normalizar los datos. De lo contrario, los números con rangos más grandes podrían tender a dominar la distancia euclidiana entre los vectores de características, sus efectos podrían magnificarse a expensas de los otros campos y la optimización de descenso más pronunciada podría tener dificultades para converger. Hay varias formas de normalizar y estandarizar los datos para el aprendizaje automático, incluida la normalización mínimo-máximo, la normalización media, la estandarización y el escalado a la longitud de la unidad. Este proceso a menudo se denomina escalamiento de características .

Algunas de las transformaciones que la gente usa para construir nuevas características o reducir la dimensionalidad de los vectores de características son simples. Por ejemplo, reste Year of Birthde Year of Deathy construya Age at Death, que es una variable independiente principal para el análisis de vida y mortalidad. En otros casos, la construcción de características puede no ser tan obvia.

¿Qué es el aprendizaje por transferencia?

El aprendizaje por transferencia a veces se denomina aprendizaje automático personalizado y, a veces, AutoML (principalmente por Google). En lugar de comenzar desde cero al entrenar modelos a partir de sus datos, Google Cloud AutoML implementa el aprendizaje de transferencia profunda automática (lo que significa que comienza a partir de una red neuronal profunda existente entrenada en otros datos) y la búsqueda de arquitectura neuronal (lo que significa que encuentra la combinación correcta de extra capas de red) para la traducción de pares de idiomas, la clasificación del lenguaje natural y la clasificación de imágenes.

Ese es un proceso diferente al que normalmente se entiende por AutoML y no cubre tantos casos de uso. Por otro lado, si necesita un modelo de aprendizaje profundo personalizado en un área compatible, el aprendizaje por transferencia a menudo producirá un modelo superior.

Implementaciones de AutoML

Hay muchas implementaciones de AutoML que puedes probar. Algunos son servicios de pago y otros son código fuente gratuito. Las listas a continuación no son de ninguna manera completas ni definitivas.

Servicios de AutoML

Los tres grandes servicios en la nube tienen algún tipo de AutoML. Amazon SageMaker realiza ajustes de hiperparámetros, pero no prueba automáticamente varios modelos ni realiza ingeniería de funciones. Azure Machine Learning tiene AutoML, que recorre características y algoritmos, y ajuste de hiperparámetros, que normalmente se ejecuta en el mejor algoritmo elegido por AutoML. Google Cloud AutoML, como mencioné anteriormente, es un aprendizaje de transferencia profunda para la traducción de pares de idiomas, la clasificación de lenguaje natural y la clasificación de imágenes.

Varias empresas más pequeñas también ofrecen servicios de AutoML. Por ejemplo, DataRobot, que afirma haber inventado AutoML, tiene una sólida reputación en el mercado. Y aunque dotData tiene una pequeña participación de mercado y una interfaz de usuario mediocre, tiene sólidas capacidades de ingeniería de funciones y cubre muchos casos de uso empresarial. H2O.ai Driverless AI, que revisé en 2017, puede ayudar a un científico de datos a producir modelos como un maestro de Kaggle, realizando ingeniería de funciones, barridos de algoritmos y optimización de hiperparámetros de una manera unificada.

Marcos de AutoML

AdaNet es un marco ligero basado en TensorFlow para aprender automáticamente modelos de alta calidad con una mínima intervención de expertos. Auto-Keras es una biblioteca de software de código abierto para el aprendizaje automático automatizado, desarrollada en Texas A&M, que proporciona funciones para buscar automáticamente la arquitectura y los hiperparámetros de los modelos de aprendizaje profundo. NNI (Neural Network Intelligence) es un conjunto de herramientas de Microsoft para ayudar a los usuarios a diseñar y ajustar modelos de aprendizaje automático (por ejemplo, hiperparámetros), arquitecturas de redes neuronales o los parámetros de un sistema complejo de manera eficiente y automática.

Puede encontrar proyectos de AutoML adicionales y una lista bastante completa y actualizada de artículos sobre AutoML en GitHub.