Lucha contra el sobreajuste

Introducción al aprendizaje profundo con PyTorch

Jasmin Ludolf

Senior Data Science Content Developer, DataCamp

Razones del sobreajuste

  • Sobreajuste: el modelo no se generaliza a los datos no vistos
    • El modelo memoriza los datos de entrenamiento
    • Funciona bien con los datos de entrenamiento, pero mal con los datos de validación
  • Posibles causas:
Problema Soluciones
El conjunto de datos no es lo suficientemente grande Obtener más datos / utilizar el aumento de datos
El modelo tiene demasiada capacidad Reducir el tamaño del modelo / añadir abandono
Los pesos son demasiado grandes Decaimiento del peso
Introducción al aprendizaje profundo con PyTorch

Lucha contra el sobreajuste

Estrategias de recuperación ante desastres y continuidad del negocio ()

  • Reducir el tamaño del modelo o añadir una capa de abandono
  • Utilizar el decaimiento del peso para forzar que los parámetros permanezcan pequeños
  • Obtención de nuevos datos o ampliación de datos
Introducción al aprendizaje profundo con PyTorch

"Regularización" mediante una capa de abandono

  • Pone a cero aleatoriamente los elementos del tensor de entrada durante el entrenamiento
model = nn.Sequential(nn.Linear(8, 4),
                      nn.ReLU(),
                      nn.Dropout(p=0.5))
features = torch.randn((1, 8))
print(model(features))
tensor([[1.4655, 0.0000, 0.0000, 0.8456]], grad_fn=<MulBackward0>)
  • El abandono se añade después de la función de activación
  • Se comporta de forma diferente en la formación y en la evaluación - utiliza model.train() para la formación y model.eval() para desactivar el abandono durante la evaluación
Introducción al aprendizaje profundo con PyTorch

Regularización con decaimiento del peso

optimizer = optim.SGD(model.parameters(), lr=0.001, weight_decay=0.0001)

  • Controlado por el parámetro weight_decay parámetro del optimizador, normalmente ajustado a un valor pequeño (por ejemplo, 0,0001)
  • El decaimiento del peso fomenta pesos más pequeños añadiendo una penalización durante la optimización
  • Ayuda a reducir el sobreajuste, manteniendo los pesos más pequeños y mejorando la generalización
Introducción al aprendizaje profundo con PyTorch

Aumento de datos

ejemplos de aumento de datos

Introducción al aprendizaje profundo con PyTorch

¡Vamos a practicar!

Introducción al aprendizaje profundo con PyTorch

Preparing Video For Download...