Regularización Avanzada
La regularización es esencial para evitar el overfitting en redes neuronales profundas. En esta guía aprenderás las técnicas avanzadas más utilizadas en la industria: Dropout, L1/L2, Early Stopping y Data Augmentation.
Tabla de contenidos
- Qué es la regularización
- Dropout
- Regularización L1 y L2
- Early Stopping
- Data Augmentation
- Ejemplo con Keras
- Ejercicios
1. Qué es la regularización
La regularización reduce la complejidad del modelo para evitar que memorice los datos y mejorar su capacidad de generalización.
- Evita overfitting
- Mejora estabilidad
- Reduce varianza
2. Dropout
Dropout desactiva aleatoriamente neuronas durante el entrenamiento.
layers.Dropout(0.5)
- Evita dependencia excesiva de neuronas
- Reduce overfitting
- Muy usado en redes densas y CNN
3. Regularización L1 y L2
L1 y L2 penalizan pesos grandes para evitar modelos demasiado complejos.
layers.Dense(64, kernel_regularizer=tf.keras.regularizers.L2(0.01))
- L1 → promueve sparsity
- L2 → estabiliza pesos
4. Early Stopping
Early Stopping detiene el entrenamiento cuando el modelo deja de mejorar.
callback = tf.keras.callbacks.EarlyStopping(
monitor='val_loss',
patience=5,
restore_best_weights=True
)
5. Data Augmentation
Data Augmentation genera variaciones de los datos para mejorar la generalización.
data = tf.keras.preprocessing.image.ImageDataGenerator(
rotation_range=20,
zoom_range=0.2,
horizontal_flip=True
)
- Evita overfitting
- Aumenta tamaño del dataset
- Mejora robustez del modelo
6. Ejemplo con Keras
model = tf.keras.Sequential([
layers.Dense(128, activation='relu'),
layers.Dropout(0.5),
layers.Dense(64, activation='relu',
kernel_regularizer=tf.keras.regularizers.L2(0.01)),
layers.Dense(10, activation='softmax')
])
model.compile(optimizer='adam', loss='categorical_crossentropy')
model.fit(
X_train, y_train,
epochs=30,
validation_split=0.2,
callbacks=[callback]
)
7. Ejercicios
- Define qué es la regularización.
- Explica cómo funciona Dropout.
- ¿Qué diferencia hay entre L1 y L2?
- ¿Qué hace Early Stopping?
- Menciona un ejemplo de Data Augmentation.
# pista dropout
"Desactiva neuronas aleatoriamente."
# pista early stopping
"Detiene entrenamiento cuando no mejora."