多分类SVM损失函数: Multiclass SVM loss

1. SVM 损失:在一个样本中,对于真实分类与其他每各个分类,如果真实分类所得的分数与其他各分类所得的分数差距大于或等于安全距离,则真实标签分类与该分类没有损失值;反之则需要计算真实分类与该分类的损失值; 真实分类与其他各分类的损失值的总和即为一个样本的损失值

①即真实标签分类所得分数大于等于该分类的分数+安全距离,S_yi >=S_j + △,那么损失值=0

②否则,损失值等于其他分类的分数 + 安全距离(阈值)- 真实标签分类所得的分数,即损失值=S_j + △ - S_yi

S_yi:真实标签分类的分数    S_j:其他标签的分数  △:安全距离、阈值

③以上是针对每一个样本而言的,一轮的损失值=n个样本损失值Li的算术平均和+正则化(每一个样本是指每一个测试数据)

④算法过程:对于每一个样本,计算真实分类与其他各个分类的损失值,真实分类与其他各个分类的损失值的总和即为一个样本的损失值;

所有的样本损失值的算术平均和 + 正则化 = 总体损失值

Li:(用于理解)此处的安全距离=1

Li表达式:

L表达式:

2. Multiclass SVM loss的图像:阈值为1

3. 例子

①一共有3个样本,第一个样本的真实分类是cat,第二个是car,第三个是frog。

注意:真实分类是指数据的真实标签,而不是预测标签

②第一个样本,真实标签是猫,所以要计算其他分类的得分与猫分类的得分是否在一个安全的范围内

max(汽车的分数 + 安全距离 - 猫的分数,0)+ max(青蛙的分数 + 安全距离 - 猫的分数,0)= max(2.9 , 0)+ max(-3.9,0)= 2.9

所有第一个样本的损失值为2.9,以此类推

③算完三个样本的损失值后,求三个样本损失值的算术平均和,该结果即为总体损失值(其实一般还要加一个正则化)

4. 代码

原文地址:https://www.cnblogs.com/shiliuxinya/p/12229676.html

时间: 2024-08-28 14:47:25

多分类SVM损失函数: Multiclass SVM loss的相关文章

论文笔记­­:Sparse Matrix Format Selection with Multiclass SVM for SpMV on GPU

原文:Benatia, A., Ji, W., Wang, Y., & Shi, F. (2016, August). Sparse Matrix Format Selection with Multiclass SVM for SpMV on GPU. In Parallel Processing (ICPP), 2016 45th International Conference on (pp. 496-505). IEEE. SpMV(Sparse Matrix-Vector Multip

分类问题损失函数的信息论解释

分类问题损失函数的信息论解释 分类问题的优化过程是一个损失函数最小化的过程,对应的损失函数一般称为logloss,对于一个多分类问题,其在N个样本上的logloss损失函数具有以下形式: 其中,yi(n)代表第n个样本是否属于第i个类别,取值为0或1,f(x(n))i代表分类模型对于第n个样本属于第i个类别的预测概率.将上面的式子稍作简化就可以得到我们常见的二分类问题下的损失函数,在这里不做展开,我们下面的讨论也都对于更为一般的多分类问题展开,而这些讨论对于二分类问题显然也同样适用. 上面的损失

[机器学习之SVM] 线性SVM还是非线性SVM?【转】

SVM的应用领域很广,分类.回归.密度估计.聚类等,但我觉得最成功的还是在分类这一块. 用于分类问题时,SVM可供选择的参数并不多,惩罚参数C,核函数及其参数选择.对于一个应用,是选择线性核,还是多项式核,还是高斯核?还是有一些规则的. 实际应用中,多数情况是特征维数非常高.如OCR中的汉字识别,提取8方向梯度直方图特征,归一化的字符被等分成8*8的网格,每个网格计算出长度为8的方向直方图,特征维数是8*8*8 = 512维.在这样的高维空间中,想把两个字符类分开,用线性SVM是轻而易举的事,当

svm损失函数

作者:杜客链接:https://zhuanlan.zhihu.com/p/20945670来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. SVM的损失函数定义如下: 举例:用一个例子演示公式是如何计算的.假设有3个分类,并且得到了分值.其中第一个类别是正确类别,即.同时假设是10(后面会详细介绍该超参数).上面的公式是将所有不正确分类()加起来,所以我们得到两个部分: 可以看到第一个部分结果是0,这是因为[-7-13+10]得到的是负数,经过函数处理后得到0.这一

SVM分类(一)SVM的八股简介

支持向量机(Support Vector Machine)是Cortes和Vapnik于1995年首先提出的,它在解决小样本.非线性及高维模式识别中表现出许多特有的优势,并能够推广应用到函数拟合等其他机器学习问题中[10].    支持向量机方法是建立在统计学习理论的VC 维理论和结构风险最小原理基础上的,根据有限的样本信息在模型的复杂性(即对特定训练样本的学习精度,Accuracy)和学习能力(即无错误地识别任意样本的能力)之间寻求最佳折衷,以期获得最好的推广能力[14](或称泛化能力). 以

SVM: 如何使用SVM

使用SVM包来求θ 我们使用已经编写好的软件包(这些软件包效率高,用得多,是经无数人证明已经很好的可以使用的软件包)来求θ,而不是自己去编写软件来求它们(就像我们现在很少编写软件来求x½).经常使用的是liblinear和libsvm 虽然不用我们自己来写optimize函数,但是需要我们确定的是要选择C(cost function里面bias与variance权衡的参数=1/λ),以及选择什么样的kernel函数. 一种选择是不使用kernel(也称为linear kernel),直接使用x:

SVM:利用SVM算法实现手写图片识别(数据集50000张图片)—Jason niu

import mnist_loader # Third-party libraries from sklearn import svm def svm_baseline(): training_data, validation_data, test_data = mnist_loader.load_data() # train clf = svm.SVC() clf.fit(training_data[0], training_data[1]) predictions = [int(a) for

做一个logitic分类之鸢尾花数据集的分类

做一个logitic分类之鸢尾花数据集的分类 Iris 鸢尾花数据集是一个经典数据集,在统计学习和机器学习领域都经常被用作示例.数据集内包含 3 类共 150 条记录,每类各 50 个数据,每条记录都有 4 项特征:花萼长度.花萼宽度.花瓣长度.花瓣宽度,可以通过这4个特征预测鸢尾花卉属于(iris-setosa, iris-versicolour, iris-virginica)中的哪一品种. 首先我们来加载一下数据集.同时大概的展示下数据结构和数据摘要. import numpy as np

cs231n笔记:线性分类器

cs231n线性分类器学习笔记,非翻译,根据自己的学习情况总结出的内容: 线性分类 本节介绍线性分类器,该方法可以自然延伸到神经网络和卷积神经网络中,这类方法主要有两部分组成,一个是评分函数(score function):是原始数据和类别分值的映射,另一个是损失函数:它是用来衡量预测标签和真是标签的一致性程度.我们将这类问题转化为优化问题,通过修改参数来最小化损失函数. 首先定义一个评分函数,这个函数将输入样本映射为各个分类类别的得分,得分的高低代表该样本属于该类别可能性的高低.现在假设有一个