Saltar al contenido

Cómo utilizar los AutoKeras para la clasificación y la regresión

2 de septiembre de 2020

AutoML se refiere a las técnicas para descubrir automáticamente el modelo de mejor rendimiento para un determinado conjunto de datos.

Cuando se aplica a las redes neuronales, esto implica tanto el descubrimiento de la arquitectura del modelo como de los hiperparámetros utilizados para entrenar el modelo, generalmente denominados búsqueda de arquitectura neuronal.

AutoKeras es una biblioteca de código abierto para realizar AutoML para modelos de aprendizaje profundo. La búsqueda se realiza utilizando los llamados modelos Keras a través de la API TensorFlow tf.keras.

Proporciona un enfoque simple y eficaz para encontrar automáticamente modelos de alto rendimiento para una amplia gama de tareas de modelización predictiva, incluidos los conjuntos de datos de clasificación y regresión tabulares o los denominados estructurados.

En este tutorial, descubrirá cómo utilizar el AutoKeras para encontrar buenos modelos de redes neuronales para tareas de clasificación y regresión.

Después de completar este tutorial, lo sabrás:

  • AutoKeras es una implementación de AutoML para el aprendizaje profundo que utiliza la búsqueda de la arquitectura neural.
  • Cómo usar el AutoKeras para encontrar un modelo de alto rendimiento para un conjunto de datos de clasificación binaria.
  • Cómo usar el AutoKeras para encontrar un modelo de alto rendimiento para un conjunto de datos de regresión.

Empecemos.

Cómo utilizar los AutoKeras para la clasificación y la regresión

Cómo utilizar los AutoKeras para la clasificación y la regresión
Foto de kanu101, algunos derechos reservados.

Resumen del Tutorial

Este tutorial está dividido en tres partes; son:

  1. AutoKeras para un aprendizaje profundo
  2. AutoKeras para la clasificación
  3. AutoKeras para la regresión

AutoKeras para un aprendizaje profundo

El Aprendizaje Automático de Máquinas, o AutoML para abreviar, se refiere a la búsqueda automática de la mejor combinación de preparación de datos, modelo e hiperparámetros de modelo para un problema de modelado predictivo.

El beneficio del AutoML es que permite a los profesionales del aprendizaje automático abordar rápida y eficazmente las tareas de modelización predictiva con muy poca aportación, por ejemplo, disparar y olvidar.

El Aprendizaje Automático de Máquinas (AutoML) se ha convertido en un tema de investigación muy importante con amplias aplicaciones de técnicas de aprendizaje de máquinas. El objetivo de AutoML es permitir que las personas con conocimientos limitados de aprendizaje automático puedan utilizar fácilmente los modelos de aprendizaje automático.

– Auto-keras: Un eficiente sistema de búsqueda de arquitectura neuronal, 2019.

AutoKeras es una implementación de AutoML para modelos de aprendizaje profundo utilizando la API de Keras, específicamente la API tf.keras proporcionada por TensorFlow 2.

Utiliza un proceso de búsqueda a través de las arquitecturas de redes neuronales para abordar mejor una tarea de modelado, conocida más generalmente como Búsqueda de Arquitectura Neural, o NAS para abreviar.

… hemos desarrollado un sistema de código abierto de AutoML ampliamente adoptado basado en nuestro método propuesto, a saber, Auto-Keras. Es un sistema de código abierto de AutoML, que puede ser descargado e instalado localmente.

– Auto-keras: Un eficiente sistema de búsqueda de arquitectura neuronal, 2019.

En el espíritu de Keras, AutoKeras proporciona una interfaz fácil de usar para diferentes tareas, como la clasificación de imágenes, la clasificación de datos estructurados o la regresión, y más. El usuario sólo tiene que especificar la ubicación de los datos y el número de modelos a probar y se le devuelve un modelo que logra el mejor rendimiento (bajo las restricciones configuradas) en ese conjunto de datos.

Nota: AutoKeras proporciona un modelo TensorFlow 2 Keras (por ejemplo, tf.keras) y no un modelo autónomo Keras. Como tal, la biblioteca asume que tiene instalado Python 3 y TensorFlow 2.1 o superior.

Para instalar AutoKeras, puedes usar Pip, de la siguiente manera:

Puede confirmar que la instalación se realizó con éxito y comprobar el número de versión como sigue:

Debería ver la salida como la siguiente:

Una vez instalado, puede aplicar AutoKeras para encontrar un buen o gran modelo de red neuronal para su tarea de modelado predictivo.

Vamos a ver dos ejemplos comunes en los que puede querer usar AutoKeras, clasificación y regresión en datos tabulares, los llamados datos estructurados.

AutoKeras para la clasificación

El AutoKeras puede ser usado para descubrir un buen o gran modelo para tareas de clasificación en datos tabulares.

Los datos tabulares son aquellos conjuntos de datos compuestos por filas y columnas, como una tabla o datos como los que se verían en una hoja de cálculo.

En esta sección, desarrollaremos un modelo para el conjunto de datos de clasificación del sonar para clasificar los retornos del sonar como rocas o minas. Este conjunto de datos consiste en 208 filas de datos con 60 características de entrada y una etiqueta de clase de objetivo de 0 (roca) o 1 (mina).

Un modelo ingenuo puede lograr una precisión de clasificación de alrededor del 53,4% mediante la validación cruzada repetida 10 veces, lo que proporciona un límite inferior. Un buen modelo puede alcanzar una precisión de alrededor del 88,2%, lo que proporciona un límite superior.

Puedes aprender más sobre el conjunto de datos aquí:

No es necesario descargar el conjunto de datos; lo descargaremos automáticamente como parte del ejemplo.

Primero, podemos descargar el conjunto de datos y dividirlo en un tren seleccionado al azar y un conjunto de pruebas, manteniendo el 33 por ciento para la prueba y usando el 67 por ciento para el entrenamiento.

El ejemplo completo figura a continuación.

Ejecutando el ejemplo primero se descarga el conjunto de datos y se resume la forma, mostrando el número esperado de filas y columnas.

El conjunto de datos se divide entonces en elementos de entrada y salida, y estos elementos se dividen a su vez en conjuntos de datos de tren y de prueba.

Podemos usar el AutoKeras para descubrir automáticamente un modelo de red neural efectivo para este conjunto de datos.

Esto puede lograrse utilizando la clase StructuredDataClassifier y especificando el número de modelos a buscar. Esto define la búsqueda a realizar.

Podemos entonces ejecutar la búsqueda usando nuestro conjunto de datos cargado.

Esto puede tomar unos minutos e informará del progreso de la búsqueda.

A continuación, podemos evaluar el modelo en el conjunto de datos de la prueba para ver cómo se desempeña en los nuevos datos.

Luego usamos el modelo para hacer una predicción para una nueva fila de datos.

Podemos recuperar el modelo final, que es un ejemplo de un modelo de TensorFlow Keras.

Podemos entonces resumir la estructura del modelo para ver lo que fue seleccionado.

Por último, podemos guardar el modelo en un archivo para su uso posterior, que puede ser cargado con la función TensorFlow load_model().

Enlazando todo esto, el ejemplo completo de la aplicación de AutoKeras para encontrar un modelo de red neural eficaz para el conjunto de datos del Sonar se enumera a continuación.

Recomendado:  La integración de Bentley-Nvidia podría agilizar la revisión de la infraestructura de EE. UU.

Ejecutar el ejemplo reportará mucha información de depuración sobre el progreso de la búsqueda.

Los modelos y los resultados se guardan en una carpeta llamada «clasificador_de_datos_estructurados«en su actual directorio de trabajo.

El modelo de mejor rendimiento se evalúa en el conjunto de datos de la prueba de retención.

Nota: Sus resultados pueden variar dada la naturaleza estocástica del algoritmo o el procedimiento de evaluación, o las diferencias en la precisión numérica. Considere ejecutar el ejemplo unas cuantas veces y compare el resultado promedio.

En este caso, podemos ver que el modelo alcanzó una precisión de clasificación de alrededor del 82,6 por ciento.

A continuación, se informa de la arquitectura del modelo de mejor rendimiento.

Podemos ver un modelo con dos capas ocultas con abandono y activación de ReLU.

AutoKeras para la regresión

Los AutoKeras también pueden ser utilizados para tareas de regresión, es decir, problemas de modelado predictivo donde se predice un valor numérico.

Utilizaremos el conjunto de datos del seguro de automóviles que implica la predicción del pago total de las reclamaciones dado el número total de reclamaciones. El conjunto de datos tiene 63 filas y una variable de entrada y otra de salida.

Un modelo ingenuo puede lograr un error absoluto medio (MAE) de alrededor de 66 utilizando una validación cruzada repetida 10 veces, proporcionando un límite inferior en el rendimiento esperado. Un buen modelo puede lograr un MAE de alrededor de 28, proporcionando un límite superior de rendimiento.

Puedes aprender más sobre este conjunto de datos aquí:

Podemos cargar el conjunto de datos y dividirlo en elementos de entrada y salida y luego entrenar y probar los conjuntos de datos.

El ejemplo completo figura a continuación.

Al ejecutar el ejemplo se carga el conjunto de datos, se confirma el número de filas y columnas, y luego se divide el conjunto de datos en trenes y conjuntos de pruebas.

El AutoKeras puede ser aplicado a una tarea de regresión usando la clase StructuredDataRegressor y configurado para el número de modelos a probar.

La búsqueda puede entonces ser ejecutada y el mejor modelo guardado, como en el caso de la clasificación.

Podemos entonces utilizar el modelo de mejor rendimiento y evaluarlo en el conjunto de datos de reserva, hacer una predicción sobre los nuevos datos y resumir su estructura.

Enlazando todo esto, el ejemplo completo del uso de AutoKeras para descubrir un modelo de red neural efectivo para el conjunto de datos del seguro de automóviles se enumera a continuación.

Ejecutar el ejemplo reportará mucha información de depuración sobre el progreso de la búsqueda.

Los modelos y los resultados se guardan en una carpeta llamada «estructurada_data_regresiva«en su actual directorio de trabajo.

El modelo de mejor rendimiento se evalúa en el conjunto de datos de la prueba de retención.

Nota: Sus resultados pueden variar dada la naturaleza estocástica del algoritmo o el procedimiento de evaluación, o las diferencias en la precisión numérica. Considere ejecutar el ejemplo unas cuantas veces y compare el resultado promedio.

En este caso, podemos ver que el modelo alcanzó un MAE de alrededor de 24.

A continuación, se informa de la arquitectura del modelo de mejor rendimiento.

Podemos ver un modelo con dos capas ocultas con activación ReLU.

Más lecturas

Esta sección proporciona más recursos sobre el tema si desea profundizar en él.

Resumen

En este tutorial, descubriste cómo usar AutoKeras para encontrar buenos modelos de redes neuronales para tareas de clasificación y regresión.

Específicamente, aprendiste:

  • AutoKeras es una implementación de AutoML para el aprendizaje profundo que utiliza la búsqueda de la arquitectura neural.
  • Cómo usar el AutoKeras para encontrar un modelo de alto rendimiento para un conjunto de datos de clasificación binaria.
  • Cómo usar el AutoKeras para encontrar un modelo de alto rendimiento para un conjunto de datos de regresión.

¿Tiene alguna pregunta?
Haga sus preguntas en los comentarios de abajo y haré lo posible por responder.

Desarrollar proyectos de aprendizaje profundo con Python!

Aprendizaje profundo con Python

¿Qué pasaría si pudieras desarrollar una red en minutos

…con sólo unas pocas líneas de Python…

Descubre cómo en mi nuevo Ebook:
Aprendizaje profundo con Python

Cubre proyectos integrales en temas como:
Percepciones multicapas, Redes convolucionales y Redes neuronales recurrentesy más…

Por fin traer el aprendizaje profundo a
Sus propios proyectos

Sáltese los académicos. Sólo los resultados.

Ver lo que hay dentro