Lutte contre le surajustement

Introduction au deep learning avec PyTorch

Jasmin Ludolf

Senior Data Science Content Developer, DataCamp

Raisons du surajustement

  • Surajustement : le modèle ne se généralise pas aux données inédites
    • Le modèle mémorise les données d’entraînement
    • Fonctionne bien sur les données d’entraînement, mais mal sur les données de validation.
  • Causes possibles :
Problème Solutions
L’ensemble de données n’est pas suffisamment grand Obtenir plus de données / utiliser l'augmentation des données
Le modèle a une capacité trop élevée Réduction de la taille du modèle / ajout d’une couche d’exclusion
Les poids sont trop importants Décroissance des poids
Introduction au deep learning avec PyTorch

Lutte contre le surajustement

Stratégies :

  • Réduction de la taille du modèle ou ajout d'une couche d'exclusion
  • L'utilisation de la décroissance du poids pour contraindre les paramètres à rester petits
  • Obtenir de nouvelles données ou compléter des données
Introduction au deep learning avec PyTorch

« Régularisation » à l’aide d’une couche d’exclusion

  • Remise à zéro aléatoire 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>)
  • L’exclusion est ajoutée après la fonction d’activation
  • Différents comportements selon la phase : utilisez model.train() pour l’entraînement, model.eval() pour l’évaluation
Introduction au deep learning avec PyTorch

Régularisation avec décroissance des poids

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

  • Contrôlé par le paramètre weight_decay dans l’optimiseur, généralement fixé à une petite valeur (par exemple, 0,0001).
  • La décroissance des poids encourage des poids plus petits en ajoutant une pénalité pendant l’optimisation
  • Permet de réduire le surajustement, de maintenir les poids plus faibles et d’améliorer la généralisation
Introduction au deep learning avec PyTorch

Augmentation des données

exemples d’augmentation des données

Introduction au deep learning avec PyTorch

Passons à la pratique !

Introduction au deep learning avec PyTorch

Preparing Video For Download...