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

学完了线性分类,我们要开始对预测结果进行评估,进而优化权重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 散度用于度量一个分布相对于另一个分布的差异。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值