Descoperirea funcțiilor de activare

Introducere în Deep Learning cu PyTorch

Jasmin Ludolf

Senior Data Science Content Developer, DataCamp

Funcții de activare

$$

  • Funcțiile de activare adaugă neliniaritate rețelei
    • Sigmoid pentru clasificare binară
    • Softmax pentru clasificare multi-clasă
  • O rețea poate învăța relații mai complexe cu neliniaritate
  • Ieșirea „pre-activare" este transmisă funcției de activare

Diagramă a unei rețele neurale cu straturi liniare și o funcție de activare

Introducere în Deep Learning cu PyTorch

Funcția sigmoid

Diagramă a unei părți dintr-o rețea neurală cu intrare, straturi liniare și funcție de activare

  • Mamifer sau nu?

O ilustrație a unui lemur

Introducere în Deep Learning cu PyTorch

Funcția sigmoid

Diagramă a unei părți dintr-o rețea neurală cu intrări și straturi liniare

  • Mamifer sau nu?

O ilustrație a unui lemur

  • Intrare:
    • Membre: 4
    • Ouă: 0
    • Păr: 1
Introducere în Deep Learning cu PyTorch

Funcția sigmoid

Diagramă a unei părți dintr-o rețea neurală cu intrări și numărul 6 ca ieșire spre straturile liniare

  • Mamifer sau nu?

O ilustrație a unui lemur

  • Ieșirea spre straturile liniare este 6
Introducere în Deep Learning cu PyTorch

Funcția sigmoid

Diagramă a unei părți dintr-o rețea neurală cu intrări, numărul 6 ca ieșire spre straturile liniare și o funcție de activare sigmoid

  • Mamifer sau nu?

O ilustrație a unui lemur

  • Luăm ieșirea pre-activare (6) și o transmitem funcției sigmoid
Introducere în Deep Learning cu PyTorch

Funcția sigmoid

Diagramă a unei părți dintr-o rețea neurală cu intrări, numărul 6 ca ieșire spre straturile liniare, o funcție de activare sigmoid și o ieșire

  • Mamifer sau nu?

O ilustrație a unui lemur

  • Luăm ieșirea pre-activare (6) și o transmitem funcției sigmoid
  • Obținem o valoare între 0 și 1

  • Dacă ieșirea > 0,5, eticheta clasei = 1 (mamifer)

  • Dacă ieșirea <= 0,5, eticheta clasei = 0 (non-mamifer)
Introducere în Deep Learning cu PyTorch

Funcția sigmoid

import torch
import torch.nn as nn

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

output = sigmoid(input_tensor) print(output)
tensor([[0.9975]])
Introducere în Deep Learning cu PyTorch

Activarea ca ultim strat

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

Sigmoid ca ultimul pas într-o rețea de straturi liniare este echivalent cu regresia logistică tradițională

Introducere în Deep Learning cu PyTorch

Introducere în softmax

  • Trei clase:
Introducere în Deep Learning cu PyTorch

Introducere în softmax

  • Trei clase:

Un lemur cu opțiunea „pasăre"

Introducere în Deep Learning cu PyTorch

Introducere în softmax

  • Trei clase:

Un lemur cu opțiunile „pasăre" și mamifer

Introducere în Deep Learning cu PyTorch

Introducere în softmax

  • Trei clase:

Un lemur cu trei opțiuni: pasăre, mamifer sau reptilă

Introducere în Deep Learning cu PyTorch

Introducere în softmax

Diagramă a unei părți dintr-o rețea neurală cu intrări

  • Primește un tensor tridimensional ca intrare și returnează aceeași formă
Introducere în Deep Learning cu PyTorch

Introducere în softmax

Diagramă a unei părți dintr-o rețea neurală cu intrări, un vector ca ieșire spre straturile liniare, o funcție de activare softmax și o ieșire

  • Primește un tensor tridimensional ca intrare și returnează aceeași formă
  • Returnează o distribuție de probabilitate:
    • Fiecare element este o probabilitate (cuprinsă între 0 și 1)
    • Suma vectorului de ieșire este egală cu 1
Introducere în Deep Learning cu PyTorch

Introducere în softmax

Diagramă a unei părți dintr-o rețea neurală cu intrări, un vector ca ieșire spre straturile liniare, o funcție de activare softmax și o ieșire

  • Primește un tensor tridimensional ca intrare și returnează aceeași formă
  • Returnează o distribuție de probabilitate:
    • Fiecare element este o probabilitate (cuprinsă între 0 și 1)
    • Suma vectorului de ieșire este egală cu 1
Introducere în Deep Learning cu PyTorch

Introducere în 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 indică faptul că softmax se aplică ultimei dimensiuni a tensorului de intrare
  • nn.Softmax() poate fi utilizat ca ultim pas în nn.Sequential()
Introducere în Deep Learning cu PyTorch

Să exersăm!

Introducere în Deep Learning cu PyTorch

Preparing Video For Download...