Menggunakan loss function untuk menilai prediksi model

Pengantar Deep Learning dengan PyTorch

Jasmin Ludolf

Senior Data Science Content Developer, DataCamp

Mengapa kita perlu loss function?

  • Menunjukkan seberapa baik model saat training
  • Mengambil prediksi $\hat{y}$ dan ground truth $y$
  • Menghasilkan sebuah float

$$

Diagram loss function

Pengantar Deep Learning dengan PyTorch

Mengapa kita perlu loss function?

  • Kelas 0 - mamalia, kelas 1 - burung, kelas 2 - reptil
Hair Feathers Eggs Milk Fins Legs Tail Domestic Catsize Class
1 0 0 1 0 4 0 0 1 0

$$

  • Prediksi kelas = 0 -> benar = loss rendah
  • Prediksi kelas = 1 -> salah = loss tinggi
  • Prediksi kelas = 2 -> salah = loss tinggi

$$

  • Tujuan kita adalah meminimalkan loss
Pengantar Deep Learning dengan PyTorch

Konsep one-hot encoding

  • $loss = F(y, \hat{y})$
  • $y$ adalah satu integer (label kelas)
    • mis. $y=0$ saat $y$ adalah mamalia
  • $\hat{y}$ adalah tensor (prediksi sebelum softmax)
    • Jika N jumlah kelas, mis. N = 3
    • $\hat{y}$ adalah tensor dengan N dimensi,
      • mis. $\hat{y}$ = [-5.2, 4.6, 0.8]
Pengantar Deep Learning dengan PyTorch

Konsep one-hot encoding

  • Ubah integer y menjadi tensor nol dan satu

One-hot encoding

Pengantar Deep Learning dengan PyTorch

Transformasi label dengan one-hot encoding

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])
Pengantar Deep Learning dengan PyTorch

Cross entropy loss di 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)
Pengantar Deep Learning dengan PyTorch

Menggabungkan semuanya

Loss function menerima:

  • scores - prediksi model sebelum softmax akhir
  • one_hot_target - label ground truth dalam one-hot

Keluaran loss function:

  • loss - satu nilai float

Diagram loss function dengan nilai

Pengantar Deep Learning dengan PyTorch

Ayo berlatih!

Pengantar Deep Learning dengan PyTorch

Preparing Video For Download...