Знайомство з функціями активації

Вступ до Deep Learning з PyTorch

Jasmin Ludolf

Senior Data Science Content Developer, DataCamp

Функції активації

$$

  • Функції активації додають мережі нелінійність
    • Sigmoid для бінарної класифікації
    • Softmax для багатокласової класифікації
  • Завдяки нелінійності мережа вчиться складнішим звʼязкам
  • «Преактиваційний» вихід подається у функцію активації

Схема нейронної мережі з лінійними шарами та функцією активації

Вступ до Deep Learning з PyTorch

Знайомство з функцією sigmoid

Схема частини нейронної мережі з входом, лінійними шарами та функцією активації

  • Ссавець чи ні?

Ілюстрація лемура

Вступ до Deep Learning з PyTorch

Знайомство з функцією sigmoid

Схема частини нейронної мережі зі входами та лінійними шарами

  • Ссавець чи ні?

Ілюстрація лемура

  • Вхід:
    • Кінцівки: 4
    • Яйця: 0
    • Шерсть: 1
Вступ до Deep Learning з PyTorch

Знайомство з функцією sigmoid

Схема частини нейронної мережі зі входами та числом 6 як виходом лінійних шарів

  • Ссавець чи ні?

Ілюстрація лемура

  • Вихід лінійних шарів дорівнює 6
Вступ до Deep Learning з PyTorch

Знайомство з функцією sigmoid

Схема частини нейронної мережі зі входами, числом 6 як виходом лінійних шарів і активацією sigmoid

  • Ссавець чи ні?

Ілюстрація лемура

  • Беремо преактиваційний вихід (6) і подаємо в sigmoid
Вступ до Deep Learning з PyTorch

Знайомство з функцією sigmoid

Схема частини нейронної мережі зі входами, числом 6 як виходом лінійних шарів, активацією sigmoid і результатом

  • Ссавець чи ні?

Ілюстрація лемура

  • Беремо преактиваційний вихід (6) і подаємо в sigmoid
  • Отримуємо значення між 0 та 1

  • Якщо вихід > 0.5, мітка класу = 1 (ссавець)

  • Якщо вихід <= 0.5, мітка класу = 0 (не ссавець)
Вступ до Deep Learning з PyTorch

Знайомство з функцією 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]])
Вступ до Deep Learning з PyTorch

Активація як останній шар

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

Sigmoid як останній крок у мережі лінійних шарів еквівалентна класичній логістичній регресії

Вступ до Deep Learning з PyTorch

Знайомство з softmax

  • Три класи:
Вступ до Deep Learning з PyTorch

Знайомство з softmax

  • Три класи:

Лемур з варіантом «bird»

Вступ до Deep Learning з PyTorch

Знайомство з softmax

  • Три класи:

Лемур з варіантами «bird» і mammal

Вступ до Deep Learning з PyTorch

Знайомство з softmax

  • Три класи:

Лемур з трьома варіантами: bird, mammal або reptile

Вступ до Deep Learning з PyTorch

Знайомство з softmax

Схема частини нейронної мережі зі входами

  • Приймає тривимірний вхід і повертає того ж розміру
Вступ до Deep Learning з PyTorch

Знайомство з softmax

Схема частини нейронної мережі зі входами, вектором як виходом лінійних шарів, активацією softmax і результатом

  • Приймає тривимірний вхід і повертає того ж розміру
  • Повертає розподіл імовірностей:
    • Кожен елемент — імовірність (між 0 та 1)
    • Сума вихідного вектора дорівнює 1
Вступ до Deep Learning з PyTorch

Знайомство з softmax

Схема частини нейронної мережі зі входами, вектором як виходом лінійних шарів, активацією softmax і результатом

  • Приймає тривимірний вхід і повертає того ж розміру
  • Повертає розподіл імовірностей:
    • Кожен елемент — імовірність (між 0 та 1)
    • Сума вихідного вектора дорівнює 1
Вступ до Deep Learning з PyTorch

Знайомство з 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 означає, що softmax застосовано до останнього виміру тензора вводу
  • nn.Softmax() можна використати як останній крок у nn.Sequential()
Вступ до Deep Learning з PyTorch

Давайте потренуємось!

Вступ до Deep Learning з PyTorch

Preparing Video For Download...