loss 函数

首先,Loss 是允许不降到 0 的,模型计算的 loss 最终结果可以接近 0。

可以成为 loss 函数的条件在这里插入图片描述## 常用 loss

以下函数调用基于 Pytorch,头文件导入:
import torch.nn as nn

  • 均方差(MSE)
    nn.functional.mse_loss
    定义
    预测值与真实值之差的平方的平均值
    应用场景
    主要用于回归问题
  • 交叉熵(Cross Entropy)
    nn.functional.cross_entropy 要求二维的输入,一维的输出
    nn.CrossEntropyLoss 中已经实现了softmax功能
    对于 y_pred 的要求是:n * class_num,对于 y 的要求是 n
    交叉熵计算逻辑的例子在这里插入图片描述
    定义
    衡量概率分布之间的差异
    应用场景
    • 主要用于分类问题,尤其是二分类和多分类问题
    • 适用于输出层使用 sigmoid 或 softmax 激活函数的情况,因为这些函数的输出可以解释为概率分布
    • 计算逻辑
      -log(预测值与正确标签对位相乘,再相加)
    • 使用前提
      1. 交叉熵的输入是一个概率值
      2. 预测场景概率空间和结果为1(log函数在x小于0时无定义)
        特点
      3. 目前,在分类问题上,基本都采用交叉熵。
      4. 使模型输出易于比较(通过交叉熵损失)
      5. 通过归一化(指将模型输出转换为概率分布)来评估模型性能

记录应用不多的其他 loss(以下 loss 有使用心得之后再做记录)

  • 0/1损失(BCELoss)
    通常与 sigmoid 函数一起使用
  • 指数损失
  • 对数损失
  • Hinge损失
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐