Tamaño de lote y normalización por lotes

Introducción al Deep Learning con Keras

Miguel Esteban

Data Scientist & Founder

Introducción al Deep Learning con Keras

Introducción al Deep Learning con Keras

Mini-lotes

Ventajas

  • Las redes entrenan más rápido (más actualizaciones de pesos en el mismo tiempo)
  • Requiere menos RAM; permite entrenar con conjuntos de datos enormes
  • El ruido puede ayudar a alcanzar menor error, escapando de mínimos locales

Desventajas

  • Hay que ejecutar más iteraciones
  • Requiere ajuste: hay que encontrar un buen tamaño de lote
Introducción al Deep Learning con Keras

1 Stack Exchange
Introducción al Deep Learning con Keras

Tamaño de lote en Keras

# Ajustar un modelo ya construido y compilado
model.fit(X_train, y_train, epochs=100, batch_size=128)
                                        ^^^^^^^^^^^^^^

Introducción al Deep Learning con Keras

Introducción al Deep Learning con Keras

Introducción al Deep Learning con Keras

Introducción al Deep Learning con Keras

Ventajas de la batch normalization

  • Mejora el flujo del gradiente
  • Permite tasas de aprendizaje más altas
  • Reduce la dependencia de la inicialización de pesos
  • Actúa como regularización no intencionada
  • Limita el desplazamiento interno de covariables
Introducción al Deep Learning con Keras

Batch normalization en Keras

# Importa BatchNormalization desde keras.layers
from tensorflow.keras.layers import BatchNormalization

# Instancia un modelo Sequential model = Sequential()
# Añade una capa de entrada model.add(Dense(3, input_shape=(2,), activation = 'relu'))
# Añade batch normalization a las salidas de la capa anterior model.add(BatchNormalization())
# Añade una capa de salida model.add(Dense(1, activation='sigmoid'))
Introducción al Deep Learning con Keras

¡Vamos a practicar!

Introducción al Deep Learning con Keras

Preparing Video For Download...