Découvrir les fonctions d'activation

Introduction au Deep Learning avec PyTorch

Jasmin Ludolf

Senior Data Science Content Developer, DataCamp

Fonctions d'activation

$$

  • Les fonctions d'activation ajoutent de la non-linéarité au réseau
    • Sigmoïde pour la classification binaire
    • Softmax pour la classification multi-classe
  • Avec la non-linéarité, un réseau apprend des relations plus complexes
  • La sortie « pré‑activation » est transmise à la fonction d'activation

Schéma d'un réseau de neurones avec couches linéaires et fonction d'activation

Introduction au Deep Learning avec PyTorch

Découvrir la fonction sigmoïde

Schéma d'une partie d'un réseau de neurones avec entrée, couches linéaires et fonction d'activation

  • Mammifère ou non ?

Une illustration d'un lémurien

Introduction au Deep Learning avec PyTorch

Découvrir la fonction sigmoïde

Schéma d'une partie d'un réseau de neurones avec entrées et couches linéaires

  • Mammifère ou non ?

Une illustration d'un lémurien

  • Entrée :
    • Membres : 4
    • Œufs : 0
    • Poils : 1
Introduction au Deep Learning avec PyTorch

Découvrir la fonction sigmoïde

Schéma d'une partie d'un réseau de neurones avec entrées et le nombre 6 en sortie vers les couches linéaires

  • Mammifère ou non ?

Une illustration d'un lémurien

  • La sortie vers les couches linéaires est 6
Introduction au Deep Learning avec PyTorch

Découvrir la fonction sigmoïde

Schéma d'une partie d'un réseau de neurones avec entrées, le nombre 6 en sortie vers les couches linéaires, et une fonction d'activation sigmoïde

  • Mammifère ou non ?

Une illustration d'un lémurien

  • On prend la sortie pré‑activation (6) et on la transmet à la sigmoïde
Introduction au Deep Learning avec PyTorch

Découvrir la fonction sigmoïde

Schéma d'une partie d'un réseau de neurones avec entrées, le nombre 6 en sortie vers les couches linéaires, une sigmoïde et une sortie

  • Mammifère ou non ?

Une illustration d'un lémurien

  • On prend la sortie pré‑activation (6) et on la transmet à la sigmoïde
  • On obtient une valeur entre 0 et 1

  • Si la sortie > 0,5, étiquette = 1 (mammifère)

  • Si la sortie ≤ 0,5, étiquette = 0 (non mammifère)
Introduction au Deep Learning avec PyTorch

Découvrir la fonction sigmoïde

import torch
import torch.nn as nn

input_tensor = torch.tensor([[6]])
sigmoid = nn.Sigmoid()

output = sigmoid(input_tensor) print(output)
tensor([[0.9975]])
Introduction au Deep Learning avec PyTorch

Activation comme dernière couche

model = nn.Sequential(
  nn.Linear(6, 4), # Première couche linéaire
  nn.Linear(4, 1), # Deuxième couche linéaire
  nn.Sigmoid() # Fonction d'activation sigmoïde
)

La sigmoïde en dernière étape d'un réseau de couches linéaires est équivalente à la régression logistique traditionnelle

Introduction au Deep Learning avec PyTorch

Se familiariser avec softmax

  • Trois classes :
Introduction au Deep Learning avec PyTorch

Se familiariser avec softmax

  • Trois classes :

Un lémurien avec l'option « bird »

Introduction au Deep Learning avec PyTorch

Se familiariser avec softmax

  • Trois classes :

Un lémurien avec les options « bird » et mammifère

Introduction au Deep Learning avec PyTorch

Se familiariser avec softmax

  • Trois classes :

Un lémurien avec trois options : bird, mammifère ou reptile

Introduction au Deep Learning avec PyTorch

Se familiariser avec softmax

Schéma d'une partie d'un réseau de neurones avec entrées

  • Prend une entrée tridimensionnelle et retourne une sortie de même forme
Introduction au Deep Learning avec PyTorch

Se familiariser avec softmax

Schéma d'une partie d'un réseau de neurones avec entrées, un vecteur en sortie vers les couches linéaires, une activation softmax et une sortie

  • Prend une entrée tridimensionnelle et retourne une sortie de même forme
  • Produit une distribution de probabilités :
    • Chaque élément est une probabilité (bornée entre 0 et 1)
    • La somme du vecteur de sortie est égale à 1
Introduction au Deep Learning avec PyTorch

Se familiariser avec softmax

Schéma d'une partie d'un réseau de neurones avec entrées, un vecteur en sortie vers les couches linéaires, une activation softmax et une sortie

  • Prend une entrée tridimensionnelle et retourne une sortie de même forme
  • Produit une distribution de probabilités :
    • Chaque élément est une probabilité (bornée entre 0 et 1)
    • La somme du vecteur de sortie est égale à 1
Introduction au Deep Learning avec PyTorch

Se familiariser avec softmax

import torch
import torch.nn as nn

# Create an input tensor
input_tensor = torch.tensor(
    [[4.3, 6.1, 2.3]])

# Apply softmax along the last dimension

probabilities = nn.Softmax(dim=-1) output_tensor = probabilities(input_tensor) print(output_tensor)
tensor([[0.1392, 0.8420, 0.0188]])
  • dim = -1 indique que softmax est appliquée à la dernière dimension du tenseur d'entrée
  • nn.Softmax() peut être utilisée comme dernière étape dans nn.Sequential()
Introduction au Deep Learning avec PyTorch

Passons à la pratique !

Introduction au Deep Learning avec PyTorch

Preparing Video For Download...