Qué es el aprendizaje automático automatizado

0
23

Las dos barreras más grandes 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. Por un lado, puede resolver el segundo problema dándole dinero, ya sea para la compra de hardware acelerado (como computadoras con GPU de alta gama) o para el alquiler de recursos informáticos en la nube (como instancias con GPU, TPU y FPGAs).

Por el otro lado, resolver el problema de habilidades es más difícil. Los científicos de datos a menudo tienen altos salarios y aun así pueden ser difíciles de reclutar. Google pudo capacitar a muchos de sus empleados en su propio marco de TensorFlow, pero la mayoría de las empresas apenas cuentan con personas lo suficientemente capacitadas como para construir modelos de aprendizaje automático y aprendizaje profundo, y mucho menos como para enseñarle a otros cómo hacerlo.

¿Qué es AutoML?
El aprendizaje automático, o AutoML, tiene como objetivo reducir o eliminar la necesidad de científicos de datos expertos para construir modelos de aprendizaje automático y aprendizaje profundo. En cambio, un sistema de AutoML le permite proporcionar los datos de entrenamiento etiquetados como input y recibir un modelo optimizado como output.

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

Una segunda técnica es optimizar los hiperparámetros (explicados a continuación) del mejor modelo o modelos para entrenar a uno aún mejor. La ingeniería de características (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 de transferencia, básicamente 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, que son los pesos para cada variable o característica en el modelo. Estos generalmente son determinados mediante la propagación hacia atrás de los errores, más la iteración bajo el control de un optimizador, tal como el descenso de gradientes estocásticos.

La mayor parte de los modelos de aprendizaje automático también tienen hiperparámetros que son establecidos fuera del bucle de entrenamiento. Estos a menudo incluyen la tasa de aprendizaje, la tasa de deserción y los parámetros específicos del modelo, tales como la cantidad de árboles en un bosque cualquiera.

El ajuste de hiperparámetros o la optimización de hiperparámetros (HPO) es una forma automática de barrer o buscar 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 necesita entrenar el modelo nuevamente (el bucle interno) para cada conjunto de valores de hiperparámetro en el barrido (el bucle externo). Si entrena muchos modelos en paralelo, puede reducir el tiempo requerido a expensas del uso de más hardware.

¿Qué es la ingeniería de características?
Una característica es una propiedad medible individual de un fenómeno que se observa. El concepto de una «característica» está relacionado con el de una 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 (1) para contribuir al proceso de capacitación del modelo; (2) que luego serán utilizados en el proceso de capacitación del modelo; (3) que sirven como insumo de entrada para el proceso de capacitación del modelo.

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 contribuir al/que luego son usados en el proceso de capacitación 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 altamente correlacionadas, o deben combinarse en una sola característica o se debe descartar una. A veces las personas llevan a cabo el 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 máquinas, debe codificar las etiquetas de texto en otro formulario. Hay dos codificaciones comunes.

Uno es la codificación de etiquetas, lo que significa que cada valor de etiqueta de texto se reemplaza con un número. El otro es la codificación de un solo uso, 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 hacen 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 y llevarlo a pensar que la columna codificada está ordenada.

Para usar datos numéricos para la regresión de máquinas, 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 aumentarse a expensas de los otros campos, y la optimización del descenso más pronunciado podría tener dificultades para converger. Hay varias formas de normalizar y estandarizar los datos para el aprendizaje automático, incluyendo la normalización min-max, la normalización de la media, la estandarización y el escalado a la longitud de la unidad. Este proceso a menudo se denomina escalado de características.

Algunas de las transformaciones que las personas usan para construir nuevas características o reducir la dimensionalidad de los vectores de características son simples. Por ejemplo, si resta Año de nacimiento del Año de muerte, estará construyendo Edad de fallecimiento, que es una variable independiente principal para el análisis de la vida y mortalidad. En otros casos, la construcción de características puede no ser tan obvia.

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

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

Implementaciones de AutoML
Hay muchas implementaciones de AutoML que puede probar. Algunos son servicios pagados y otros son de código fuente gratuito. Las listas a continuación no están completas ni son definitivas.

Servicios de AutoML: Todos 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 múltiples modelos ni realiza la ingeniería de características. Azure Machine Learning tiene tanto el AutoML, hace un barrido a través de las características y algoritmos, como el 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 y, la clasificación de lenguaje natural e imágenes.

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

Marcos AutoML: AdaNet es un marco ligero basado en TensorFlow para aprender a entrenar modelos de alta calidad con una mínima intervención de expertos. Auto-Keras es una biblioteca de software de código abierto para aprendizaje automático, desarrollada en Texas A&M, que proporciona funciones para buscar arquitectura e hiperparámetros de 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 parámetros de sistemas complejos de forma automática y eficiente.

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

Martin Heller, InfoWorld