Logo de CursoIA
CursoIA Curso de Inteligencia Artificial

Regularización y dropout, Unidad 10 — Diagnóstico y ajuste fino, 10.1 — Leer curvas con regularización ·

Señales de exceso

Señales de exceso

Introducción

Cuando entrenamos modelos de aprendizaje profundo, una de las principales preocupaciones es garantizar que nuestro modelo no sobreajuste los datos de entrenamiento. El sobreajuste, o overfitting, ocurre cuando un modelo se ajusta demasiado a los datos de entrenamiento y pierde la capacidad de generalizar a nuevos datos no vistos. Para detectar y mitigar el sobreajuste, es crucial aprender a leer las curvas de rendimiento durante el entrenamiento.

Explicación principal con ejemplos

Visualización de las curvas de loss y accuracy

Una de las formas más efectivas para identificar el sobreajuste es analizar las curvas de loss (perdida) y accuracy (exactitud) tanto en los datos de entrenamiento como en los datos de validación. Veamos un ejemplo concurioso.

import matplotlib.pyplot as plt

def plot_training_curves(history):
    # Gráfico de la pérdida en entrenamiento vs validación
    plt.figure(figsize=(10, 5))
    plt.subplot(1, 2, 1)
    plt.plot(history.history['loss'], label='Train Loss')
    plt.plot(history.history['val_loss'], label='Validation Loss')
    plt.title('Loss Curves')
    plt.xlabel('Epochs')
    plt.ylabel('Loss')
    plt.legend()

    # Gráfico de la exactitud en entrenamiento vs validación
    plt.subplot(1, 2, 2)
    plt.plot(history.history['accuracy'], label='Train Accuracy')
    plt.plot(history.history['val_accuracy'], label='Validation Accuracy')
    plt.title('Accuracy Curves')
    plt.xlabel('Epochs')
    plt.ylabel('Accuracy')
    plt.legend()

    plt.show()

En el gráfico resultante, si observamos que la pérdida en los datos de validación comienza a aumentar mientras que sigue disminuyendo en los datos de entrenamiento, esto es una señal clara de sobreajuste. Además, notaremos que aunque la exactitud en los datos de entrenamiento sigue mejorando, en los datos de validación empieza a deteriorarse.

Errores típicos / trampas

  1. No entender las diferencias entre loss y accuracy:

A veces, el error se comete al interpretar que una disminución constante en la pérdida (loss) implica un mejor modelo. Sin embargo, esto no necesariamente refleja la mejora en la exactitud de predicción.

  1. Ignorar las curvas de validación:

Es común centrarse solo en las curvas de entrenamiento y olvidar las de validación. Recuerda que el objetivo es minimizar tanto la pérdida como la disminución en la exactitud en los datos de validación.

  1. Confundir el sobreajuste con la subajuste:

A veces, se puede confundir una curva de pérdida constante y baja (indicativa de subajuste) con un sobreajuste. Es importante reconocer que tanto bajo rendimiento en entrenamiento como validación es indicativo de un modelo subajustado.

Checklist accionable

  1. Analiza las curvas:

Asegúrate de que la pérdida y la exactitud sigan una tendencia similar tanto en los datos de entrenamiento como en los de validación.

  1. Usa cross-validation:

Implementa validación cruzada para tener una mejor estimación del rendimiento general del modelo en datos no vistos.

  1. Monitoriza la loss y accuracy en validación:

Asegúrate de que el modelo no comience a sobreajustar observando que la pérdida y disminución en exactitud en los datos de validación empeora con el tiempo.

  1. Ajusta parámetros del optimizador:

Experimenta con diferentes tasa de aprendizaje, momentum o otros hiperparámetros del optimizador para mejorar el rendimiento general.

  1. Aplica técnicas de regularización:

Introduce técnicas como L1/L2 regularización o dropout para reducir el sobreajuste y mejorar la generalización.

  1. Aumenta los datos:

Si es posible, aumenta el conjunto de datos de entrenamiento mediante técnicas como data augmentation para mejorar el rendimiento en validación.

  1. Mira las curvas después del regularizador:

Observa si las aplicaciones de regularizadores como L2 o dropout afectan a las curvas de pérdida y exactitud, ya que esto puede indicar su efectividad.

Cierre con "Siguientes pasos"

Siguientes pasos

  • Continúa ajustando hiperparámetros:

Experimenta con diferentes configuraciones para optimizar el rendimiento del modelo.

  • Asegúrate de tener un conjunto de datos suficientemente grande:

Un conjunto de datos más grande puede mejorar la capacidad del modelo de generalizar y reducir el sobreajuste.

  • Monitorea regularmente las curvas durante el entrenamiento:

Mantén una vigilancia constante para asegurarte de que no estás cayendo en el sobreajuste.

Sigue estos pasos y tendrás un mejor entendimiento del sobreajuste, lo que te ayudará a construir modelos más robustos y generalizados.

Contacto

Indica tu objetivo (ChatGPT, RAG, agentes, automatización) y tu stack (web/backend).