Utilizar funciones de pérdida para evaluar las previsiones del modelo

Introducción al aprendizaje profundo con PyTorch

Jasmin Ludolf

Senior Data Science Content Developer, DataCamp

¿Por qué necesitamos una función de pérdida?

  • Nos dice lo bueno que es nuestro modelo durante el entrenamiento
  • Toma una predicción del modelo $\hat{y}$ y la verdad sobre el terreno $y$.
  • Produce un flotador

$$

Diagrama de la función de pérdidas

Introducción al aprendizaje profundo con PyTorch

¿Por qué necesitamos una función de pérdida?

  • Clase 0 - mamífero, clase 1 - ave, clase 2 - reptil
Hair Feathers Eggs Milk Fins Legs Tail Domestic Catsize Class
1 0 0 1 0 4 0 0 1 0

$$

  • Clase prevista = 0 -> correcta = pérdida baja
  • Clase prevista = 1 -> errónea = pérdida elevada
  • Clase prevista = 2 -> errónea = pérdida elevada

$$

  • Nuestro objetivo es minimizar las pérdidas
Introducción al aprendizaje profundo con PyTorch

Conceptos de codificación en caliente

  • $loss = F(y, \hat{y})$
  • $y$ es un único número entero (etiqueta de clase)
    • por ejemplo $y=0$ cuando $y$ es un mamífero
  • $\hat{y}$ es un tensor (predicción antes de softmax)
    • Si N es el número de clases, por ejemplo N = 3
    • $\hat{y}$ es un tensor de N dimensiones,
      • Por ejemplo,
Introducción al aprendizaje profundo con PyTorch

Conceptos de codificación en caliente

  • Convierte un entero y en un tensor de ceros y unos

Codificación en caliente

Introducción al aprendizaje profundo con PyTorch

Transformación de etiquetas con codificación de un solo golpe

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])
Introducción al aprendizaje profundo con PyTorch

Pérdida de entropía cruzada en 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)
Introducción al aprendizaje profundo con PyTorch

Uniéndolo todo

Toma la función de pérdida:

  • puntuaciones - predicciones del modelo antes de la función softmax final
  • one_hot_target - una etiqueta de verdad fundamental codificada en caliente

Resultados de la función de pérdida:

  • pérdida - un solo flotador

Diagrama de función de pérdidas con valores

Introducción al aprendizaje profundo con PyTorch

¡Vamos a practicar!

Introducción al aprendizaje profundo con PyTorch

Preparing Video For Download...