Hinge Loss 和 Zero-One Loss

简介: Hinge Loss 和 Zero-One Loss

Hinge Loss 和 Zero-One Loss

维基百科:https://en.wikipedia.org/wiki/Hinge_loss

图表说明:

  • 纵轴表示固定 t = 1 t=1t=1 的 Hinge loss(蓝色)和 Zero-One Loss(绿色)的值,而横轴表示预测值 y yy 的值。
  • 该图显示,Hinge loss 惩罚了预测值 y < 1 y < 1y<1,对应于支持向量机中的边际概念。

Hinge Loss

Hinge Loss是一种常用的机器学习损失函数,通常用于支持向量机(SVM)模型中的分类问题。该函数的定义如下:

image.png

其中,y i y_iyi 是样本的真实标签,f ( x ) f(x)f(x) 是模型的预测值。该函数的取值范围是非负实数,当预测值和真实值之间的误差越大时,损失函数的值越大。

当样本被正确分类时,image.png此时 Hinge Loss 的取值为0,表示模型分类正确,没有产生误差。

当样本被错误分类时,image.png此时 Hinge Loss 的取值为image.png表示模型的分类错误,并且分类误差越大,Hinge Loss 的值就越大。

Hinge Loss 的目标是最小化分类误差,同时鼓励模型产生较大的间隔(即正确分类和分类超平面之间的距离)。

在支持向量机中,目标是找到一个最大间隔的超平面来分类样本,因此,可以将 Hinge Loss 和间隔相关联。对于一个样本点 image.png其与超平面之间的距离为:

image.png

其中,w b 是支持向量机模型中的权重和偏置。image.png

image.png

因此,Hinge Loss 不仅能够表达分类误差,还能够促进模型产生较大的间隔,从而增加模型的泛化能力。

Zero-One Loss

Zero-One Loss 是机器学习中的一种常见的分类损失函数。对于一个二分类问题,image.pngZero-One Loss 定义为:

image.png

也就是说,当模型的预测结果与真实标签一致时,Zero-One Loss为0;否则,Loss为1。从表达式上可以看出,Zero-One Loss对预测的错误惩罚非常高,因为无论错误的预测有多么接近正确,Loss都会被计算为1。与其他的损失函数相比,Zero-One Loss往往被认为是一种非常严格的评估方式。

然而,由于 Zero-One Loss 本身是不可导的,因此在训练模型时通常会选择使用一些可导的近似函数,如 Hinge Loss 或 Cross Entropy Loss 等。相对于 Zero-One Loss,这些损失函数更为平滑,可以帮助模型更快、更稳定地收敛。

需要注意的是,尽管 Zero-One Loss 在评估模型性能时非常严格,但在实际应用中往往不是最优的选择。特别是当数据集中的标签存在一定的噪声时,使用 Zero-One Loss 可能会导致模型过于拟合训练集,而无法有效地泛化到测试集。因此,在实际应用中,我们通常会使用更加平滑的损失函数,同时结合一些常见的正则化技术,如L1/L2正则化等,来控制模型的复杂度和泛化能力。

目录
相关文章
|
6月前
|
机器学习/深度学习 监控 数据可视化
训练损失图(Training Loss Plot)
训练损失图(Training Loss Plot)是一种在机器学习和深度学习过程中用来监控模型训练进度的可视化工具。损失函数是衡量模型预测结果与实际结果之间差距的指标,训练损失图展示了模型在训练过程中,损失值随着训练迭代次数的变化情况。通过观察损失值的变化,我们可以评估模型的拟合效果,调整超参数,以及确定合适的训练停止条件。
1138 5
|
3月前
|
机器学习/深度学习
Epoch、Batch 和 Iteration 的区别详解
【8月更文挑战第23天】
516 0
|
6月前
|
机器学习/深度学习
损失函数大全Cross Entropy Loss/Weighted Loss/Focal Loss/Dice Soft Loss/Soft IoU Loss
损失函数大全Cross Entropy Loss/Weighted Loss/Focal Loss/Dice Soft Loss/Soft IoU Loss
125 2
|
机器学习/深度学习 PyTorch 算法框架/工具
深入理解二分类和多分类CrossEntropy Loss和Focal Loss
多分类交叉熵就是对二分类交叉熵的扩展,在计算公式中和二分类稍微有些许区别,但是还是比较容易理解
1405 0
【学习】loss图和accuracy
【学习】loss图和accuracy
390 0
criterion = torch.nn.MSELoss() ;loss = criterion(y_pred.squeeze(), Y_train.squeeze()) 其中loss.item()的结果是指当前批次所有样本的mse总和还是平均值?
loss.item()的结果是当前批次所有样本的均方误差(MSE)值,而不是总和。这是因为torch.nn.MSELoss()默认返回的是每个样本的MSE值之和,并且在计算总体损失时通常会将其除以样本数量来得到平均损失。 在代码中,loss = criterion(y_pred.squeeze(), Y_train.squeeze())语句计算了y_pred和Y_train之间的MSE损失,然后通过调用item()方法获取了该批次训练样本的平均MSE损失。如果希望获取该批次训练样本的总MSE损失,可以使用loss.item() * batch_size来计算,其中batch_size是该批次
372 0
|
机器学习/深度学习 算法 TensorFlow
神奇的Batch Normalization 仅训练BN层会发生什么
神奇的Batch Normalization 仅训练BN层会发生什么
242 0
神奇的Batch Normalization 仅训练BN层会发生什么
|
机器学习/深度学习 PyTorch 算法框架/工具
【26】pytorch中的grad求导说明以及利用backward获取梯度信息
【26】pytorch中的grad求导说明以及利用backward获取梯度信息
430 0
【26】pytorch中的grad求导说明以及利用backward获取梯度信息
|
机器学习/深度学习
Contrastive Loss(对比损失)
Contrastive Loss(对比损失)
826 0
Contrastive Loss(对比损失)
|
机器学习/深度学习 自然语言处理 算法
深度学习Loss合集:一文详解Contrastive Loss/Ranking Loss/Triplet Loss等区别与联系
深度学习Loss合集:一文详解Contrastive Loss/Ranking Loss/Triplet Loss等区别与联系
1543 0
深度学习Loss合集:一文详解Contrastive Loss/Ranking Loss/Triplet Loss等区别与联系