SVM和Softmax分类器比较

2023-10-27

参考:

作者:啊噗不是阿婆主
来源:CSDN
原文:https://blog.csdn.net/weixin_38278334/article/details/83002748

1.

SVM和Softmax分类器是最常用的两个分类器,Softmax的损失函数与SVM的损失函数不同。对于学习过二元逻辑回归分类器的读者来说,Softmax分类器就可以理解为逻辑回归分类器面对多个分类的一般化归纳。

SVM将输出 f ( x i , W ) f(x_i,W) f(xi,W)作为每个分类的评分(因为无定标,所以难以直接解释)。与SVM不同,Softmax的输出(归一化的分类概率)更加直观,并且从概率上可以解释,这一点后文会讨论。

在Softmax分类器中,函数映射 f ( x i ; W ) = W x i f(x_i;W)=Wx_i f(xi;W)=Wxi 保持不变,但将这些评分值视为每个分类的未归一化的对数概率,并且将折叶损失(hinge loss)替换为交叉熵损失(cross-entropy loss)。

2.

精确地说,SVM分类器使用的是折叶损失(hinge loss),有时候又被称为最大边界损失(max-margin loss)。

Softmax分类器使用的是交叉熵损失(corss-entropy loss)。

Softmax分类器的命名是从softmax函数那里得来的,softmax函数将原始分类评分变成正的归一化数值,所有数值和为1,这样处理后交叉熵损失才能应用。

注意,从技术上说“softmax损失(softmax loss)”是没有意义的,因为softmax只是一个压缩数值i的函数y。但是在这个说法常常被用来做简称。

example 1

针对给出的图像,SVM分类器可能给你的是一个 [ 12.5 , 0.6 , − 23.0 ] [12.5, 0.6, -23.0] [12.5,0.6,23.0],对应分类“猫”,“狗”,“船”;

而softmax分类器可以计算出这三个标签的”可能性“是 [ 0.9 , 0.09 , 0.01 ] [0.9, 0.09, 0.01] [0.9,0.09,0.01],这就让你能看出对于不同分类准确性的把握。

为什么我们要在”可能性“上面打引号呢?这是因为可能性分布的集中或离散程度是由正则化参数 λ λ λ直接决定的, λ λ λ是你能直接控制的一个输入参数。

example 2

假设3个分类的原始分数是 [ 1 , − 2 , 0 ] [1, -2, 0] [1,2,0],那么softmax函数就会计算:

[ 1 , − 2 , 0 ] → [ e 1 , e − 2 , e 0 ] = [ 2.71 , 0.14 , 1 ] → [ 0.7 , 0.04 , 0.26 ] [1,-2,0]\rightarrow[e^1,e^{-2},e^0]=[2.71,0.14,1]\rightarrow[0.7,0.04,0.26] [1,2,0][e1,e2,e0]=[2.71,0.14,1][0.7,0.04,0.26]

现在,如果正则化参数 λ λ λ更大,那么权重 W W W就会被惩罚的更多,然后他的权重数值就会更小。这样算出来的分数也会更小,假设小了一半吧 [ 0.5 , − 1 , 0 ] [0.5, -1, 0] [0.5,1,0],那么softmax函数的计算就是:

[ 0.5 , − 1 , 0 ] → [ e 0.5 , e − 1 , e 0 ] = [ 1.65 , 0.73 , 1 ] → [ 0.55 , 0.12 , 0.33 ] [0.5,-1,0]\rightarrow[e^{0.5},e^{-1},e^0]=[1.65,0.73,1]\rightarrow[0.55,0.12,0.33] [0.5,1,0][e0.5,e1,e0]=[1.65,0.73,1][0.55,0.12,0.33]

现在看起来,概率的分布就更加分散了。还有,随着正则化参数 λ λ λ不断增强,权重数值会越来越小,最后输出的概率会接近于均匀分布。这就是说,softmax分类器算出来的概率最好是看成一种对于分类正确性的自信。和SVM一样,数字间相互比较得出的大小顺序是可以解释的,但其绝对值则难以直观解释。

在实际应用中

SVM和Softmax经常是相似的:通常说来,两种分类器的表现差别很小,不同的人对于哪个分类器更好有不同的看法。

相对于Softmax分类器,SVM更加“局部目标化(local objective)”,这既可以看做是一个特性,也可以看做是一个劣势。

考虑一个评分是 [ 10 , − 2 , 3 ] [10, -2, 3] [10,2,3]的数据,其中第一个分类是正确的。那么一个SVM( Δ = 1 \Delta =1 Δ=1)会看到正确分类相较于不正确分类,已经得到了比边界值还要高的分数,它就会认为损失值是 0 0 0。SVM对于数字个体的细节是不关心的:如果分数是 [ 10 , − 100 , − 100 ] [10, -100, -100] [10,100,100]或者 [ 10 , 9 , 9 ] [10, 9, 9] [10,9,9],对于SVM来说没设么不同,只要满足超过边界值等于 1 1 1,那么损失值就等于 0 0 0

对于softmax分类器,情况则不同。对于 [ 10 , 9 , 9 ] [10, 9, 9] [10,9,9]来说,计算出的损失值就远远高于 [ 10 , − 100 , − 100 ] [10, -100, -100] [10,100,100]的。换句话来说,softmax分类器对于分数是永远不会满意的:正确分类总能得到更高的可能性,错误分类总能得到更低的可能性,损失值总是能够更小。但是,SVM只要边界值被满足了就满意了,不会超过限制去细微地操作具体分数。这可以被看做是SVM的一种特性。
举例说来,一个汽车的分类器应该把他的大量精力放在如何分辨小轿车和大卡车上,而不应该纠结于如何与青蛙进行区分,因为区分青蛙得到的评分已经足够低了。

3. Hinge Loss

Hinge Loss 主要针对要求”maximum-margin”的分类问题,因此尤其适用于SVM分类。

Hinge Loss的定义如下:

l ( y ) = m a x ( 0 , 1 − t ⋅ y ) l(y)=max(0,1−t⋅y) l(y)=max(0,1ty)

其中, t = ± 1 t=±1 t=±1, 需要注意的是 y y y并不是分类的 l a b e l label label,而只是决策函数的输出。

例如在线性SVM中, y = w x + b y=wx+b y=wx+b, x x x 是待分类点, w w w b b b 构成分类超平面。

从定义可以很容易看出,当 t t t y y y符号一致(表示 y y y分类正确) 且 ∥ y ∥ ≥ 1 ‖ ∥y∥≥1‖ y1 H i n g e L o s s ( y ) = 0 ; Hinge \quad Loss\quad (y)=0; HingeLoss(y)=0; 当符号不一致时, l ( y ) = 0 l(y)=0 l(y)=0,随 y y y线性增加。

3.softmax

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SVM和Softmax分类器比较 的相关文章

随机推荐

  • 对于cin提取输入流遇到空格的问题

    引子老谭CPP教材 流提取符 gt gt 从流中提取数据时通常跳过流中的空格 tab键换行符等空白字符 P430页倒数第10行 13 3 1 cin流 用cin gt gt 读取数据时遇到空白字符 包括空格 tab键和回车 作为终止字符 P
  • Eigen学习教程(三)

    Eigen学习教程 三 3 稠密线性问题与分解 本节说明了如何求解线性系统 计算各种分解 例如LU QR SVD 本征分解 阅读此节后 请不要错过我们的密集矩阵分解目录 基本线性求解 Ax b 该解决方案 可将各种分解之间进行选择 取决于你
  • 计算机英特尔显卡在哪找,Win10英特尔显卡设置在哪里 英特尔核芯显卡控制面板六大功能详解...

    Win10系统用户体验相比以前的系统更好 有些用户为了让显卡发挥作用 会在win10里设置显卡功能 显卡设置在哪里 显卡控制面板 显卡控制面板有Intel AMD NVADIA三种 我们通过显卡的控制面板进行显卡更为高级的设置 这时我们就需
  • MATLAB快速入门(一)

    一 简介 本篇参考官方入门文档编写 前提准备 MATLAB 二 快速入门 一 1 桌面基础知识 启动 MATLAB 时 桌面会以默认布局显示 桌面包括下列面板 当前文件夹 访问您的文件 命令行窗口 在命令行中输入命令 由提示符 gt gt
  • c++--标准模板库(STL)

    要看懂STL相关 必须了解c 模板 目录 STL是什么 c 标准模板库包含三个组件 算法 迭代器 迭代器的种类 示例程序 容器 常用的容器 编程练习 string 字符串容器 vector 向量 list 双向链表容器 queue 队列容器
  • Excel 的那些事儿啊

    RIGHT 函数 功能 可以对数值 字符串 进行截取 是从后面开始截取的 语法 RIGHT 截取的数值 截取的个数 使用 例如我们想提前 ID 列中数值的后面的数字 可以使用该函数 1 书写函数 RGIHT A3 3 对 A3 单元格进行截
  • mysql中on duplicate key update用法(批量操作数据、存在更新,不存在则新增),附mybatis配置

    1 应用场景 日常开发中 对于一个数据想做到存在即更新 不存在则新增 通常的做法是先查询数据库中是否存在对应的数据 如果存在就使用更新的方法 不存在就使用新增的方法 如果是单个数据 倒也没什么问题 但如果是批量数据的话 会消耗大量的资源来进
  • 字符串截取之substring_index

    substring index str delim count str 要处理的字符串 delim 分隔符 count 计数 例子 str www wikidm cn substring index str 1 结果是 www substr
  • 自主开发悟空crm增加 公文管理功能 二次开发代码披露

    1 招聘需求 2 审核刚刚创建的招聘需求内容 3 编辑内容 4 简历管理 5 面试记录时间轴 6 offer管理
  • golang interface判断为空nil

    一个接口包括动态类型和动态值 如果一个接口的动态类型和动态值都为空 则这个接口为空的 func IsNil i interface bool vi reflect ValueOf i if vi Kind reflect Ptr retur
  • 【性能测试】性能测试之性能测试指标详解(详细)

    目录 导读 前言 一 Python编程入门到精通 二 接口自动化项目实战 三 Web自动化项目实战 四 App自动化项目实战 五 一线大厂简历 六 测试开发DevOps体系 七 常用自动化测试工具 八 JMeter性能测试 九 总结 尾部小
  • 华为数通方向HCIP-DataCom H12-831题库(单选题:21-40)

    第21题 R3与R1的IS IS邻居没有建立 根据本图的信息 可能的原因是 A R3与R1的IIH认证失败 B R3与R1的System ID重复 C R3与R1的IS Level不匹配 D R3与R1的互连接口circuit type不匹
  • 1282、用户分组

    题目描述 有 n 位用户参加活动 他们的 ID 从 0 到 n 1 每位用户都 恰好 属于某一用户组 给你一个长度为 n 的数组 groupSizes 其中包含每位用户所处的用户组的大小 请你返回用户分组情况 存在的用户组以及每个组中用户的
  • 不同文件类型转base64后的前缀

    写在前面 最近在做office文件上传 需求是这样的 若前端用户上传的是PDF文件 则后端将PDF的第一页转成图片返给前端 若用户上传的是word Excel文件 前端将文件的base64传给后端 后端将文件转成PDF 并将第一页转成图片返
  • 数字医疗“疫”外增长,梅斯健康上市抢跑?

    马云曾说 中国下一个首富 一定在大健康领域 如他所判断的 当下医疗健康领域存在的投资机会逐渐清晰 2021中国大健康趋势发展报告 也称 未来十年 最好的医疗健康产业机会在中国 与这个论点相对应 国内医疗行业发展迅速 港交所官网显示 2021
  • NDK开发(一)————如何在Android Studio下进行NDK开发

    在AS中进行NDK开发之前 我们先来简单的介绍几个大家都容易搞懵的概念 1 到底什么是JNI 什么是NDK 2 何为 交叉编译 先看什么是JNI JNI的全称就是Java Native Interface 即java本地开发接口 可能大家和
  • CTex写数学论文的最简教程

    高手不要看下去了 全是傻瓜式的初步指导 想学的人最好先从本文入手 因为大部分教程都在给你讲latex的原理 什么原理 我就是想写篇论文而已嘛 以后遇见问题具体再学 一口学会再去做是白扯 记得使用百度谷歌和ctex论坛解决问题 1 安装cte
  • Redis哨兵模式(Sentinel)

    哨兵模式 概述 主从切换技术的操作是 当主机宕机后 需要手动把一台从机切换为主机 这就需要人工干预 费事费力 还会造成一段时间内服务不可用 这不是一种推荐的方式 更多时候 我们优先考虑哨兵模式 Redis 从 2 8 开始正式提供了 Sen
  • c++ interview

    数据结构篇 判断单链表是否有环 单链表排序 两个链表合并后仍然有序 网络编程 五层网络架构 tcp和udp的区别 流量控制和拥塞控制 upd通信流程 udp如何实现可靠传输 进程线程篇 多线程如何同步 进程和线程的区别 进程间的通讯方式 并
  • SVM和Softmax分类器比较

    参考 作者 啊噗不是阿婆主 来源 CSDN 原文 https blog csdn net weixin 38278334 article details 83002748 1 SVM和Softmax分类器是最常用的两个分类器 Softmax