首页 > 其他分享 >(CS231n课程笔记)深度学习之损失函数详解(SVM loss,Softmax,熵,交叉熵,KL散度)

(CS231n课程笔记)深度学习之损失函数详解(SVM loss,Softmax,熵,交叉熵,KL散度)

时间:2024-09-16 12:23:32浏览次数:3  
标签:loss SVM CS231n 函数 分类 损失 KL Softmax

学完了线性分类,我们要开始对预测结果进行评估,进而优化权重w,提高预测精度,这就要用到损失函数。

损失函数(Loss Function)是机器学习模型中的一个关键概念,用于衡量模型的预测结果与真实标签之间的差距。损失函数的目标是通过提供一个差距的度量,帮助模型进行优化,最终减少预测误差。不同的任务(如分类、回归等)会使用不同的损失函数来反映不同类型的误差。

1.SVM loss(铰链损失函数或合页损失函数)

  SVM(支持向量机)的损失函数通常指的是铰链损失函数(Hinge Loss Function),它用于最大化分类边界的同时最小化分类错误。目标是找到一个超平面将数据点分为两类。对于一个线性可分问题,SVM 会选择能够最大化正类与负类之间的分类间隔(Margin)的超平面。对于线性不可分问题,SVM 通过加入惩罚项来允许一定的错误分类。

铰链损失函数的形式为:

公式的含义为:(分类中其他标签的得分 — 该标签的得分 + 1)与0对比选出最大的数。我们还以上一讲的例子来解释。

线性分类器得分如上图,我们来计算汽车的损失值:

结果为0,说明预测结果很好,汽车的得分要大于其他标签的得分,并且大于一定的范围。经过损失函数能够对预测结果进行一定的评估。

2.Softmax激活函数

Softmax 函数将神经网络的输出转化为一个概率分布,使每个输出在 (0, 1) 之间,且所有输出之和为 1。其公式如下:

  • zi​ 是模型输出的第 i类的得分(logits)。
  • Softmax 函数将这些得分转换为属于每个类别的概率,如下图。

尽管 Softmax 不是损失函数,但它通常与交叉熵损失函数(Cross-Entropy Loss)结合使用,形成一个完整的多类分类模型的损失计算流程。

Softmax vs SVM

  • Softmax:主要用于多类分类任务。Softmax 是一个激活函数,通常与交叉熵损失函数结合使用,来进行多分类任务的训练。Softmax 将模型输出的 logits 转换为概率分布,确保每个类别的概率在 0 到 1 之间,且所有类别的概率之和为 1。模型通过最小化交叉熵损失来提高分类准确率。

  • SVM(支持向量机):SVM 是一种基于最大化分类间隔的分类算法。它尝试找到一个超平面(或决策边界),以最大化正类和负类之间的间隔。SVM 使用的是铰链损失(Hinge Loss),目的是找到能够最大化分类间隔的最优决策边界,通常用于二分类问题,但也可以通过扩展用于多分类任务。

下面的三种损失函数都是建立在softmax函数处理之后的:

3.交叉熵损失函数(Cross-Entropy Loss):衡量预测的真实度

交叉熵是用来衡量两个概率分布之间的距离,特别是在分类任务中用来评估预测的概率分布与真实的分布之间的差异。假设真实分布为 P,预测分布为 Q,那么交叉熵的公式为:其公式为:

交叉熵衡量的是模型预测分布 Q和真实分布 P 之间的差异,预测越接近真实分布,交叉熵越小。

4.墒(熵,Entropy):衡量预测难度

熵是信息论中的概念,度量的是一个系统或分布的不确定性或混乱程度。熵越高,表示系统的混乱程度越大,信息越难以预测。对于离散随机变量 X 其熵定义为:

5.KL 散度(Kullback-Leibler Divergence, KL Divergence):衡量预测与真实的差距

KL 散度用于衡量两个概率分布之间的相对熵差异。它衡量的是预测分布 Q 偏离真实分布 P 的程度。KL 散度的公式为:

KL 散度表示的是,当我们用分布 Q来近似真实分布 P 时,会丢失多少信息。它可以看作是交叉熵与熵的差值:

三者之间关系如何

熵衡量的是一个分布自身的不确定性,交叉熵衡量的是真实分布和预测分布之间的距离,而 KL 散度则是交叉熵减去真实分布的熵,表示了两个分布之间的相对差异。KL 散度用于度量一个分布相对于另一个分布的差异。

标签:loss,SVM,CS231n,函数,分类,损失,KL,Softmax
From: https://blog.csdn.net/m0_63680328/article/details/142261823

相关文章

  • 使用SVM在数字验证码识别中的应用研究课程报告
    第1章概要设计1.1设计目的支持向量机作为一类强大的监督学习模型,以其出色的泛化能力,在手写数字识别、面部检测、图像分类等多个领域展现出了其优越性。其在处理小样本、非线性及高维模式识别任务中表现尤为突出。SVM通过构造最优超平面,在保证分类准确性的同时,最大限度地提高了......
  • 高创新 | Matlab实现Transformer-GRU-SVM多变量时间序列预测
    高创新|Matlab实现Transformer-GRU-SVM多变量时间序列预测目录高创新|Matlab实现Transformer-GRU-SVM多变量时间序列预测效果一览基本介绍程序设计参考资料效果一览基本介绍1.Matlab实现Transformer-GRU-SVM多变量时间序列预测,Transformer+门控循环单......
  • 【机器学习】8. 逻辑斯蒂回归 Logistic function(sigmoid),cross-entropy error,Log-l
    Logisticfunction线性分类器Logisticfunction(sigmoid)极大似然估计Log-likelihoodloss线性分类器Logisticregression是一个线性分类器。如图,1为蓝色,0为红色。这条直线叫做直线边界Logisticfunction(sigmoid)......
  • 亦菲喊你来学机器学习(15) --支持向量机SVM
    文章目录支持向量机一、基本概念二、工作原理三、算法特点四、优缺点优点缺点五、构建模型模型参数训练模型可视化svm结果总结支持向量机支持向量机(SupportVectorMachine,SVM)是一种强大的机器学习算法,主要用于分类和回归分析,尤其擅长处理二元分类问题。以下是......
  • YOLOv9改进策略【损失函数篇】| Slide Loss,解决简单样本和困难样本之间的不平衡问题
    一、本文介绍本文记录的是改进YOLOv9的损失函数,将其替换成SlideLoss,并详细说明了优化原因,注意事项等。SlideLoss函数可以有效地解决样本不平衡问题,为困难样本赋予更高的权重,使模型在训练过程中更加关注困难样本。若是在自己的数据集中发现容易样本的数量非常大,而困难样本......
  • CrossEntropy Loss 计算实例讲解
    CrossEntropyLoss整个计算过程前提条件:分类标签labels和模型输出结果outputs=model(inputs)outputs为一个未经过softmax的logits向量......
  • 机器学习:svm算法原理的优缺点和适应场景
    1、概述:基本原理:间隔(Margin):SVM试图找到一个超平面,这个超平面不仅能够区分不同的类别,而且具有最大的间隔。间隔是数据点到超平面的最近距离。支持向量(SupportVectors):这些是距离超平面最近的数据点,它们决定了超平面的位置和方向。        支持向量机(SVM)是一种在机器......
  • 回归预测|基于北方苍鹰优化支持向量机的数据回归预测Matlab程序NGO-SVM 多特征输入单
    回归预测|基于北方苍鹰优化支持向量机的数据回归预测Matlab程序NGO-SVM多特征输入单输出高引用先用先创新文章目录前言回归预测|基于北方苍鹰优化支持向量机的数据回归预测Matlab程序NGO-SVM多特征输入单输出高引用先用先创新一、NGO-SVM模型1.北方苍鹰优化算......
  • Focal Loss详解及其pytorch实现
    FocalLoss详解及其pytorch实现文章目录FocalLoss详解及其pytorch实现引言二分类与多分类的交叉熵损失函数二分类交叉熵损失多分类交叉熵损失FocalLoss基础概念关键点理解什么是难分类样本和易分类样本?超参数......
  • Skeleton Recall Loss 分割领域的新突破:极大的减少了资源消耗,还能提高性能
    精确分割在当今众多领域都是一项关键需求比如说自动驾驶汽车的训练、医学图像识别系统,以及通过卫星图像进行监测。在许多其他领域,当感兴趣的对象微小但至关重要时,例如研究血管流动、手术规划、检测建筑结构中的裂缝或优化路线规划,需要更高的精度。此前已经做了大量工作来解决这种......