20.8 Construcción de redes neuronales con Keras y TensorFlow: compilación y entrenamiento de modelos de aprendizaje profundo

El avance de la inteligencia artificial en los últimos años se ha visto impulsado significativamente por el desarrollo de redes neuronales profundas (aprendizaje profundo). Python se ha consolidado como el lenguaje de programación líder para construir y entrenar estos modelos, gracias a bibliotecas como Keras y TensorFlow. En este capítulo, exploraremos el proceso de compilación y entrenamiento de modelos de aprendizaje profundo utilizando estas poderosas herramientas.

Introducción a Keras y TensorFlow

Keras es una API de alto nivel para crear y entrenar redes neuronales, que se ejecuta sobre marcos de trabajo de bajo nivel como TensorFlow, Theano o CNTK. TensorFlow, a su vez, es una biblioteca de código abierto para computación numérica y aprendizaje automático desarrollada por Google Brain Team.

La combinación de Keras y TensorFlow proporciona una plataforma potente y flexible para crear modelos de aprendizaje profundo, lo que permite a los desarrolladores crear redes neuronales complejas de forma más fácil y rápida.

Construyendo una red neuronal con Keras

Para construir una red neuronal en Keras, comenzamos definiendo la arquitectura del modelo. Esto implica especificar el número de capas, el número de neuronas en cada capa y las funciones de activación que se utilizarán. Keras ofrece dos formas de definir un modelo: utilizando la API Sequential para redes con una secuencia lineal de capas, o la API Funcional para arquitecturas más complejas y flexibles.


desde keras.models importar secuencial
de keras.layers importar Denso

# Inicializando el modelo secuencial
modelo = Secuencial()

# Agregar la capa de entrada y la primera capa oculta
model.add(Denso(unidades=64, activación='relu', input_shape=(input_size,)))

# Agregar la capa de salida
model.add(Dense(units=num_classes, activación='softmax'))

Recopilación de modelos

Después de definir la arquitectura del modelo, el siguiente paso es compilar el modelo. La compilación es el proceso donde se configura el modelo para el entrenamiento. Aquí especificamos la función de pérdida, el optimizador y las métricas que queremos rastrear durante el entrenamiento.


model.compile(loss='categorical_crossentropy',
              optimizador = 'adam',
              métricas = ['precisión'])

La función de pérdida determina cómo el modelo medirá su rendimiento en los datos de entrenamiento. El optimizador es el algoritmo que actualizará los pesos de la red durante el entrenamiento. La métrica de "precisión" se utiliza habitualmente para problemas de clasificación.

Entrenamiento de modelos

Entrenar una red neuronal implica alimentar los datos de entrada del modelo y permitirle ajustar sus pesos para minimizar la función de pérdida. En Keras, esto se hace mediante el método fit.


historia = modelo.fit(x_train, y_train,
                    tamaño_lote = 32,
                    épocas = 10,
                    datos_validación=(x_val, y_val))

El método fit recibe los datos de entrenamiento (x_train, y_train), el tamaño del lote (batch_size), el número de épocas (epochs) y, opcionalmente, datos de validación. Una época es una iteración sobre el conjunto de datos completo. El historial de entrenamiento, devuelto por el método fit, contiene información sobre la función de pérdida y las métricas de rendimiento en todas las épocas.

Evaluación y Predicción

Después del entrenamiento, evaluamos el rendimiento del modelo en los datos de prueba.


pérdida, precisión = model.evaluate(x_test, y_test)
print(f'Precisión de la prueba: {precisión}')

Para hacer predicciones con el modelo entrenado, utilizamos el método predict.


predicciones = modelo.predict(x_test)

Ajuste y regularización

Para mejorar el rendimiento del modelo, podemos ajustar su arquitectura o sus parámetros de entrenamiento. Se puede agregar regularización, como la regularización de abandono y L1/L2, para evitar el sobreajuste, que ocurre cuando el modelo se sobreajusta a los datos de entrenamiento y no se generaliza bien a los datos nuevos.


desde keras.layers importar Abandono
de regularizadores de importación de keras

# Agregar regularización de abandono y L2 a la capa oculta
model.add(Dense(64, activación='relu', kernel_regularizer=regularizers.l2(0.01)))
model.add(Abandono(0.5))

Optimización de hiperparámetros

La elección de hiperparámetros, como la tasa de aprendizaje del optimizador y el tamaño del lote, puede tener un gran impacto en el entrenamiento y el rendimiento del modelo. El uso de técnicas de optimización de hiperparámetros, como la búsqueda en cuadrícula o la búsqueda aleatoria, puede ayudar a encontrar la mejor configuración.

Conclusión

Cree y entrene modelos de aprendizaje profundo con Kerasy TensorFlow es un proceso iterativo que implica definir la arquitectura del modelo, compilar, entrenar, evaluar y optimizar. Al dominar estos pasos, los desarrolladores pueden crear potentes redes neuronales capaces de resolver una amplia gama de problemas complejos de aprendizaje automático.

Con práctica y experiencia, puedes modificar y mejorar tus modelos para lograr un rendimiento aún mayor. El poder de Keras y TensorFlow reside en su flexibilidad y facilidad de uso, lo que hace que el aprendizaje profundo sea accesible a un público más amplio.

Ahora responde el ejercicio sobre el contenido:

¿Cuál de las siguientes afirmaciones sobre la creación y el entrenamiento de modelos de aprendizaje profundo con Keras y TensorFlow es correcta?

¡Tienes razón! Felicitaciones, ahora pasa a la página siguiente.

¡Tú error! Inténtalo de nuevo.

Imagen del artículo Construcción de redes neuronales con Keras y TensorFlow: evaluación y optimización del rendimiento del modelo

Siguiente página del libro electrónico gratuito:

76Construcción de redes neuronales con Keras y TensorFlow: evaluación y optimización del rendimiento del modelo

5 minutos

¡Obtén tu certificado para este curso gratis! descargando la aplicación Cursa y leyendo el libro electrónico allí. ¡Disponible en Google Play o App Store!

Disponible en Google Play Disponible en App Store

+ 6,5 millones
estudiantes

Certificado gratuito y
válido con código QR

48 mil ejercicios
gratis

Calificación de 4.8/5
en tiendas de aplicaciones

Cursos gratuitos de
vídeo, audio y texto.