Couches cachées et paramètres

Introduction au Deep Learning avec PyTorch

Jasmin Ludolf

Senior Data Science Content Developer, DataCamp

Empiler des 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 à travers les couches linéaires
  • Les couches dans nn.Sequential() sont des couches cachées
Introduction au Deep Learning avec PyTorch

Empiler des 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 à travers les couches linéaires
  • Les couches dans 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

Ajouter des couches

Illustration d'un réseau de neurones avec deux couches cachées

Introduction au Deep Learning avec PyTorch

Ajouter des couches

Illustration d'un réseau de neurones avec quatre couches cachées

Introduction au Deep Learning avec PyTorch

Ajouter des couches

Illustration d'un réseau de neurones avec quatre couches cachées

Introduction au Deep Learning avec PyTorch

Ajouter des couches

Illustration d'un réseau de neurones avec quatre couches cachées

Introduction au Deep Learning avec PyTorch

Ajouter des 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

Ajouter des 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

Ajouter des 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

Ajouter des 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 faites de neurones

$$

  • Entièrement connecté lorsqu'un 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 les reliant

Introduction au Deep Learning avec PyTorch

Les couches sont faites de neurones

$$

  • Entièrement connecté lorsqu'un 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, et un cercle autour d'un neurone de sortie

Introduction au Deep Learning avec PyTorch

Les couches sont faites de neurones

$$

  • Entièrement connecté lorsqu'un 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 avec 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, un cercle autour d'un neurone et des flèches en surbrillance

Introduction au Deep Learning avec PyTorch

Les couches sont faites de neurones

$$

  • Entièrement connecté lorsqu'un 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 avec tous les neurones de la couche précédente
    • Possède N+1 paramètres : N des 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 = capacité du modèle plus élevée

$$

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 = capacité du modèle plus élevée

$$

Bloc de code pour un réseau à deux couches

$$

Calcul manuel des paramètres :

  • La première couche a 4 neurones, chaque neurone a 8+1 paramètres. 9 fois 4 = 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 = capacité du modèle plus élevée

$$

Bloc de code pour un réseau à deux couches

$$

Calcul manuel des paramètres :

  • La première couche a 4 neurones, chaque neurone a 8+1 paramètres. 9 fois 4 = 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 = capacité du modèle plus élevée

$$

Bloc de code pour un réseau à deux couches

$$

Calcul manuel des paramètres :

  • La première couche a 4 neurones, chaque neurone a 8+1 paramètres. 9 fois 4 = 36 paramètres
  • La deuxième couche a 2 neurones, chaque neurone a 4+1 paramètres. 5 fois 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 = capacité du modèle plus élevée

$$

Bloc de code pour un réseau à deux couches

$$

Calcul manuel des paramètres :

  • La première couche a 4 neurones, chaque neurone a 8+1 paramètres. 9 fois 4 = 36 paramètres
  • La deuxième couche a 2 neurones, chaque neurone a 4+1 paramètres. 5 fois 2 = 10 paramètres
  • 36 + 10 = 46 paramètres apprenables
Introduction au Deep Learning avec PyTorch

Paramètres et capacité du modèle

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

$$

Bloc de code pour un réseau à deux couches

$$

Avec PyTorch :

  • .numel() : retourne 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

Équilibrer complexité et efficacité

Équilibre entre complexité et efficacité

Introduction au Deep Learning avec PyTorch

Passons à la pratique !

Introduction au Deep Learning avec PyTorch

Preparing Video For Download...