Améliorer la performance du modèle

Introduction au Deep Learning avec PyTorch

Jasmin Ludolf

Senior Data Science Content Developer, DataCamp

Étapes pour maximiser la performance

$$

  • Peut-on résoudre le problème ?

  • Établir une base de performance

$$

  • Accroître la performance sur l'ensemble de validation

$$ $$

  • Atteindre la meilleure performance possible

Étape 1

Étape 2

Étape 3

Introduction au Deep Learning avec PyTorch

Étape 1 : surajuster l'ensemble d'entraînement

  • Modifier la boucle d'entraînement pour surajuster à un seul point de données

    features, labels = next(iter(dataloader))
    for i in range(1000):
      outputs = model(features)
      loss = criterion(outputs, labels)
      optimizer.zero_grad()
      loss.backward()
      optimizer.step()
    
    • Devrait atteindre une exactitude de 1,0 et une perte de 0
  • Puis passer à l'ensemble d'entraînement complet

    • Conserver les hyperparamètres par défaut
Introduction au Deep Learning avec PyTorch

Étape 2 : réduire le surajustement

  • Objectif : maximiser l'exactitude de validation

  • Expérimenter avec :

    • Abandon (dropout)
    • Augmentation des données
    • Déclin du poids (weight decay)
    • Réduire la capacité du modèle

$$

  • Consigner chaque hyperparamètre et l'exactitude de validation

surajustement

Introduction au Deep Learning avec PyTorch

Étape 2 : réduire le surajustement

$$

Modèle initial surajustant les données d'entraînement performances initiales

$$

Modèle mis à jour avec trop de régularisation trop de régularisation

Introduction au Deep Learning avec PyTorch

Étape 3 : peaufiner les hyperparamètres

  • Recherche exhaustive (grid search)
for factor in range(2, 6):
    lr = 10 ** -factor

recherche par grille

  • Recherche aléatoire
factor = np.random.uniform(2, 6)
lr = 10 ** -factor

recherche aléatoire

Introduction au Deep Learning avec PyTorch

Passons à la pratique !

Introduction au Deep Learning avec PyTorch

Preparing Video For Download...