1. 均方误差(Mean Squared Error, MSE)

  • 使用场景: 回归问题。
  • 特性:
    • 计算预测值与真实值之间的平方差,然后取平均。
    • 对大误差非常敏感,因为误差被平方。
    • 平滑且连续,易于优化。
  • 公式:
    \text{MSE} = \frac{1}{N} \sum_{i=1}^{N} (y_i - \hat{y}_i)^2
  • 关键属性:
    • 适用于连续值的回归任务。
    • 对异常值敏感。

2. 平均绝对误差(Mean Absolute Error, MAE)

  • 使用场景: 回归问题,尤其是当数据中存在异常值时。
  • 特性:
    • 计算预测值与真实值之间的绝对差,然后取平均。
    • 对异常值不敏感,因为误差没有被平方。
    • 在某些情况下,优化 MAEMSE 更困难,因为它的梯度在零点不连续。
  • 公式:
    \text{MAE} = \frac{1}{N} \sum_{i=1}^{N} |y_i - \hat{y}_i|
  • 关键属性:
    • 适用于回归任务,尤其是数据中存在异常值的情况。
    • 对异常值不敏感。

3. 交叉熵损失(Cross-Entropy Loss)

  • 使用场景: 分类问题,尤其是多分类问题。

  • 特性:

    • 衡量预测概率分布与真实概率分布之间的差异。
    • 对于分类问题,交叉熵损失通常与 Softmax 激活函数一起使用。
    • 当预测值与真实值差异较大时,损失值会迅速增大。
  • 公式:

    \text{Cross-Entropy Loss} = -\sum_{i=1}^{C} y_i \log(\hat{y}_i)

    其中,C 是类别数,y_i 是真实标签(one-hot编码),\hat{y}_i 是预测概率。

  • 关键属性:

    • 适用于多分类问题。
    • 对错误分类的惩罚较大。

4. 二元交叉熵损失(Binary Cross-Entropy Loss)

  • 使用场景: 二分类问题。

  • 特性:

    • 是交叉熵损失的特例,适用于二分类问题。
    • 通常与 Sigmoid 激活函数一起使用。
    • 衡量预测概率与真实标签之间的差异。
  • 公式:

    \text{Binary Cross-Entropy Loss} = -[y \log(\hat{y}) + (1 - y) \log(1 - \hat{y})]

    其中,y 是真实标签(0或1),\hat{y} 是预测概率。

  • 关键属性:

    • 适用于二分类问题。
    • 对错误分类的惩罚较大。

5. KL散度(Kullback-Leibler Divergence, KL Divergence)

  • 使用场景: 概率分布之间的差异度量,常用于生成模型(如变分自编码器)。
  • 特性:
    • 衡量两个概率分布之间的差异。
    • 不是对称度量,即 D_{KL}(P||Q) \neq D_{KL}(Q||P)
    • 通常与交叉熵损失一起使用。
  • 公式:
    D_{KL}(P||Q) = \sum_{i} P(i) \log\left(\frac{P(i)}{Q(i)}\right)
  • 关键属性:
    • 适用于概率分布之间的差异度量。
    • 常用于生成模型和变分推断。

6. Hinge Loss(合页损失)

  • 使用场景: 支持向量机(SVM)和一些分类问题,尤其是当类别之间有明显的边界时。

  • 特性:

    • 用于最大化分类边界与错误分类样本之间的距离。
    • 对正确分类且置信度高的样本不进行惩罚。
  • 公式:

    \text{Hinge Loss} = \max(0, 1 - y \cdot \hat{y})

    其中,y 是真实标签(+1或-1),\hat{y} 是预测值。

  • 关键属性:

    • 适用于支持向量机和一些分类问题。
    • 对错误分类的惩罚较大。

7. Huber Loss(Huber损失)

  • 使用场景: 回归问题,尤其是当数据中存在异常值时。
  • 特性:
    • 结合了 MSEMAE 的优点,对小误差使用平方误差,对大误差使用线性误差。
    • 对异常值不敏感,同时保持了 MSE 的平滑性。
  • 公式:
    \text{Huber Loss} = \begin{cases} \frac{1}{2}(y - \hat{y})^2 & \text{if } |y - \hat{y}| \leq \delta \\ \delta |y - \hat{y}| - \frac{1}{2}\delta^2 & \text{otherwise} \end{cases}
  • 关键属性:
    • 适用于回归任务,尤其是数据中存在异常值的情况。
    • 对异常值不敏感,同时保持了 MSE 的平滑性。

8. Dice Loss(Dice损失)

  • 使用场景: 图像分割任务,尤其是医学图像分割。

  • 特性:

    • 基于 Dice 系数,衡量预测分割结果与真实分割结果之间的重叠程度。
    • 对类别不平衡问题较为鲁棒。
  • 公式:

    \text{Dice Loss} = 1 - \frac{2 \cdot |X \cap Y|}{|X| + |Y|}

    其中,X 是预测分割结果,Y 是真实分割结果。

  • 关键属性:

    • 适用于图像分割任务,尤其是类别不平衡的情况。
    • 对类别不平衡问题较为鲁棒。

9. Focal Loss

  • 使用场景: 目标检测和分类问题,尤其是类别不平衡问题。

  • 特性:

    • 通过调整损失函数,减少易分类样本的权重,增加难分类样本的权重。
    • 对类别不平衡问题有较好的处理能力。
  • 公式:

    \text{Focal Loss} = -\alpha (1 - \hat{y})^\gamma \log(\hat{y})

    其中,\alpha 是平衡因子,\gamma 是聚焦参数。

  • 关键属性:

    • 适用于类别不平衡的分类问题。
    • 对难分类样本的权重较大。

10. Triplet Loss(三元组损失)

  • 使用场景: 深度度量学习(如人脸识别、图像检索)。

  • 特性:

    • 通过比较三个样本(锚点、正样本、负样本)之间的距离来学习特征表示。
    • 目标是使锚点与正样本之间的距离小于锚点与负样本之间的距离。
  • 公式:

    \text{Triplet Loss} = \max(0, d(a, p) - d(a, n) + \alpha)

    其中,a 是锚点,p 是正样本,n 是负样本,\alpha 是边际。

  • 关键属性:

    • 适用于度量学习任务,如人脸识别和图像检索。
    • 通过三元组样本之间的距离来学习特征表示。

任务类型 常用损失函数
回归问题 - 均方误差(MSE)- 平均绝对误差(MAE)- Huber Loss
分类问题 - 交叉熵损失- 二元交叉熵损失- Hinge Loss
生成模型 - KL散度(KL Divergence)
图像分割 - Dice Loss
类别不平衡 - Focal Loss
度量学习 - Triplet Loss