9. 支持向量机(SVM)

news2024/11/30 5:01:26

9.1 优化目标

在逻辑回归中做一些小改动变成支持向量机。

如果观察逻辑回归的代价函数,会发现每个样本(x,y)都会为总的代价函数增加如下图这一项。因此对于总的代价函数,我们通常对所有的训练样本从第1项到第m项进行求和。

 图中的这一表达式就代表每个单独的训练样本对逻辑回归的总体目标函数所作的贡献。

本部分就是把逻辑回归中的损失函数变为更简单的cost1、cost0,经过变换形成了SVM的代价函数。支持向量机在逻辑回归的基础上简化了代价函数,逻辑回归使用正则项来权衡θ的大小,以此解决过拟合的问题。SVM也是类似,它是在代价函数上添加系数C,效果等价。

代价函数

 SVM的假设函数

可以这么理解:logistics预测的输出值是(z),是通过拟合theta获得的概率。但是SVM,优化代价函数得到theta,再直接通过theta和x的积来做分类。

9.2 直观上对最大间隔的理解

SVM又叫做最大边界分类问题,观察代价函数可以得到

 最小化代价函数,就是让左侧代价函数的和尽可能等于0,即对应\theta^{T}x,另外还有右侧的\theta^{2}的和最小,即向量的模尽可能小。

SVM决策边界

当你有一个标签为y=1的训练样本,如果你要使第一项为0,那么你需要找到一个\theta值,使得\theta^{T}x^{(i)}\geqslant 1。类似地,如果有一个标签为y=0的样本,为了使代价函数cost0(z)为0,要使\theta^{T}x^{(i)}\leqslant -1。因此我们要把优化问题看作是:通过选择参数来使得第一项等于0,那么优化问题就变成了min C\times 0+\frac{1}{2}\sum_{j=1}^{n}\theta_{j}^{2},它受以下条件限制:\left\{\begin{matrix} \theta^{T}x^{(i)}\geqslant 1,if y^{(i)}=1\\ \theta^{T}x^{(i)}\leqslant 1,ify^{(i)}=0 \end{matrix}\right.

 分类问题的界限有多种可能,SVM对于如下二分类的问题,往往会得到黑色的那条分界线,这条线恰好对应着最大的边界,因此也叫做最大边界分类问题。

从上图中可以发现黑色的决策边界和训练样本的最小距离要更大一些,相比之下红线和绿线它们与训练样本的间距就非常地近。在分离样本时,它们的表现会比黑线更差。因此这个距离叫做支持向量机(SVM)的间距(margin),这使得支持向量机具有鲁棒性。因为它在分离数据时会尽量用大的间距去分离。有些时候SVM被称为大间距分类器。

代价函数中的C决定了边界的划分,如果C很大对应逻辑回归的λ很小,模型过拟合,这样就会的到紫色的分界线,通过C的取值,我们可以决定边界的划分。

9.3 SVM的数学原理

向量的内积,等价于投影长度的乘积。

 因此,\theta^{T}x可以写成p\left \| \theta \right \|

一方面优化目标促使theta变小,而另一方面约束条件又约束内积不能小于一个常数,所以theta就被迫转向能够同时满足两个条件的方向!

 对于左侧的\theta,每个x向量在\theta上的投影距离很小,要满足条件那么\left \| \theta \right \|就要增大,这样最小化代价函数的值就不是最优的,可能发生过拟合,所以SVM会得到类似右侧的边界,这样\left \| \theta \right \|尽可能小些,因为投影距离都比左侧的要大,这也是最大边界的原因。要让代价最小,那就得theta范数小,只有让p尽可能大的时候,theta范数才会最小,代价才最小,最根本还是想要最小化代价函数。

优化目标是要\theta尽量小,所以在满足条件也就是cost函数的条件下,进行\theta最小化选择在这里决策边界是一条直线,\theta_{0}\theta_{n}是这个直线的系数,这些系数所在的向量为这条直线的法向量,这些系数所在的法向量与直线垂直,推广到n维空间是一样的,不过直线变成了平面或者立体。

9.4 核函数

对于一个非线性决策边界问题,我们可能使用高阶的函数进行拟合,但是是否存在比当前特征刚好的表达形式呢?

我们可以将每种特征表示为f_{i},使用高斯核函数来做相似度分析。随机选择三个点作为标记,通过核函数可以得到x对应的新特征。

 使用高斯函数的特点:如果相似度很高,即对应的欧几里得距离≈0对应f_{i}=1,相反如果相似度低对应f_{i}=0

 例子:

 假设我们已经训练好参数\theta,那么就可以通过\theta^{T}f\geqslant 0来进行预测,即对应红色的决策边界。

可以直接将训练集中的x^{(i)}作为核函数中的l^{(i)}

 整个过程的大纲如下:

  • 给定m个训练样本,选取与m个训练样本完全一样的位置作为我的标记点。当给定样本x(样本x属于训练集也可以属于交叉验证集或者属于测试集)我们来计算特征f_{1}f_{2}等等,然后给了我们一个特征向量。
  • 如果我们有一个训练样本(x^{(i)},y^{(i)}),对这个样本要计算的特征是这样的。给定x^{(i)},将其映射到f_1^{(i)}=similarity(x^{(i)},l^{(i)})f_2^{(i)}=similarity(x^{(i)},l^{(i)})、...、f_m^{(i)}=similarity(x^{(i)},l^{(i)})。在这列表中,第i个元素实际上有一个特征元素写作f_i^{(i)}=similarity(x^{(i)},l^{(i)})=1,接下来将这个列表合并为一个特征向量。

 SVM在使用核函数的时候,对应代价函数就可以替换为:

在使用支持向量机时,怎样选择支持向量机中的参数?

支持向量机中的偏差-方差折中。在使用支持向量机时,其中要选择的事情是优化目标中的参数C,C的作用与\frac{1}{\lambda }类似,\lambda是逻辑回归算法中的正则化参数。所以大的C参数对应着之前逻辑回归问题中的小的\lambda,这意味着不使用正则化就有可能得到一个低偏差高方差(过拟合)的模型;而小的C参数应着之前逻辑回归问题中的大的\lambda,这意味着不使用正则化就有可能得到一个高偏差低方差(欠拟合)的模型。

另外一个要选择的参数是高斯核函数中的\sigma ^{2}。当高斯核函数中的\sigma ^{2}偏大时,那么对应的相似度函数为exp(-\frac{\left \| x-l^{(i)} \right \|^{2}}{2\sigma ^{2} }),变化缓慢,对应的高斯核函数的图像倾向于变得相对平滑,由于函数平滑且变化的比较缓慢,这会给模型带来较高的偏差和较低的方差。相反,如果高斯核函数中的\sigma ^{2}偏小时,对应的相似度函数变化剧烈,对应的高斯核函数的图像倾向于变得不平滑,会有较大的斜率和较大的导数,在这种情况下,会给模型带来较低的偏差和较高的方差

9.5 使用SVM

可以使用软件库来算\theta,但是也需要做几件事:首先是提出参数C的选择,不论是逻辑回归还是不带核函数的SVM通常都会做相似的事情,并给出相似的结果。但是根据实际的情况,其中一个可能会比另一个更加有效。但是在其中一个算法应用的地方,逻辑回归或不带核函数的SVM,另一个也很可能很有效。随着SVM的复杂度增加,当你使用不同的内核函数来学习复杂的非线性函数时,SVM的表现会非常突出。

最后什么时候用神经网络呢?对于不同的设计,设计良好的神经网络可能会非常有效,有一个缺点就是,有时可能不会使用神经网络的原因是对于有些问题来说,神经网络训练起来可能会特别慢。但是如果你有一个非常好的SVM实现包可能会运行的比较快。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/619849.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CnOpenData小巨人和单项冠军企业专利及引用被引用数据

一、数据简介 专精特新”一词最早来源于2011年7月,由时任工信部总工程师朱宏任在《中国产业发展和产业政策报告(2011)》新闻发布会上首次提出。“专精特新”是指具备专业化、精细化、特色化、创新型四大优势的企业。根据工信部的定义&#xf…

单层玻璃隔断移门轨道滑轮如何安装

在家居装修中,隔断是不可或缺的一部分。而单层玻璃隔断因其时尚美观和装修效果好,备受人们的喜爱。在单层玻璃隔断中,移门轨道和滑轮的选择及安装也是至关重要的一环。下面,阁瑞活动隔断就为大家详细介绍一下单层玻璃隔断移门轨道…

javaScript蓝桥杯----年度明星项⽬

目录 一、介绍二、准备三、⽬标四、代码五、完成 一、介绍 作为前端开发的主⼒语⾔, JavaScript 相关的开源项⽬是每⼀个前端开发者都应该多多关注的。我们可以通过这⼀年新增 star 的数量来判断⼀个开源项⽬的流⾏趋势。 本题请实现⼀个展示 2022 年 JavaScript 明…

【MySQL数据库 | 第六篇】DDL操作 表

目录 🤔前景知识: 数据类型: 1. 数值类型 2. 字符串类型 3. 日期时间类型 🤔DDL操作表: 1.创建 示例:尝试创建把以下实例创建到表里 2.查询 1.查询当前数据库的所有表: &#x1f50…

Ai前沿技术汇总[1]:Quivr非结构化信息搜索、Drag Your GAN AI修图、MiniGPT-4、Falcon-40B、localGPT

“AI前沿技术”专栏汇集了最前沿的人工智能技术,包括自然语言处理、语音识别、图像识别、机器学习、深度学习、强化学习、计算机视觉、区块链技术、智能机器人技术和虚拟现实技术等。本专栏将带您了解人工智能领域的最新进展和研究成果,探索人工智能技术…

软件测试的案例分析 - 闰年4.2 (加投票)

这篇博客的目录 文章目的正文错误之一出错后怎么改正?正确而简明的算法 文章目的 显示不同的博客能获得多少博客质量分 (这是关于博客质量分的测试 https://www.csdn.net/qc) 这个博客得了 60 分。 希望在新的质量分系统中,获得 80 - 90 分左…

NoSQL数据库

NoSQL数据库 NoSQL简介NoSQL兴起的原因NoSQL与关系数据库的对比NoSQL的四大类型键值数据库列族数据库文档数据库图形数据库不同类型数据库比较分析RedisMongoDBCassandraNeo4j NoSQL三大基石CAPBASE最终一致性 NoSQL简介 “Not Only SQL”泛指非关系型的数据库,区别…

简单分享怎么通过微信小程序开店

小程序开店的好处 1.可以为用户提供更多的便利。通过使用微信或其他社交媒体,可以随时随地与潜在客户进行交流互动。 2.让消费者体验更好。通过二维码、小程序代码等方式,消费者能够快速找到所需产品和服务。 3.有助于降低营销成本。相比传统销售渠道…

关于Idea的一些常用设置项

1. 输出中文不乱码 设置工程项目编码 file -> settings -> Editor -> File Encodings-> 如下图通通UTF-8 2. 创建文件自动设置本文模板 File–>settings–>Editor–>File and Code Templates–>Includes -> 输入类注释模板 /*** Classname ${N…

第9章:SpringMVC的拦截器

一、拦截器 1.拦截器的配置 SpringMVC中的拦截器用于拦截控制器方法的执行SpringMVC中的拦截器需要实现HandlerInterceptorSpringMVC的拦截器必须在SpringMVC的配置文件进行配置 ①创建拦截器,继承接口HandlerInterceptor. Component public class FirstIntercep…

深入理解Linux虚拟内存管理(五)

系列文章目录 Linux 内核设计与实现 深入理解 Linux 内核(一) 深入理解 Linux 内核(二) Linux 设备驱动程序(一) Linux 设备驱动程序(二) Linux 设备驱动程序(三&#xf…

面试银行测试岗,面试官问你网上银行转账是怎么测的,设计一下测试用例?你知道吗

目录 前言 1、网上银行转账是怎么测的,设计一下测试用例回答思路: 2.测试工作的流程?缺陷状态有什么?设计测试用例有几种方法? 3在项目中到的经典BUG是什么? 4、定期存款到期自动转存该怎么测? 5、登录功能如何设计测试用例?功能测试(FunctionTest) 6、…

上海亚商投顾:创业板指续创新低 AI概念股逆势大涨

上海亚商投顾前言:无惧大盘涨跌,解密龙虎榜资金,跟踪一线游资和机构资金动向,识别短期热点和强势个股。 市场情绪 大小指数今日走势分化,沪指全天横盘震荡,创业板指低开低走,午后一度跌近2%&…

低代码最真实的反馈是什么样的?

一、前言 业内大V陈果曾吐槽:“低代码正在以比中台更快的速度在臭大街”,但在另一方面,微软/华为/百度/网易/腾讯/阿里等互联网巨头又在纷纷入局低代码,并推出了自己的低代码平台。 所以,有人说好,但却又有…

《计算机组成原理》期末考试手写笔记——模块二:计算机数据表示方法

目录 (一)知识点总结 知识点一:进制表示 知识点二:进制转换 1.基本进制转换计算 (1)二进制数转八进制 (2)二进制数转十六进制 (3)二进制数转十进制 &…

Redis从入门到精通【高阶篇】之底层数据结构压缩列表(ZipList)详解

👏 简介:大家好,我是冰点,从业11年,目前在物流独角兽企业从事技术管理和架构设计方面工作,之前的把博客作为技术流水账在写。现在准备把多年的积累整理一下,成体系的分享给大家,也算…

阿里巴巴最新开源“SpringSecurity手册”用户+案例+认证+框架,面面俱到太全了

pringSecurity 相信Spring大家一定不陌生,那么SpringSecurity你又了解多少呢?市面上有关Spring的介绍有很多,那么对于SpringSecurity只有一些简单的有关概念的介绍,如果想深入了解并使用SpringSecurity还是需要下很大的功夫的&am…

Python爬取广州、深圳、河源、惠州四个城市天气数据,并作数据可视化

本文爬取的网站是天气,天气预报查询,24小时,今天,明天,未来一周7天,10天,15天,40天查询_2345天气王 1.爬取广惠河深2022-2024年的数据 import requests # 发送请求要用的模块 需要额外安装的 import parsel import csvf open(广-惠-河-深天气.csv, modea, encodingut…

【自学网安必看】自学网络安全遇到的问题及解决方法!

自学网络安全很容易学着学着就迷茫了,找到源头问题,解决它就可以了,所以首先咱们聊聊,学习网络安全方向通常会有哪些问题,看到后面有惊喜哦 1、打基础时间太长 学基础花费很长时间,光语言都有几门&#x…

STM32 HAL库开发——入门篇(1)

目录 一、GPIO 1.1 什么是GPIO 1.2 GPIO简介 1.2.1 GPIO特点 1.2.2 GPIO电气特性 1.2.3 GPIO引脚分布 1.3 IO端口基本结构介绍 1.4 GPIO的八种模式 1.5 GPIO的寄存器介绍 1.6 通用外设驱动模型(四步法) 1.7 GPIO配置步骤 1.8 编程实战…