机器学习---SVM目标函数求解,SMO算法

1. 线性可分支持向量机

1.1 定义输入数据

假设给定⼀个特征空间上的训练集为:

其中,(x , y )称为样本点。 x 为第i个实例(样本)。

y 为x 的标记: 当y = 1时,x 为正例;当y = −1时,x 为负例

正负用(-1,1)表示的原因:最大的作用就是标记,你也可以⽤(2,-3)来标记。只是为了⽅便,y

/y = y ∗ y 的过程中刚好可以相等,便于之后的计算。)

1.2 最大间隔

给定了上⾯提出的线性可分训练数据集,通过间隔最大化得到分离超平面为

相应的分类决策函数为:

以上决策函数就称为线性可分⽀持向量机。 Φ(x)是某个确定的特征空间转换函数,它的作⽤是将x

映射到更高的维度,它有⼀个以后我们经常会见到的专有称号"核函数"。

        比如我们看到的特征有2个: x1, x2,组成最先见到的线性函数可以是w1x1 + w2x2。但也许这

两个特征并不能很好地描述数据,于是我们进行维度的转化,变成了 w1x1 + w2x2 + w3x1x2+

w4x^2 + w5x^2。于是我们多了三个特征。⽽这个就是笼统地描述x的映射的。 最简单直接的就

是:Φ(x) = x。

       我们要去求出这样⼀个超平面y(x),它能够最优地分离两个集合。 其实也就是我们要去求⼀组

参数(w,b),使其构建的超平面函数能够最优地分离两个集合。

如下就是⼀个最优超平面:

1.3 推到目标函数

 超平面表达式:为了方便我们让:

则在样本空间中,划分超平面可通过如下线性方程来描述:

其中, 为法向量,决定了超平面的方向;

          b为位移项,决定了超平面和原点之间的距离。

显然,划分超平面可被法向量w和位移b确定,我们把其记为(w,b)。

样本空间中任意点x到超平面(w,b)的距离可写成:

假设超平面(w, b)能将训练样本正确分类,即对于(x , y ) ∈ D。

令:

如图所示,距离超平面最近的几个训练样本点使上式等号成立,他们被称为“支持向量"。

两个异类支持向量到超平面的距离之和为:

欲找到具有最⼤间隔的划分超平面,也就是要找到能满足下式中约束的参数w和b,使得γ最大。 

显然,为了最⼤化间隔,仅需要最大化:,这等价于最小化

于是上式可以重写为:

PS:||W||是向量与矩阵的范数。

1.4 目标函数的求解

因为目标函数带有⼀个约束条件,所以我们可以用拉格朗日乘子法求解。

拉格朗日乘子法 (Lagrange multipliers)是⼀种寻找多元函数在⼀组约束下的极值的方法。

通过引入拉格朗日乘子,可将有 d 个变量与 k 个约束条件的最优化问题转化为具有 d + k 个变量的

无约束优化问题求解。

经过朗格朗日乘子法,我们可以把目标函数转换为:

其中,要想求得极小值,上式后半部分: 

走到这⼀步,这个目标函数还是不能开始求解,现在我们的问题是极小极大值问题 。

我们要将其转换为对偶问题,变成极⼤极小值问题:

⾸先我们对原目标函数的w和b分别求导:

            原函数为:

            对w求偏导:

            对b求偏导:

然后将以上w和b的求导函数重新代⼊原目标函数的w和b中,得到的就是原函数的对偶函数:

于是现在要求的是这个函数的极大值max(a),写成公式就是: 

好了,现在我们只需要对上式求出极⼤值α,然后将α代⼊w求偏导的那个公式:

         从而求出w。将w代⼊超平面的表达式,计算b值;现在的w,b就是我们要寻找的最优超平面的参数。 

2. 线性不可分支持向量机

2.1 线性不可分的情况

我们可以为分错的点加上一点惩罚,对一个分错的点的惩罚函数就是这个点到其正确位置的距离:

        C是一个由用户去指定的系数,表示对分错的点加入多少的惩罚,当C很大的时候,分错的点

就会更少,但是过拟合的情况可能会比较严重,当C很小的时候,分错的点可能会很多,不过可能

由此得到的模型也会不太正确 。

软支持向量机求解:

构造拉格朗日公式:

求偏导数:

转为对偶函数求解。

实际上在处理大型问题时,由于存储和计算两方面的要求,这些算法往往会失效。 

2.2 坐标上升法

        固定除 αi 之外的所有参数,这时W可看作只是关于 αi 的函数,那么直接对 αi 求导优化即

可。可以通过更改优化顺序来使W能够更快地增加并收敛。如果W在内循环中能够很快地达到最

优,那么坐标上升法会是一个很高效的求极值方法。

固定以外的所有参数,那么将不再是变量(可以由其他值推出),因为问题中规定了

因此,我们最少一次需要选取两个参数做优化,比如αi和αj,此时可以由和其他参数表示出来。 

3. SMO算法

3.1 SVM算法特点

        SVM有如下主要几个特点:(1)非线性映射是SVM方法的理论基础,SVM利用内积核函数代替

向高维空间的非线性映射;(2)对特征空间划分的最优超平面是SVM的目标,最大化分类边际的思想

SVM方法的核心;(3)支持向量是SVM的训练结果,SVM分类决策中起决定作用的是支持向量。

因此,模型需要存储空间小,算法鲁棒性强;(4)无序任何前提假设,不涉及概率测度。

        SVM有如下主要几个缺点:(1) SVM算法对大规模训练样本难以实施由于SVM是借助二次规

划来求解支持向量,而求解二次规划将涉及m阶矩阵的计算(m为样本的个数),当m数目很大时

该矩阵的存储和计算将耗费大量的机器内存和运算时间。针对以上问题的主要改进有有J.Platt

SMO算法、T.JoachimsSVMC.J.C.Burges等的PCGC、张学工的CSVM以及O.L.Mangasarian

等的SOR算法;(2) 用SVM解决多分类问题存在困难经典的支持向量机算法只给出了二类分类的算

法,而在数据挖掘的实际应用中,一般要解决多类的分类问题。可以通过多个二类支持向量机的组

合来解决。主要有一对多组合模式、一对一组合模式和SVM决策树;再就是通过构造多个分类器

的组合来解决。主要原理是克服SVM固有的缺点,结合其他算法的优势,解决多类问题的分类精

度。如:与粗集理论结合,形成一种优势互补的多类问题的组合分类器。

3.2 SMO算法

        SMO算法由Microsoft ResearchJohn C. Platt1998年提出,并成为最快的二次规划优化算

法,特别针对线性SVM和数据稀疏时性能更优。第一步选取一对参数,选取方法使用启发式方法

(Maximal violating pair)。第二步,固定除被选取的参数之外的其他参数,确定W极值。

        假设我们选取了初始值满足了问题中的约束条件。接下来,我们固定其余参数,这样W就是

和的函数。并且和满足条件: 

由于其余参数都是已知固定,因此为了方便,可将等式右边标记成实数值。

 

进而:

目标函数:

其中:

求偏导:

带入w, v:

求得:

最终参数的解为:

3.3 参数取值

当a1和a2异号时,也就是一个为1,一个为-1时,他们可以表示成一条直线,斜率为1。如下图:

横轴是a2,纵轴是a1,a1和a2既要在矩形方框内,也要在直线上,因此

同理,当y1和y2同号时:

参数计算:

b的求解:

在界内,则

,代入上式得:

两边同乘以y1,得:

       

在界内,则

在界内,则情况1和情况2的b值相等,任取一个;都不在界内,则    取值为

情况1和情况2之间的任意值。   

3.4 算法终止条件

       一个自然的想法是那些违反KKT最严重的点,他们对间距贡献最大,因此可以通过该启发规则

来完成调整参数的选取。(并且此种启发规则计算量小)

①停止条件1(满足KTT条件)

KTT条件:

 并设:

代入得:左移:

分别乘以yi

统一得到:

等价于:

如果对于:可以判断:

②停止条件2

③停止条件3

       应该指出,检验停机准则的精度要求对算法的执行时间影响很大。过高的要求会非常浪费时

间,却不一定会改进决策函数。所以在实际应用中,我们要精心选择停机准则.

此外,上面停机准则的讨论也会给我们改进算法和提高算法的效率提供一些启发,比如在迭代过程

中可以特别注意那些违背停机准则“最严重”的训练点。

其他的求解方法:

选块算法: 

分解算法:

工作集的选取:

 

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

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

相关文章

vue3项目实践

创建 vue3 项目 node本版:node 16.x.x, 脚手架:create-vue 脚手架工具,底层vite 创建vue3项目:npm init vuelatest setup函数 vue3 单文件组件 1、vite.config.js配置文件基于vite的配置 2、template模板不再要求唯…

docker compose实现容器编排

Compose 使用的三个步骤: 使用 Dockerfile 定义应用程序的环境 使用 compose.yml 定义构成应用程序的服务,这样它们可以在隔离环境中一起运行 最后,执行 docker compose up 命令来启动并运行整个应用程序 为什么需要docker compose Dock…

万宾科技管网水位监测助力智慧城市的排水系统

以往如果要了解城市地下排水管网的水位变化,需要依靠人工巡检或者排查的方式,这不仅加大了人员的工作量,而且也为市政府带来了更多的工作难题。比如人员监管监测不到位或无法远程监控等情况,都会降低市政府对排水管网的管理能力&a…

SpringBoot配置文件优先级

1.idea临时属性 说明:Program arguments配置--server.port8082 --ab;意思是将端口改成了8082。这个优先级最高。 2.resource 说明:创建config文件里面的yml文件。 3.jar包同级(yml) 说明:创建一个yml文件…

如何去除视频水印?三种简便有效的方法解决视频水印问题

在当今社交媒体时代,视频分享已成为一种流行趋势。然而,很多人在分享自己的作品时却苦于视频上存在的水印,水印通常是出于版权保护或品牌推广的目的而添加到视频中的,但有时它们可能会对用户体验造成负面影响。 如果您正在寻找如何…

渗透工具使用及思路总结(持续更新)

扫描类 nmap 快速扫描开放端口 nmap --min-rate 10000 -p- 10.129.252.63扫描详细全服务 nmap -sV -A -p 22,80 10.129.252.63 nmap -sV -A -p- 10.129.252.63-l:显示正在监听的 TCP 和 UDP 端口; -a:显示所有活动的 TCP 连接; -A <网络类型>或 - <网络类型&g…

苹果加大对印度的扶持,提高在其生产iphone的比重

KlipC报道&#xff1a;跟踪苹果产业链&#xff0c;有分析师预计2023年全球约12%-14%的iphone在印度生产&#xff0c;预计2024年&#xff0c;印度将生产20%-25%的iphone。 KlipC的合伙人Andi D表示&#xff1a;“近年来随着苹果对中国的以来&#xff0c;印度已经成为高科技制造和…

0003Java安卓程序设计-springboot基于Android的学习生活交流APP

文章目录 **摘** **要**目 录系统设计开发环境 编程技术交流、源码分享、模板分享、网课教程 &#x1f427;裙&#xff1a;776871563 摘 要 网络的广泛应用给生活带来了十分的便利。所以把学习生活交流管理与现在网络相结合&#xff0c;利用java技术建设学习生活交流APP&…

[PyTorch][chapter 59][强化学习-2-有模型学习]

前言&#xff1a; 在已知模型的环境里面学习,称为有模型学习&#xff08;model-based learning&#xff09;. 此刻,下列参数是已知的&#xff1a; : 在状态x 下面,执行动作a ,转移到状态 的概率 : 在状态x 下面,执行动作a ,转移到 的奖赏 有模型强化学习的应用案例 …

解决vmware安装ubuntu虚拟机显示不全以及无法实现windows与虚拟机之间无法相互复制粘贴问题

01、存在问题 02、解决方案 sudo apt-get autoremove open-vm-tools sudo apt-get install open-vm-tools sudo apt-get install open-vm-tools-desktop reboot //重启重启后界面如下&#xff1a; 存在Bug 如果遇到一下问题&#xff0c;请先执行下列命令&#x…

.NET Framework中自带的泛型委托Func

Func<>是.NET Framework中自带的泛型委托&#xff0c;可以接收一个或多个输入参数&#xff0c;并且有返回值&#xff0c;和Action类似&#xff0c;.NET基类库也提供了多达16个输入参数的Func委托&#xff0c;输出参数只有1个。 1、Func泛型委托 .NET Framework为我们提…

陕西某小型水库雨水情测报及大坝安全监测项目案例

项目背景 根据《陕西省小型病险水库除险加固项目管理办法》、《陕西省小型水库雨水情测报和大坝安全监测设施建设与运行管理办法》的要求&#xff0c;为保障水库安全运行&#xff0c;对全省小型病险水库除险加固&#xff0c;建设完善雨水情测报、监测预警、防汛道路、通讯设备、…

【word技巧】ABCD选项如何对齐?

使用word文件制作试卷&#xff0c;如何将ABCD选项全部设置对齐&#xff1f;除了一直按空格或者Tab键以外&#xff0c;还有其他方法吗&#xff1f;今天分享如何将ABCD选项对齐。 首先&#xff0c;我们打开【替换和查找】&#xff0c;在查找内容输入空格&#xff0c;然后点击全部…

回溯算法--4后问题

1.问题描述 四皇后问题&#xff1a;在4 4 的方格棋盘上放置4个皇后&#xff0c;使得没有两个皇后在同一行、同一列、也不在同一条45度的斜线上。问有多少种可能的布局&#xff1f; 解是4维向量 比如上面这个解<2,4,1,3> 分别表示圆圈的第2列、第4列等 还可以得到另一解…

javaSE学习笔记-未完

目录 前言 一、java基础 1.1概述 1.java语言发展史 2.Java语言版本 3.Java语言平台 4.Java语言特点 5.Java语言跨平台原理-可移植性 6.JRE和JDK的概述 7.JDK的下载和安装 8.JDK安装路径下的目录解释 9.path环境变量的作用及配置方式 10.classpath环境变量的作用及…

包装印刷行业万界星空科技云MES解决方案

印刷业的机械化程度在国内制造行业内算是比较高的&#xff0c;不算是劳动密集型企业。如书本的装订、包装的模切、烫金、糊盒等都已经有了全自动设备。印刷厂除了部分手工必须采用人工外&#xff0c;大部分都可以采用机器&#xff0c;也就意味着可以由少量工人生产出大量产品。…

Java Jar 包还不知道怎么反编译,赶紧看看这个 IDEA 插件!

前言 当我们使用 Java 开发时&#xff0c;经常会遇到一种情况&#xff1a;我们拿到了一个 JAR 文件&#xff0c;但是却没有源代码。这时候&#xff0c;我们就需要使用反编译工具来帮助我们还原出源代码。 反编译工具可以将编译后的 JAR 文件转换回可读的 Java 源代码。这样&a…

vscode设置保存后,自动格式化代码

第一步&#xff1a;打开setting.json文件 第二步&#xff1a;在setting.json中加入以下代码 "editor.formatOnType": true, "editor.formatOnSave": true, "editor.formatOnPaste": true

【网络协议】聊聊DNS协议如何域名解析和负载均衡

DNS 服务器 我们知道如果使用IP地址进行访问网站&#xff0c;很难进行记忆&#xff0c;所以DNS的作用是将域名转换成对应的IP地址。如果全世界都使用同一台DNS服务器&#xff0c;那么DNS服务器本身需要保证服务的高可用、高性能&#xff0c;以及分布式等。最好的方式就是分层。…

【4步精确手册】帮助你快速掌握国外纳斯达克大屏营销推广!

纳斯达克&#xff08;Nasdaq&#xff09;是美国著名的证交所之一&#xff0c;它是以高科技企业的上市闻名世界。纳斯达克大屏营销推广指的是在纳斯达克交易中心大型屏上展现广告、宣传信息的一种营销推广方式。下面我们就为大家介绍一下如何用四个简易流程把握国外纳斯达克大屏…