Použití ztrátových funkcí k hodnocení predikcí modelu

Introduction to Deep Learning with PyTorch

Jasmin Ludolf

Senior Data Science Content Developer, DataCamp

Proč potřebujeme ztrátovou funkci?

  • Říká nám, jak dobrý je model během trénování
  • Přijímá predikci modelu $\hat{y}$ a skutečnou hodnotu $y$
  • Vrací hodnotu float

$$

Diagram ztrátové funkce

Introduction to Deep Learning with PyTorch

Proč potřebujeme ztrátovou funkci?

  • Třída 0 – savec, třída 1 – pták, třída 2 – plaz
Hair Feathers Eggs Milk Fins Legs Tail Domestic Catsize Class
1 0 0 1 0 4 0 0 1 0

$$

  • Predikovaná třída = 0 -> správně = nízká ztráta
  • Predikovaná třída = 1 -> chybně = vysoká ztráta
  • Predikovaná třída = 2 -> chybně = vysoká ztráta

$$

  • Cílem je minimalizovat ztrátu
Introduction to Deep Learning with PyTorch

Koncepty one-hot kódování

  • $loss = F(y, \hat{y})$
  • $y$ je jediné celé číslo (označení třídy)
    • např. $y=0$ pokud je $y$ savec
  • $\hat{y}$ je tensor (predikce před softmax)
    • Je-li N počet tříd, např. N = 3
    • $\hat{y}$ je tensor s N dimenzemi,
      • např. $\hat{y}$ = [-5.2, 4.6, 0.8]
Introduction to Deep Learning with PyTorch

Koncepty one-hot kódování

  • Převede celé číslo y na tensor nul a jedniček

One-hot kódování

Introduction to Deep Learning with PyTorch

Transformace štítků pomocí one-hot kódování

import torch.nn.functional as F

print(F.one_hot(torch.tensor(0), num_classes = 3))
tensor([1, 0, 0])
print(F.one_hot(torch.tensor(1), num_classes = 3))
tensor([0, 1, 0])
print(F.one_hot(torch.tensor(2), num_classes = 3))
tensor([0, 0, 1])
Introduction to Deep Learning with PyTorch

Křížová entropie v PyTorch

from torch.nn import CrossEntropyLoss

scores = torch.tensor([-5.2, 4.6, 0.8])
one_hot_target = torch.tensor([1, 0, 0])

criterion = CrossEntropyLoss()
print(criterion(scores.double(), one_hot_target.double()))

$$

tensor(9.8222, dtype=torch.float64)
Introduction to Deep Learning with PyTorch

Shrnutí

Ztrátová funkce přijímá:

  • scores – predikce modelu před finální funkcí softmax
  • one_hot_target – skutečný štítek zakódovaný metodou one-hot

Ztrátová funkce vrací:

  • loss – jediná hodnota float

Diagram ztrátové funkce s hodnotami

Introduction to Deep Learning with PyTorch

Lass uns üben!

Introduction to Deep Learning with PyTorch

Preparing Video For Download...