PyTorch — 最常见损失函数 LOSS 的选择

作者 : admin 本文共1059个字,预计阅读时间需要3分钟 发布时间: 2024-06-17 共1人阅读
  • 损失函数:度量模型的预测结果与真实值之间的差异;通过最小化 loss -> 最大化模型表现
  • 代码实现框架:设有 模型预测值 f (x), 真实值 y
    • 方法一: 步骤 1. criterion = torch.nn.某个Loss();步骤 2. loss = criterion(f(x), y)
    • 方法二:直接采用 F.某个_loss(f(x), y)

回归损失(Regression Loss):希望预测值和真实值接近,即 f(x) = y

  • torch.nn.L1Loss()】平均绝对值误差 MAE(Mean Abs Error): f (x) 和 y 之间差的绝对值的平均值
    • 具体数学计算公式:

      Loss

      =

      1

      n

      i

      =

      0

      n

      f

      (

      x

      i

      )

      y

      i

      ext{Loss}=\frac{1}{n}\sum^n_{i=0} |f(x_i)-y_i|

      Loss=n1i=0nf(xi)yi

    • 注:L1 损失, 主要用于回归问题和简单的模型,所以很少使用
  • torch.nn.MSELoss()】平均平方误差 MSE(Mean Squared Error): f (x) 和 y 之间差的平方的平均值
    • 具体数学计算公式:

      Loss

      =

      1

      n

      i

      =

      0

      n

      (

      f

      (

      x

      i

      )

      y

      i

      )

      2

      ext{Loss}=\frac{1}{n}\sum^n_{i=0} (f(x_i)-y_i)^2

      Loss=n1i=0n(f(xi)yi)2F.mse_loss(f(x), y)

    • 注:L2 损失, 很常用

分类损失(Classification Loss):希望分类准确率高等

  • torch.nn.CrossEntropyLoss()】分类交叉熵损失 CEL(Cross Entropy Loss): 和 KL divergence (衡量两个分布的相似度) 有关
    • 具体数学计算公式:

      y

      i

      j

      log

      (

      f

      (

      x

      i

      )

      j

      )

      -\sum y_{ij}\log(f(x_i)_j)

      yijlog(f(xi)j), 注意其中

      f

      (

      x

      i

      )

      f(x_i)

      f(xi) ​ 表示模型预测出的概率值如 [0.1, 0.7, 0.2]: F.cross_entropy(直接传入 logits (已打包了 softmax))

    • 通常和 softmax (soft version of max

      S

      (

      y

      i

      )

      =

      e

      y

      i

      e

      y

      i

      S(y_i) = \frac{e^{y_i}}{\sum e^{y_i}}

      S(yi)=eyieyi: F.softmax(y)) 搭配使用 (softmax 负责产生上述概率输出)

    • logistic regression (按sigmoid输出的概率大小分类) 已被 classification 代替

  • B站视频参考资料
  • 详细博客参考资料
本站无任何商业行为
个人在线分享 » PyTorch — 最常见损失函数 LOSS 的选择
E-->