美文网首页
SVM、Softmax 损失函数

SVM、Softmax 损失函数

作者: 大豆油 | 来源:发表于2019-10-18 20:23 被阅读0次

损失函数也成代价函数,衡量对结果的不满意程度。目标函数一般包括损失函数加上正则化,也就是最优化算法的目标。

一、多类支持向量机损失

损失函数具体形式多种多样,先介绍 SVM 损失函数,SVM 的损失函数想要 SVM 在正确分类上的得分始终比不正确分类上的得分高出一个边界值,定义如下:

yi 代表的是正确类别的标签。举例说明:假设有3个分类,得到score=[13,-7,11],真实标签是yi=0,所以:

SVM的损失函数想要正确分类类别 yi 的分数比不正确类别分数高,而且至少要高10。如果不满足这点,就开始计算损失值。关于0的阈值:max(0,-)函数,被称为折叶损失(hinge loss)。


二、正则化

如果不使用正则化,那么上面的损失函数就会有问题:假设有一个数据集和一个权重集 W 能够正确地分类每个数据(即所有的边界都满足,对于所有的i都有 Li=0)。问题在于 W 并不唯一:可能有很多相似的W都能正确地分类所有的数据。

例子:如果 W 能够正确分类所有数据,即对于每个数据,损失值都是0。那么当 r > 1 时,任何数乘 rW 都能使得损失值为 0,因为这个变化将所有分值的大小都均等地扩大了,所以它们之间的绝对差值也扩大了。举个例子,如果一个正确分类的分值和举例它最近的错误分类的分值的差距是15,对 W 乘以2将使得差距变成30。但是整体的损失值还是为0,这就导致 不唯一。

所以,通过向特定的权重 W 添加一些偏好,对其他的不添加,以此来消除模糊性。方法是向损失函数增加一个正则化惩罚,最常用的正则化惩罚是 L2 范式,L2 范式通过对所有参数进行逐元素的平方惩罚来抑制大数值的权重,L2正则化可以直观理解为它对于大数值的权重向量进行严厉惩罚,倾向于更加分散的权重向量。:

上面的表达式中,将 W 中所有元素平方后求和。注意正则化函数不是数据的函数,仅基于权重。完整的目标函数如下:

将其展开完整公式是:

其中,N 是训练集的数据量,下图是引入正则化带来的良好的性质:

需要注意的是,和权重不同,偏差没有这样的效果,因为它们并不控制输入维度上的影响强度。因此通常只对权重 W 正则化,而不正则化偏差 b。


三、Softmax 线性分类器

Softmax 分类器可以理解为逻辑回归分类器面对多个分类的一般化归纳。在 Softmax 分类器中,将 hinge loss 替换为交叉熵损失 cross-entropy loss。公式如下:yi表示真实标签,下面有公式推导。

1. 交叉熵损失函数的数学原理

交叉熵是用来判定实际的输出与期望的输出的接近程度。交叉熵刻画的是实际输出(概率)与期望输出(概率)的距离,也就是交叉熵的值越小,两个概率分布就越接近。假设概率分布 p 为期望输出(标签),概率分布 q 为实际输出,H(p,q) 为交叉熵。
第一种交叉熵函数的形式为:

下图举例说明:

第二种交叉熵损失函数形式:

这种形式主要是针对于二分类的情况,二分类模型最后通常会通过 Sigmoid 函数输出一个概率值。这里只是将两种情况(标签为0和1的时候)整合在一起。但是这里注意的是,上面公式是通过极大似然估计来推导得出,在机器学习里面,基本上是把极大似然估计跟交叉熵联系在一起的同一概念。下图是极大似然估计推导过程:

再来看一下 softmax 的损失函数:
以多分类来看,交叉熵损失函数为:

对于比较常见的 one-hot 编码来看,yi 只有一个元素值为1,其他的都是0,所以 Softmax 的损失函数求和号去掉,就转换为最开始的形式。

2. 关于第 i 个样本对参数 Wij 的推导

四、SVM 和 Softmax 的 比较

下图有助于区分这 Softmax和SVM这两种分类器:

注意点:

svm 的损失函数折叶损失(hinge loss)是针对样本的标记类别之外的其他类别进行损失计算的,也就是说标记类别不计入损失,其他类别计算损失并累加作为某个样本的损失。而softmax的损失函数交叉熵损失(cross-entropy loss)只跟某个样本的标记类别相关,根据该标记类别的概率计算损失值,而不考虑标记类别之外的其他类别。从上面的公式就可以得出这个结论。


五、参考文章:

1. 斯坦福CS231n assignment1:softmax损失函数求导
2. CS231n课程笔记翻译:线性分类笔记
3. 深度学习中softmax交叉熵损失函数的理解

相关文章

  • 损失函数和优化-损失函数(2)

    引言 这一节的笔记,主要讲解除了SVM以外的另一种损失函数——softmax损失函数。 softmax损失函数 如...

  • SVM、Softmax 损失函数

    损失函数也成代价函数,衡量对结果的不满意程度。目标函数一般包括损失函数加上正则化,也就是最优化算法的目标。 一、多...

  • 损失函数

    线性分类器简介 线性评分函数 阐明线性分类器 损失函数多分类SVMsoftmax分类器SVM和softmax的比较...

  • Logistic Regression

    推导 sigmoid 推导LR损失函数 推导LR梯度下降 Softmax原理 softmax 损失函数 softm...

  • [CS231n]Lecture 3:Loss Functions

    损失函数、SVM、Softmax、优化 首先我们已经定义了一个线性分类器,f = Wx+b,如何寻找最优的W、b是...

  • 【深度学习】

    1, 两个重要的函数:得分函数和损失函数损失函数: hinge损失,softmax 损失。hinge损失: max...

  • 绘制常见损失函数

    练习:绘制常见损失函数 损失函数:Logistics损失(-1,1) SVM Hinge损失 0/1损失 首先我...

  • 损失函数

    聊聊机器学习中的损失函数 机器学习中的损失函数 平方损失(线性回归) 对数损失(交叉熵损失 softmax, lo...

  • softmax损失函数

    softmax常用来进行多分类,假如有一个4x1向量=[5,2,-1,3],softmax的计算过程如下所示 下式...

  • 112. 【论文理解】Partial FC: Training

    之前的方法主要基于softmax损失函数的改进,但训练大量人脸比较困难。softmax损失中的负类在人脸表示中的重...

网友评论

      本文标题:SVM、Softmax 损失函数

      本文链接:https://www.haomeiwen.com/subject/leqpmctx.html