Weiguo's Station

  • 博客首页

  • 文章归档

  • 分类专栏

  • 各种标签

  • 站点搜索

机器学习中的损失函数

发表于 2020-01-04 更新于 2021-03-22 分类于 机器学习

1. 平方损失误差

平方误差损失(也称为L2 Loss)是实际值和预测值之差的平方

MSE损失函数通过平方误差来惩罚模型犯的大错误。把一个比较大的数平方会使它变得更大。这个属性使MSE成本函数对异常值的健壮性降低。因此,如果数据容易出现许多的异常值,则不应使用这个它。

2. 绝对误差损失

绝对误差是预测值和实际值之间的距离,与符号无关。绝对误差也称为L1 Loss

与MSE相比,MAE成本对异常值更加健壮。但是,在数学方程中处理绝对值或模数运算符并不容易。我们可以认为这是MAE的缺点。

3. Huber损失

Huber损失结合了MSE和MAE的最佳特性。对于较小的误差,它是二次的,否则是线性的(对于其梯度也是如此)。Huber损失需要确定 $\delta$ 参数:

Huber损失对于异常值比MSE更强。它用于稳健回归(robust regression),M估计法(M-estimator)和可加模型(additive model)。Huber损失的变体也可以用于分类。

4. 交叉熵损失损失函数

4.1 二分类交叉熵

其中 $p = sigmoid(f(x)) = 1 / (1 + e^{-f(x)})$。

4.2 多分类交叉熵

其中 $Y_i$ 是one-hot形式的label,$y_{i,j}$非$0$即$1$,$p_{i,j}$是sigmoid后的概率值,介于 [$0, 1$]。

5. Hinge损失函数

Hinge损失主要用于带有类标签-1和1的支持向量机(SVM)。因此,请确保将数据集中”恶性”类的标签从0更改为-1。 Hinge损失不仅会惩罚错误的预测,还会惩罚不自信的正确预测。

Hinge损失简化了SVM的数学运算,同时最大化了损失(与对数损失(Log-Loss)相比)。当我们想要做实时决策而不是高度关注准确性时,就可以使用它。

6. KL散度

KL散度通常不用来做损失函数,其转化后的形式(交叉熵)经常应用于分类问题做损失函数。 KL散度概率分布与另一个概率分布区别的度量。KL散度为零表示分布相同。

假定有两个概率分布 $P$ 和 $Q$,则 $P$ 和 $Q$ 之间的KL散度定义为:

Note: 发散函数不对称。 与多分类分类相比,KL散度更常用于逼近复杂函数。我们在使用变分自动编码器(VAE)等深度生成模型时经常使用KL散度。


机器学习中的 7 大损失函数实战总结(附Python演练)

# 损失函数
resume-2020
分布式TensorFlow模式
  • 文章目录
  • 站点概览
WeiguoZHAO

WeiguoZHAO

Welcome to my blog~
87 日志
13 分类
49 标签
GitHub E-Mail
大牛们
  • colah's blog
  • 王喆的Github
  • 刘建平的Github
  • 美团技术团队
  1. 1. 平方损失误差
  2. 2. 绝对误差损失
  3. 3. Huber损失
  4. 4. 交叉熵损失损失函数
    1. 4.1 二分类交叉熵
    2. 4.2 多分类交叉熵
  5. 5. Hinge损失函数
  6. 6. KL散度
© 2021 WeiguoZHAO
0%