Lutter contre le surapprentissage

Introduction au Deep Learning avec PyTorch

Jasmin Ludolf

Senior Data Science Content Developer, DataCamp

Causes du surapprentissage

  • Surapprentissage : le modèle ne généralise pas à des données inédites
    • Le modèle mémorise les données d'entraînement
    • Bon sur les données d'entraînement, faible sur les données de validation
  • Causes possibles :
Problème Solutions
Jeu de données trop petit Obtenir plus de données / augmenter les données
Modèle trop capacitaire Réduire la taille / ajouter du dropout
Poids trop grands Weight decay
Introduction au Deep Learning avec PyTorch

Lutter contre le surapprentissage

Stratégies :

  • Réduire la taille du modèle ou ajouter une couche de dropout
  • Utiliser le weight decay pour forcer de petits paramètres
  • Obtenir de nouvelles données ou augmenter les données
Introduction au Deep Learning avec PyTorch

« Regularization » avec une couche de dropout

  • Met aléatoirement à zéro des éléments du tenseur d'entrée pendant l'entraînement
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>)
  • Le dropout s'ajoute après la fonction d'activation
  • Comporte différemment à l'entraînement vs. à l'évaluation — utilisez model.train() pour entraîner et model.eval() pour désactiver le dropout à l'évaluation
Introduction au Deep Learning avec PyTorch

Régularisation avec le weight decay

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

  • Contrôlé par le paramètre weight_decay de l'optimiseur, généralement une petite valeur (p. ex. 0.0001)
  • Le weight decay favorise de plus petits poids en ajoutant une pénalité durant l'optimisation
  • Aide à réduire le surapprentissage, garde des poids plus petits et améliore la généralisation
Introduction au Deep Learning avec PyTorch

Augmentation de données

exemples d'augmentation de données

Introduction au Deep Learning avec PyTorch

Passons à la pratique !

Introduction au Deep Learning avec PyTorch

Preparing Video For Download...