20.6. Construyendo redes neuronales con Keras y TensorFlow: aplicando técnicas de regularización y normalización

Al construir redes neuronales utilizando Keras y TensorFlow, los científicos de datos y los desarrolladores de aprendizaje automático enfrentan desafíos comunes como el sobreajuste, donde el modelo aprende patrones específicos del conjunto de datos de entrenamiento pero no logra generalizar a datos invisibles. Para combatir esto, las técnicas de regularización y normalización son clave. En este capítulo, exploraremos cómo se pueden aplicar estas técnicas para mejorar la generalización de los modelos de redes neuronales.

Comprensión del sobreajuste y el desajuste

Antes de sumergirnos en las técnicas de regularización y normalización, es importante comprender qué son el sobreajuste y el desajuste. El sobreajuste ocurre cuando un modelo es tan complejo que aprende no solo características útiles de los datos de entrenamiento, sino también ruido o fluctuaciones aleatorias. Por otro lado, el desajuste ocurre cuando el modelo es demasiado simple para capturar la estructura subyacente de los datos.

Regularización

La regularización es una técnica para evitar el sobreajuste agregando una penalización a la función de costos del modelo. El objetivo es limitar la complejidad del modelo obligándolo a aprender sólo los patrones más destacados de los datos. Existen diferentes tipos de regularización, como L1 (Lasso), L2 (Ridge) y Elastic Net, que combinan L1 y L2.

  • Regularización L1: Agrega el valor absoluto de los pesos como penalización a la función de costo. Esto puede dar lugar a ponderaciones de valor cero, lo que da como resultado un modelo más disperso.
  • Regularización L2: Agrega el cuadrado de los pesos como penalización a la función de costo. Esto tiende a distribuir la penalización entre todas las ponderaciones, lo que da como resultado ponderaciones más pequeñas, pero rara vez nulas.

En Keras, la regularización se puede agregar fácilmente a las capas de la red neuronal usando los argumentos kernel_regularizer, bias_regularizer y activity_regularizer. Por ejemplo:


de keras.regularizers importan l2

model.add(Denso(unidades=64, kernel_regularizer=l2(0.01)))

Abandono

El abandono es una técnica de regularización en la que, durante el entrenamiento, las unidades aleatorias se ignoran (o se "apagan") en cada paso hacia adelante y hacia atrás. Esto ayuda a evitar que unidades/neuronas específicas se ajusten demasiado al entrenamiento. En Keras, Dropout se agrega como una capa:


desde keras.layers importar Abandono

model.add(Abandono(tasa=0.5))

Normalización por lotes

La normalización por lotes es una técnica para normalizar las activaciones de las capas internas de una red neuronal. Esto ayuda a estabilizar el proceso de aprendizaje y reducir la cantidad de épocas de entrenamiento necesarias para entrenar redes profundas. En Keras, la normalización por lotes se puede aplicar utilizando la capa BatchNormalization:


de keras.layers importar BatchNormalization

model.add(Normalización por lotes())

Aplicación de la regularización y estandarización en la práctica

Al construir un modelo de red neuronal, es común combinar varias técnicas de regularización y normalización para lograr el mejor rendimiento. A continuación se muestra un ejemplo de cómo se puede hacer esto en Keras:


desde keras.models importar secuencial
desde keras.layers importe Denso, Abandono, Normalización por lotes
de keras.regularizers importar l1_l2

# Inicializando el modelo
modelo = Secuencial()

# Agregar la primera capa densa con regularización L1 y L2
model.add(Dense(64, activación='relu', input_shape=(input_shape,),
                kernel_regularizer=l1_l2(l1=0.01, l2=0.01)))
model.add(Normalización por lotes())

# Agregar abandono para regularización adicional
model.add(Abandono(0.5))

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

# Compilando el modelo
model.compile(optimizador='adam', pérdida='categorical_crossentropy', métricas=['exactitud'])

Este ejemplo muestra un modelo que utiliza la regularización L1 y L2 en la primera capa densa, seguida de la normalización por lotes y de abandono. La capa de salida utiliza la función de activación softmax, adecuada para problemas de clasificación de clases múltiples.

Consideraciones finales

Al aplicar la regularización y la normalización, es importante monitorear tanto el rendimiento del modelo en el conjunto de entrenamiento como en el conjunto de validación. Esto le ayudará a identificar si el modelo está empezando a ajustarse demasiado o mal y le permitirá ajustar las técnicas de regularización y normalización según sea necesario. Además, se recomienda experimentar con diferentes configuraciones e hiperparámetros para encontrar la combinación ideal para su caso específico.

En resumen, construir redes neuronales efectivas con Keras y TensorFlow implica nNo se trata solo de la selección de la arquitectura y los hiperparámetros apropiados, sino también de la aplicación cuidadosa de técnicas de regularización y normalización para garantizar que el modelo se generalice bien a nuevos datos.

Ahora responde el ejercicio sobre el contenido:

¿Cuál de las siguientes afirmaciones sobre técnicas de regularización y normalización en redes neuronales es cierta, según el texto?

¡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: uso de funciones de activación e inicializadores de peso

Siguiente página del libro electrónico gratuito:

74Construcción de redes neuronales con Keras y TensorFlow: uso de funciones de activación e inicializadores de peso

4 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.