机器学习-损失函数-12-灵析社区

搜不鸟了

机器学习损失函数概念

在机器学习中,损失函数是代价函数的一部分,而代价函数则是目标函数的一种类型。

Loss function,即损失函数:用于定义单个训练样本与真实值之间的误差;

Cost function,即代价函数:用于定义单个批次/整个训练集样本与真实值之间的误差;

Objective function,即目标函数:泛指任意可以被优化的函数。

1. 回归损失(Regression Loss)

1.1 均方差损失 Mean Squared Error Loss

均方差 Mean Squared Error (MSE)损失是机器学习、深度学习回归任务中最常用的一种损失函数,也称为 L2 Loss。其基本形式如下:

notion image

从直觉上理解均方差损失,这个损失函数的最小值为 0(当预测等于真实值时),最大值为无穷大。下图是对于真实值

notion image

notion image

notion image

通常为了计算方便,我们通常最大化对数似然 Log-Likelihood:

notion image

notion image

可以看到这个实际上就是均方差损失的形式。也就是说在模型输出与真实值的误差服从高斯分布的假设下,最小化均方差损失函数与极大似然估计本质上是一致的

1.2、平均绝对误差损失 Mean Absolute Error Loss

平均绝对误差 Mean Absolute Error (MAE)是另一类常用的损失函数,也称为 L1 Loss。其基本形式如下:

notion image

notion image

notion image

与上面推导 MSE 时类似,我们可以得到的负对数似然实际上就是 MAE 损失的形式

notion image

MAE 与 MSE 区别

  • MSE 通常比 MAE 可以更快地收敛
  • MAE 对于 outlier 更加 robust

1.3、Huber Loss

Huber Loss则是一种将 MSE 与 MAE 结合起来,取两者优点的损失函数,也被称作 Smooth Mean Absolute Error Loss 。其原理很简单,就是在误差接近 0 时使用 MSE,误差较大时使用 MAE,公式为:

notion image

notion image

Huber Loss 的特点

1、Huber Loss 结合了 MSE 和 MAE 损失,在误差接近 0 时使用 MSE,使损失函数可导并且梯度更加稳定;

2、在误差较大时使用 MAE 可以降低 outlier 的影响,使训练对 outlier 更加健壮。

3、缺点是需要额外地设置一个δ超参数。

3、分类损失函数

1、hinge loss

首先我们已知SVM软间隔的目标函数为:

notion image

其中:

notion image

notion image

notion image

它事实上是一个利用Hinge Loss的ERM,加上了一个L2正则项。如果上式ℓ取Logistic Loss的话,其实就等价于带正则项的Logistic Regression。函数图像如图:

notion image

2、交叉熵损失 Cross Entropy Loss(Softmax交叉熵)

对于分类问题,最常用的损失函数是交叉熵损失函数 Cross Entropy Loss

2.1、二分类

notion image

将两条式子合并成一条:

notion image

假设数据点之间独立同分布,则似然可以表示为:

notion image

对似然取对数,然后加负号变成最小化负对数似然,即为交叉熵损失函数的形式:

notion image

下图是对二分类的交叉熵损失函数的可视化,蓝线是目标值为 0 时输出不同输出的损失,黄线是目标值为 1 时的损失。可以看到约接近目标值损失越小,随着误差变差,损失呈指数增长。

notion image

2.2、多分类

notion image

Softmax 函数将每个维度的输出范围都限定在 (0,1)之间,同时所有维度的输出和为 1,用于表示一个概率分布。

notion image

其中 k∈K表示 K 个类别中的一类,同样的假设数据点之间独立同分布,可得到负对数似然为:

notion image

notion image

其中 ci是样本 xi的目标类,这个就是应用于多分类的交叉熵损失函数 Softmax Loss

3、KL散度

notion image

notion image

由于我们希望两个分布尽量相近,因此我们最小化 KL 散度。同时由于上式第一项信息熵仅与最优分布本身相关,因此我们在最小化的过程中可以忽略掉,变成最小化:

notion image

notion image

这个是针对单个训练样本的损失函数,如果考虑整个数据集,则:

notion image

可以看到通过最小化交叉熵的角度推导出来的结果和使用最大 化似然得到的结果是一致的

阅读量:1511

点赞量:0

收藏量:0