Couches cachées et paramètres

Introduction au deep learning avec PyTorch

Jasmin Ludolf

Senior Data Science Content Developer, DataCamp

Empilement de couches avec nn.Sequential()

# Create network with three linear layers
model = nn.Sequential(

nn.Linear(n_features, 8),
nn.Linear(8, 4), nn.Linear(4, n_classes)
)
  • L’entrée passe par les couches linéaires
  • Les couches à l’intérieur de nn.Sequential() sont des couches cachées
Introduction au deep learning avec PyTorch

Empilement de couches avec nn.Sequential()

# Create network with three linear layers
model = nn.Sequential(
    nn.Linear(n_features, 8), # n_features represents number of input features
    nn.Linear(8, 4),
    nn.Linear(4, n_classes) # n_classes represents the number of output classes  
)
  • L’entrée passe par les couches linéaires
  • Les couches à l’intérieur de nn.Sequential() sont des couches cachées
  • n_features et n_classes sont définis par l’ensemble de données
Introduction au deep learning avec PyTorch

Ajout de couches

Illustration d’un réseau neuronal à deux couches cachées

Introduction au deep learning avec PyTorch

Ajout de couches

Illustration d’un réseau neuronal à quatre couches cachées

Introduction au deep learning avec PyTorch

Ajout de couches

Illustration d’un réseau neuronal à quatre couches cachées

Introduction au deep learning avec PyTorch

Ajout de couches

Illustration d’un réseau neuronal à quatre couches cachées

Introduction au deep learning avec PyTorch

Ajout de couches

# Create network with three linear layers
model = nn.Sequential(
    nn.Linear(10, 18),
    nn.Linear(18, 20),
    nn.Linear(20, 5)
)
Introduction au deep learning avec PyTorch

Ajout de couches

# Create network with three linear layers
model = nn.Sequential(
    nn.Linear(10, 18), # Takes 10 features and outputs 18
    nn.Linear(18, 20),
    nn.Linear(20, 5)
)
  • Entrée 10 ➡ sortie 18 ➡ sortie 20 ➡ Sortie 5
Introduction au deep learning avec PyTorch

Ajout de couches

# Create network with three linear layers
model = nn.Sequential(
    nn.Linear(10, 18),
    nn.Linear(18, 20), # Takes 18 and outputs 20
    nn.Linear(20, 5)
)
  • Entrée 10 ➡ sortie 18 ➡ sortie 20 ➡ Sortie 5
Introduction au deep learning avec PyTorch

Ajout de couches

# Create network with three linear layers
model = nn.Sequential(
    nn.Linear(10, 18),
    nn.Linear(18, 20),
    nn.Linear(20, 5) # Takes 20 and outputs 5
)
  • Entrée 10 ➡ sortie 18 ➡ sortie 20 ➡ Sortie 5
Introduction au deep learning avec PyTorch

Les couches sont constituées de neurones

$$

  • Entièrement connectées lorsque chaque neurone est relié à tous les neurones de la couche précédente.

Illustration d’une couche d’entrée et d’une couche de sortie avec des flèches reliant les couches

Introduction au deep learning avec PyTorch

Les couches sont constituées de neurones

$$

  • Entièrement connectées lorsque chaque neurone est relié à tous les neurones de la couche précédente.

$$

  • Un neurone dans une couche linéaire :

Illustration d’une couche d’entrée et d’une couche de sortie avec des flèches reliant les couches et un cercle autour d’un neurone de sortie

Introduction au deep learning avec PyTorch

Les couches sont constituées de neurones

$$

  • Entièrement connectées lorsque chaque neurone est relié à tous les neurones de la couche précédente.

$$

  • Un neurone dans une couche linéaire :
    • Effectue une opération linéaire en utilisant tous les neurones de la couche précédente

Illustration d’une couche d’entrée et d’une couche de sortie avec des flèches reliant les couches, un cercle autour d’un neurone de sortie et des flèches en surbrillance

Introduction au deep learning avec PyTorch

Les couches sont constituées de neurones

$$

  • Entièrement connectées lorsque chaque neurone est relié à tous les neurones de la couche précédente.

$$

  • Un neurone dans une couche linéaire :
    • Effectue une opération linéaire en utilisant tous les neurones de la couche précédente
    • Possède N+1 paramètres : N pour les entrées et 1 pour le biais

N+1

Introduction au deep learning avec PyTorch

Paramètres et capacité du modèle

  • Plus de couches cachées = plus de paramètres = plus grande capacité du modèle

$$

Bloc de code pour un réseau à deux couches

Introduction au deep learning avec PyTorch

Paramètres et capacité du modèle

  • Plus de couches cachées = plus de paramètres = plus grande capacité du modèle

$$

Bloc de code pour un réseau à deux couches

$$

Calcul manuel des paramètres :

  • La première couche comporte 4 neurones, chaque neurone ayant 8+1 paramètres. 9x4 = 36 paramètres
Introduction au deep learning avec PyTorch

Paramètres et capacité du modèle

  • Plus de couches cachées = plus de paramètres = plus grande capacité du modèle

$$

Bloc de code pour un réseau à deux couches

$$

Calcul manuel des paramètres :

  • La première couche comporte 4 neurones, chaque neurone ayant 8+1 paramètres. 9x4 = 36 paramètres
Introduction au deep learning avec PyTorch

Paramètres et capacité du modèle

  • Plus de couches cachées = plus de paramètres = plus grande capacité du modèle

$$

Bloc de code pour un réseau à deux couches

$$

Calcul manuel des paramètres :

  • La première couche comporte 4 neurones, chaque neurone ayant 8+1 paramètres. 9x4 = 36 paramètres
  • La deuxième couche comporte 2 neurones, chaque neurone ayant 4+1 paramètres. 5 x 2 = 10 paramètres
Introduction au deep learning avec PyTorch

Paramètres et capacité du modèle

  • Plus de couches cachées = plus de paramètres = plus grande capacité du modèle

$$

Bloc de code pour un réseau à deux couches

$$

Calcul manuel des paramètres :

  • La première couche comporte 4 neurones, chaque neurone ayant 8+1 paramètres. 9x4 = 36 paramètres
  • La deuxième couche comporte 2 neurones, chaque neurone ayant 4+1 paramètres. 5 x 2 = 10 paramètres
  • 36 + 10 = 46 paramètres pouvant être appris
Introduction au deep learning avec PyTorch

Paramètres et capacité du modèle

  • Plus de couches cachées = plus de paramètres = plus grande capacité du modèle

$$

Bloc de code pour un réseau à deux couches

$$

Utilisation de PyTorch :

  • .numel(): renvoie le nombre d’éléments dans le tenseur
total = 0
for parameter in model.parameters():
    total += parameter.numel()
print(total)
46
Introduction au deep learning avec PyTorch

Trouver l’équilibre entre complexité et efficacité

Equilibre entre complexité et efficacité

Introduction au deep learning avec PyTorch

Passons à la pratique !

Introduction au deep learning avec PyTorch

Preparing Video For Download...