Llegamos a ustedes gracias a:



Reportajes y análisis

Google Cloud AutoML y el aprendizaje profundo

[02/04/2019] Cuando intenta entrenar el mejor modelo de aprendizaje automático para sus datos de forma automática, existe AutoML o aprendizaje automático automatizado, y luego está AutoML de Google Cloud. Este es superior.

En el pasado, he analizado H2O Driverless AI, Amazon SageMaker y Azure Machine Learning AutoML. El Driverless AI realiza la ingeniería de características y el ajuste de hiperparámetros de manera automática, y asegura que lo hace tan bien como los maestros de Kaggle. Amazon SageMaker soporta la optimización de hiperparámetros. Azure Machine Learning AutoML se extiende a través de características, algoritmos e hiperparámetros en busca de algoritmos básicos de aprendizaje automático. Una función separada de ajuste de hiperparámetro de Azure Machine Learning le permite barrer hiperparámetros específicos para un experimento existente.

Estos son buenos, pero Google Cloud AutoML alcanza un nivel completamente diferente y personaliza las redes neuronales profundas de alta precisión y probadas por Google para sus datos etiquetados. En lugar de comenzar desde cero cuando entrena modelos a partir de sus datos, Google Cloud AutoML implementa el aprendizaje profundo de transferencia automático (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 capas/niveles de red extra) para la traducción de una combinación de idiomas, la clasificación de lenguaje natural y la clasificación de imágenes.

En cada área, Google ya tiene uno o más servicios pre-entrenados basados en redes neuronales profundas y enormes conjuntos de datos etiquetados. Estos podrían funcionar muy bien con sus datos sin modificar, y debería probarlos para ahorrar tiempo y dinero. Si estos servicios no hacen lo que necesita, Google Cloud AutoML lo ayudará a crear un modelo que sí lo haga, sin necesidad de que sepa cómo realizar transferencias de aprendizaje o incluso cómo crear redes neuronales.

El aprendizaje por transferencia ofrece dos grandes ventajas para el entrenamiento de una red neuronal desde cero. Primero, requiere mucho menos datos, ya que la mayoría de las capas de la red ya están bien entrenadas. Segundo, se ejecuta mucho más rápido, debido a que solo optimiza las capas finales.

AutoML Translation de Google Cloud

Así, por ejemplo, puede entrenar contra mil pares de oraciones en dos idiomas en una o dos horas con el aprendizaje de transferencia de Google Cloud AutoML Translation. La red neuronal base que se personaliza, NMT, tardó cientos o miles de horas en ser entrenada desde cero para cada par de idiomas, en una gran cantidad de CPUs y GPUs. Tenga en cuenta que el recargo por hora para el entrenamiento de un modelo de traducción personalizado es de 76 dólares.

La Guía para Principiantes de AutoML Translation explica los conceptos básicos de lo que Google Cloud AutoML Translation puede hacer y por qué debería usarlo. Esencialmente, refina un modelo de traducción general existente para un propósito de nicho. No necesita realizar ningún entrenamiento para la traducción general de los más de cien idiomas que Google ya admite, pero tendría que ejecutar la transferencia de aprendizaje si desea crear una red de traducción para vocabulario o uso especializado. Un ejemplo que menciona Google es la traducción de documentos financieros sensibles al tiempo en tiempo real. La traducción de propósito general no siempre usa los términos correctos del arte para las finanzas.

Configurar el entrenamiento de Google Cloud AutoML Translation es un proceso de cinco pasos, como se muestra en las capturas de pantalla a continuación, una vez que haya preparado un archivo con pares de oraciones. Utilicé los 8.720 pares inglés-español para las instrucciones de aplicaciones proporcionadas por Google en el AutoML Translation Quickstart, formateado como un archivo de valores separados por tabulaciones. Google Cloud AutoML Translation también es compatible con el formato de intercambio de memoria de traducción basado en XML (TMX) para pares de oraciones.

Notará que no hay ninguna opción para controlar el hardware (CPUs, GPUs, TPUs y memoria) que se utiliza para realizar el entrenamiento. Eso es deliberado: Éste utilizará lo que necesita. Tampoco hay opciones para controlar las capas de redes neuronales que se agregan al modelo, el número de épocas que se ejecutarán o los criterios de detención.

Para cargar un conjunto de datos para usar en el entrenamiento de traducción, solo necesita especificar el par de idiomas, el archivo a usar y la división entre los conjuntos de entrenamiento, validación y prueba. Aquí he permitido la división automática.
Google Cloud AutoML
Una vez que haya cargado un conjunto de datos de pares de oraciones, podrá ver una muestra. Esto le permite validar que el archivo esté cargado correctamente.
Google Cloud AutoML
Antes de comenzar el entrenamiento, verá un resumen de los idiomas que se traducen y el número de pares de oraciones en cada conjunto.
Google Cloud AutoML
Después de presionar "Iniciar entrenamiento en la página anterior, podrá seleccionar el modelo base para el aprendizaje de transferencia y ver una estimación del tiempo de entrenamiento. Presione "Iniciar entrenamiento" aquí y realmente comenzará.
Google Cloud AutoML
Una vez que comience el entrenamiento, verá esta página. Puede cerrarla si no desea cancelar el trabajo de entrenamiento.
Google Cloud AutoML

Una vez que complete el entrenamiento del modelo, podrá ver la mejora (si todo va bien) en la puntuación BLEU sobre el modelo base, e intentar hacer predicciones con éste. Este entrenamiento tomó 0,9 horas (menos de lo previsto) y costó 68,34 dólares.

Una vez finalizado el entrenamiento, hacer clic en el enlace del correo electrónico de notificación lo traerá a esta página. El puntaje BLEU (Bilingual Evaluation Understudy) representa la calidad general del modelo. El aumento de 12 puntos sobre el modelo base es excelente, y la puntuación de 54 indica un corpus de traducción de muy alta calidad.
Google Cloud AutoML
Esta página le permite probar su modelo dándole oraciones para traducir. Muestra los resultados del modelo base, así como del modelo de aprendizaje por transferencia. Tenga en cuenta que el modelo de transferencia en este caso da un resultado que es directo y utiliza la forma informal "tu", mientras que el modelo base usa la forma formal "su" e incluye el educado "por favor".
Google Cloud AutoML

AutoML Natural Language de Google Cloud

La API de Lenguaje Natural de Google toma texto y predice entidades, sentimientos, sintaxis y categorías (de una lista predefinida). Si su problema de clasificación de texto no se ajusta a ninguno de ellos, puede proporcionar un conjunto etiquetado de declaraciones y utilizar el Lenguaje Natural de Google Cloud AutoML para crear un clasificador personalizado.

Para configurar AutoML Natural Language para el entrenamiento, necesita obtener datos, etiquetarlos, prepararlos como un archivo CSV y llevar a cabo el entrenamiento. También puede utilizar la interfaz de usuario de AutoML Natural Language para cargar y etiquetar los datos si lo prefiere.

Para crear un conjunto de datos para la clasificación en lenguaje natural, proporcione un archivo de variables separadas por comas con el texto y las etiquetas. Si no tiene un archivo de este tipo, puede aplazar la creación de los elementos de texto y las etiquetas para un momento posterior.
Google Cloud AutoML
Una vez que haya creado un conjunto de datos, puede verlo en el área/espacio de trabajo.
Google Cloud AutoML
En la pestaña Entrenar, verá una pantalla de conteos para cada clase. Si los números son inadecuados en cualquier clase, puede agregar elementos de texto etiquetados o puede combinar clases poco pobladas en una categoría llamada "otras".
Google Cloud AutoML

Una vez que complete el entrenamiento del modelo, podrá ver la matriz de precisión, recuperación y confusión del modelo. También puede ajustar el umbral de puntuación para el intercambio deseado de precisión/recuperación. Para minimizar los falsos negativos, optimice para la recuperación y para minimizar los falsos positivos, optimice para la precisión.

Este entrenamiento tomó 3,63 horas (alrededor de lo previsto) y costó 10,88 dólares.

Esta clasificación dista mucho de ser perfecta, con precisión y recuperación por debajo del 90%, y errores significativos que aparecen en la matriz de confusión. Sin embargo, la lectura de algunos de los elementos de texto hace evidente que no todos los elementos encajan de manera inequívoca en una sola clase.
Google Cloud AutoML
Puede probar el modelo ingresando su propio texto y obteniendo predicciones de la clase. Para esta oración particular las predicciones son razonables.
Google Cloud AutoML

AutoML Vision de Google Cloud

La API de Google Cloud Vision clasifica las imágenes en miles de categorías predefinidas, detecta objetos y caras individuales dentro de las imágenes, y encuentra y lee palabras impresas contenidas en las imágenes. Google Cloud AutoML Vision le permite definir y entrenar su propia lista de categorías. Algunas aplicaciones de la vida real incluyen la detección de daños en turbinas eólicas a partir de fotos de drones y la clasificación de materiales reciclables para la gestión de residuos.

Para configurar un conjunto de datos de Google Cloud AutoML Vision, debe obtener al menos 100 imágenes para cada categoría y etiquetarlas en un archivo CSV. Todas esas imágenes y el archivo deben residir en un cubo de almacenamiento de Google Cloud.

Una vez que las imágenes han sido importadas, podrá verlas y editar las clases si es necesario. La advertencia sobre archivos duplicados refleja un problema conocido con el conjunto de datos. No pareció importarle al entrenamiento.
Google Cloud AutoML
En la pestaña Entrenamiento, verá un resumen de los recuentos de imágenes en cada clase y las divisiones automáticas entre las imágenes de entrenamiento, validación y prueba.
Google Cloud AutoML
Una vez finalizado el entrenamiento, podrá ver la precisión y la recuperación del modelo. Si no son adecuados podrá reanudar el entrenamiento.
Google Cloud AutoML

Configuré este entrenamiento para que se ejecute durante un máximo de una hora, que es gratuito para un máximo de 10 modelos al mes. Me sorprendió gratamente ver los buenos resultados del entrenamiento gratuito, y no me molesté en continuarlo para mejorar la precisión y la recuperación.

La pestaña Evaluar le permite ver las imágenes de verdaderos positivos, falsos negativos y falsos positivos para cada clase. Como lo sugiere la nota en la mitad de la página, puede mejorar los resultados agregando imágenes de entrenamiento correctamente etiquetadas que sean similares a los falsos negativos y falsos positivos, y entrenando un nuevo modelo.
Google Cloud AutoML
Puede probar su modelo en sus propias imágenes. Esta foto de rosas, que tomé en el patio de un vecino, se ha predicho correctamente.
Google Cloud AutoML
Solo para demostrar que el modelo no predice que todas mis imágenes son rosas, lo probé con una foto de tulipanes que tomé en un museo de arte cercano
Google Cloud AutoML

Google Cloud AutoML ofrece opciones convenientes para realizar traducciones específicas y, clasificación de texto e imagen personalizada. Cada una de estas APIs funciona bien si le proporciona suficientes datos etiquetados con precisión, y requiere mucho menos tiempo y habilidad que crear su propio modelo de red neuronal o incluso su propio modelo de aprendizaje por transferencia. Con Google Cloud AutoML, en realidad está creando modelos TensorFlow, sin saber necesariamente nada sobre TensorFlow, Python, arquitecturas de redes neuronales o hardware de entrenamiento.

Hay muchas formas de hacer una preparación de datos incorrecta, pero afortunadamente, las tres APIs comprueban en busca de los errores más comunes, como tener muy pocos o demasiados ejemplares para cualquier categoría. Los diagnósticos que se muestran después del entrenamiento le dan una buena idea de qué tan bien funciona su modelo, y puede ajustarlos fácilmente agregando más datos de entrenamiento etiquetados y volviendo a ejecutar el entrenamiento.

Costo

  • AutoML Translation de Google Cloud: El entrenamiento cuesta 76 dólares por hora, la traducción cuesta 80 dólares por millón de caracteres después de los primeros 500K.
  • AutoML Natural Language de Google Cloud: El entrenamiento cuesta tres dólares por hora, la clasificación cuesta cinco dólares por mil registros de texto después de los primeros 30K.
  • Google Cloud AutoML Vision: El entrenamiento cuesta 20 dólares por hora después de la primera hora, la clasificación cuesta tres dólares por mil imágenes después de las primeras mil.