Utforska aktiveringsfunktioner

Introduktion till djupinlärning med PyTorch

Jasmin Ludolf

Senior Data Science Content Developer, DataCamp

Aktiveringsfunktioner

$$

  • Aktiveringsfunktioner tillför icke-linjäritet till nätverket
    • Sigmoid för binär klassificering
    • Softmax för flerklass-klassificering
  • Med icke-linjäritet kan nätverket lära sig komplexa samband
  • "Förhandsaktiverings"-utdata skickas till aktiveringsfunktionen

Diagram över ett neuralt nätverk med linjära lager och en aktiveringsfunktion

Introduktion till djupinlärning med PyTorch

Lär känna sigmoidfunktionen

Diagram över en del av ett neuralt nätverk med indata, linjära lager och aktiveringsfunktion

  • Däggdjur eller inte?

En illustration av en lemur

Introduktion till djupinlärning med PyTorch

Lär känna sigmoidfunktionen

Diagram över en del av ett neuralt nätverk med indata och linjära lager

  • Däggdjur eller inte?

En illustration av en lemur

  • Indata:
    • Lemmar: 4
    • Ägg: 0
    • Hår: 1
Introduktion till djupinlärning med PyTorch

Lär känna sigmoidfunktionen

Diagram över en del av ett neuralt nätverk med indata och siffran 6 som utdata till de linjära lagren

  • Däggdjur eller inte?

En illustration av en lemur

  • Utdata till de linjära lagren är 6
Introduktion till djupinlärning med PyTorch

Lär känna sigmoidfunktionen

Diagram över en del av ett neuralt nätverk med indata, siffran 6 som utdata till de linjära lagren och en sigmoid-aktiveringsfunktion

  • Däggdjur eller inte?

En illustration av en lemur

  • Vi tar förhandsaktiverings-utdatan (6) och skickar den till sigmoidfunktionen
Introduktion till djupinlärning med PyTorch

Lär känna sigmoidfunktionen

Diagram över en del av ett neuralt nätverk med indata, siffran 6 som utdata till de linjära lagren, en sigmoid-aktiveringsfunktion och ett slutresultat

  • Däggdjur eller inte?

En illustration av en lemur

  • Vi tar förhandsaktiverings-utdatan (6) och skickar den till sigmoidfunktionen
  • Ger ett värde mellan 0 och 1

  • Om utdata > 0,5, klassetikett = 1 (däggdjur)

  • Om utdata <= 0,5, klassetikett = 0 (inte däggdjur)
Introduktion till djupinlärning med PyTorch

Lär känna sigmoidfunktionen

import torch
import torch.nn as nn

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

output = sigmoid(input_tensor) print(output)
tensor([[0.9975]])
Introduktion till djupinlärning med PyTorch

Aktivering som sista lager

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

Sigmoid som sista steg i ett nätverk av linjära lager är ekvivalent med traditionell logistisk regression

Introduktion till djupinlärning med PyTorch

Lär känna softmax

  • Tre klasser:
Introduktion till djupinlärning med PyTorch

Lär känna softmax

  • Tre klasser:

En lemur med alternativet "fågel"

Introduktion till djupinlärning med PyTorch

Lär känna softmax

  • Tre klasser:

En lemur med alternativen "fågel" och däggdjur

Introduktion till djupinlärning med PyTorch

Lär känna softmax

  • Tre klasser:

En lemur med tre alternativ: fågel, däggdjur eller reptil

Introduktion till djupinlärning med PyTorch

Lär känna softmax

Diagram över en del av ett neuralt nätverk med indata

  • Tar tredimensionell indata och returnerar samma form
Introduktion till djupinlärning med PyTorch

Lär känna softmax

Diagram över en del av ett neuralt nätverk med indata, en vektor som utdata till de linjära lagren, en softmax-aktiveringsfunktion och ett slutresultat

  • Tar tredimensionell indata och returnerar samma form
  • Returnerar en sannolikhetsfördelning:
    • Varje element är en sannolikhet (begränsad mellan 0 och 1)
    • Summan av utdatavektorn är lika med 1
Introduktion till djupinlärning med PyTorch

Lär känna softmax

Diagram över en del av ett neuralt nätverk med indata, en vektor som utdata till de linjära lagren, en softmax-aktiveringsfunktion och ett slutresultat

  • Tar tredimensionell indata och returnerar samma form
  • Returnerar en sannolikhetsfördelning:
    • Varje element är en sannolikhet (begränsad mellan 0 och 1)
    • Summan av utdatavektorn är lika med 1
Introduktion till djupinlärning med PyTorch

Lär känna 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 anger att softmax tillämpas på indatatensorns sista dimension
  • nn.Softmax() kan användas som sista steg i nn.Sequential()
Introduktion till djupinlärning med PyTorch

Nu kör vi en övning!

Introduktion till djupinlärning med PyTorch

Preparing Video For Download...