Objevování aktivačních funkcí

Introduction to Deep Learning with PyTorch

Jasmin Ludolf

Senior Data Science Content Developer, DataCamp

Aktivační funkce

$$

  • Aktivační funkce přidávají do sítě nelinearitu
    • Sigmoid pro binární klasifikaci
    • Softmax pro vícetřídní klasifikaci
  • Nelinearita umožňuje učit se složitější vztahy
  • „Předaktivační" výstup je předán aktivační funkci

Diagram neuronové sítě s lineárními vrstvami a aktivační funkcí

Introduction to Deep Learning with PyTorch

Seznámení se sigmoidou

Diagram části neuronové sítě se vstupem, lineárními vrstvami a aktivační funkcí

  • Savec, nebo ne?

Ilustrace lemurea

Introduction to Deep Learning with PyTorch

Seznámení se sigmoidou

Diagram části neuronové sítě se vstupy a lineárními vrstvami

  • Savec, nebo ne?

Ilustrace lemurea

  • Vstup:
    • Končetiny: 4
    • Vejce: 0
    • Srst: 1
Introduction to Deep Learning with PyTorch

Seznámení se sigmoidou

Diagram části neuronové sítě se vstupy a číslem 6 jako výstupem lineárních vrstev

  • Savec, nebo ne?

Ilustrace lemurea

  • Výstup lineárních vrstev je 6
Introduction to Deep Learning with PyTorch

Seznámení se sigmoidou

Diagram části neuronové sítě se vstupy, číslem 6 jako výstupem lineárních vrstev a sigmoidální aktivační funkcí

  • Savec, nebo ne?

Ilustrace lemurea

  • Předaktivační výstup (6) předáme sigmoidální funkci
Introduction to Deep Learning with PyTorch

Seznámení se sigmoidou

Diagram části neuronové sítě se vstupy, číslem 6 jako výstupem lineárních vrstev, sigmoidální aktivační funkcí a výstupem

  • Savec, nebo ne?

Ilustrace lemurea

  • Předaktivační výstup (6) předáme sigmoidální funkci
  • Získáme hodnotu mezi 0 a 1

  • Pokud výstup > 0,5, třída = 1 (savec)

  • Pokud výstup <= 0,5, třída = 0 (není savec)
Introduction to Deep Learning with PyTorch

Seznámení se sigmoidou

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 to Deep Learning with PyTorch

Aktivace jako poslední vrstva

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

Sigmoid jako poslední krok v síti lineárních vrstev je ekvivalentní tradiční logistické regresi

Introduction to Deep Learning with PyTorch

Seznámení se softmaxem

  • Tři třídy:
Introduction to Deep Learning with PyTorch

Seznámení se softmaxem

  • Tři třídy:

Lemur s možností „pták"

Introduction to Deep Learning with PyTorch

Seznámení se softmaxem

  • Tři třídy:

Lemur s možnostmi „pták" a savec

Introduction to Deep Learning with PyTorch

Seznámení se softmaxem

  • Tři třídy:

Lemur se třemi možnostmi: pták, savec nebo plaz

Introduction to Deep Learning with PyTorch

Seznámení se softmaxem

Diagram části neuronové sítě se vstupy

  • Přijímá třídimenzionální vstup a vrací výstup stejného tvaru
Introduction to Deep Learning with PyTorch

Seznámení se softmaxem

Diagram části neuronové sítě se vstupy, vektorem jako výstupem lineárních vrstev, softmaxovou aktivační funkcí a výstupem

  • Přijímá třídimenzionální vstup a vrací výstup stejného tvaru
  • Vrací rozdělení pravděpodobnosti:
    • Každý prvek je pravděpodobnost (hodnota mezi 0 a 1)
    • Součet výstupního vektoru se rovná 1
Introduction to Deep Learning with PyTorch

Seznámení se softmaxem

Diagram části neuronové sítě se vstupy, vektorem jako výstupem lineárních vrstev, softmaxovou aktivační funkcí a výstupem

  • Přijímá třídimenzionální vstup a vrací výstup stejného tvaru
  • Vrací rozdělení pravděpodobnosti:
    • Každý prvek je pravděpodobnost (hodnota mezi 0 a 1)
    • Součet výstupního vektoru se rovná 1
Introduction to Deep Learning with PyTorch

Seznámení se softmaxem

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 označuje, že softmax je aplikován na poslední dimenzi vstupního tenzoru
  • nn.Softmax() lze použít jako poslední krok v nn.Sequential()
Introduction to Deep Learning with PyTorch

Pojďme si procvičit!

Introduction to Deep Learning with PyTorch

Preparing Video For Download...