Activatiefuncties ontdekken

Introductie tot Deep Learning met PyTorch

Jasmin Ludolf

Senior Data Science Content Developer, DataCamp

Activatiefuncties

$$

  • Activatiefuncties voegen niet-lineariteit toe aan het netwerk
    • Sigmoid voor binaire classificatie
    • Softmax voor multi-classclassificatie
  • Met niet-lineariteit leert een netwerk complexere relaties
  • "Pre-activatie"-output gaat naar de activatiefunctie

Diagram van een neuraal netwerk met lineaire lagen en een activatiefunctie

Introductie tot Deep Learning met PyTorch

Maak kennis met de sigmoidfunctie

Diagram van een deel van een neuraal netwerk met input, lineaire lagen en activatiefunctie

  • Zoogdier of niet?

Een illustratie van een maki

Introductie tot Deep Learning met PyTorch

Maak kennis met de sigmoidfunctie

Diagram van een deel van een neuraal netwerk met inputs en lineaire lagen

  • Zoogdier of niet?

Een illustratie van een maki

  • Input:
    • Ledematen: 4
    • Eieren: 0
    • Haar: 1
Introductie tot Deep Learning met PyTorch

Maak kennis met de sigmoidfunctie

Diagram van een deel van een neuraal netwerk met inputs en het getal 6 als output naar de lineaire lagen

  • Zoogdier of niet?

Een illustratie van een maki

  • Output naar de lineaire lagen is 6
Introductie tot Deep Learning met PyTorch

Maak kennis met de sigmoidfunctie

Diagram van een deel van een neuraal netwerk met inputs, het getal 6 als output naar de lineaire lagen, en een sigmoid-activatiefunctie

  • Zoogdier of niet?

Een illustratie van een maki

  • We nemen de pre-activatie-output (6) en voeren die door de sigmoidfunctie
Introductie tot Deep Learning met PyTorch

Maak kennis met de sigmoidfunctie

Diagram van een deel van een neuraal netwerk met inputs, het getal 6 als output naar de lineaire lagen, een sigmoid-activatiefunctie en een output

  • Zoogdier of niet?

Een illustratie van een maki

  • We nemen de pre-activatie-output (6) en voeren die door de sigmoidfunctie
  • Geeft een waarde tussen 0 en 1

  • Als output > 0,5, klasselabel = 1 (zoogdier)

  • Als output <= 0,5, klasselabel = 0 (geen zoogdier)
Introductie tot Deep Learning met PyTorch

Maak kennis met de sigmoidfunctie

import torch
import torch.nn as nn

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

output = sigmoid(input_tensor) print(output)
tensor([[0.9975]])
Introductie tot Deep Learning met PyTorch

Activatie als laatste laag

model = nn.Sequential(
  nn.Linear(6, 4), # First linear layer
  nn.Linear(4, 1), # Second linear layer
  nn.Sigmoid() # Sigmoid activation function
)

Sigmoid als laatste stap in een netwerk van lineaire lagen is gelijkwaardig aan traditionele logistische regressie

Introductie tot Deep Learning met PyTorch

Kennismaken met softmax

  • Drie klassen:
Introductie tot Deep Learning met PyTorch

Kennismaken met softmax

  • Drie klassen:

Een maki met de optie "vogel"

Introductie tot Deep Learning met PyTorch

Kennismaken met softmax

  • Drie klassen:

Een maki met de opties "vogel" en zoogdier

Introductie tot Deep Learning met PyTorch

Kennismaken met softmax

  • Drie klassen:

Een maki met drie opties: vogel, zoogdier of reptiel

Introductie tot Deep Learning met PyTorch

Kennismaken met softmax

Diagram van een deel van een neuraal netwerk met inputs

  • Neemt een driedimensionale input en geeft dezelfde vorm terug
Introductie tot Deep Learning met PyTorch

Kennismaken met softmax

Diagram van een deel van een neuraal netwerk met inputs, een vector als output naar de lineaire lagen, een softmax-activatiefunctie en een output

  • Neemt een driedimensionale input en geeft dezelfde vorm terug
  • Geeft een kansverdeling:
    • Elk element is een kans (tussen 0 en 1)
    • De som van de outputvector is gelijk aan 1
Introductie tot Deep Learning met PyTorch

Kennismaken met softmax

Diagram van een deel van een neuraal netwerk met inputs, een vector als output naar de lineaire lagen, een softmax-activatiefunctie en een output

  • Neemt een driedimensionale input en geeft dezelfde vorm terug
  • Geeft een kansverdeling:
    • Elk element is een kans (tussen 0 en 1)
    • De som van de outputvector is gelijk aan 1
Introductie tot Deep Learning met PyTorch

Kennismaken met 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 geeft aan dat softmax wordt toegepast op de laatste dimensie van de input-tensor
  • nn.Softmax() kan als laatste stap in nn.Sequential()
Introductie tot Deep Learning met PyTorch

Laten we oefenen!

Introductie tot Deep Learning met PyTorch

Preparing Video For Download...