最优间隔分类器-SVM

http://blog.csdn.net/Andrewseu/article/details/46991541

本讲大纲:

1.最优间隔分类器(optimal margin classifier) 
2.原始/对偶优化问题(KKT)(primal/dual optimization problem) 
3.SVM对偶(SVM dual) 
4.核方法(kernels)(简要,下一讲详细)

1.最优间隔分类器

假设给我们的数据集是线性可分的(linearly separable). 就是说用超平面可以分隔正负样本. 我们要找到最大的几何间隔. 我们可以转化为下面的优化问题: 
这里写图片描述 
由于||W|| = 1,这保证了函数间隔等于几何间隔,只要解决了上面的优化问题我们就解决了这个问题,但是||W||是一个不好的(非凸性)的限制,这不是我们能够直接用软件解决的优化问题. 因此转化为更好的一个问题: 
这里写图片描述

我们最大化这里写图片描述, 我们把限制||W||去掉了,但是这里写图片描述仍然是非凸性的.

前面有讨论过对w和b加上任意比例的限制不会改变什么. 因此,加上规模的限制,对训练集的函数间隔设置为1:这里写图片描述 
因此这里写图片描述,最优化问题变为: 
这里写图片描述 
上面的优化问题变为一个凸二次目标函数(convex quadratic objective). 这给我们一个最优间隔分类器的解决方案. 这个优化问题可以用商用的二次编程代码解决.

2.原始/对偶优化问题

2.1 拉格朗日二元性(Lagrange duality) 
考虑下面形式的问题: 
这里写图片描述 
我们可以用拉格朗日乘数法来解决这个问题.

定义Lagrangian为: 
这里写图片描述 
这边这里写图片描述成为拉格朗日乘数(Lagrange multipliers). 另其偏导数为零. 
这里写图片描述 
然后解出w和这里写图片描述

2.2 原始优化问题(primal optimization problem) 
这里写图片描述 
定义一般的拉格朗日算子(generalized Lagrangian)
这里写图片描述 
这里写图片描述是拉格朗日乘数. 
这里写图片描述 
下标”P”表示”prime”, 如果给定的w违反了原始限制(这里写图片描述),则 
这里写图片描述 
如果w满足原始限制,那么这里写图片描述 因此: 
这里写图片描述

考虑最小化问题: 
这里写图片描述 
可以看到回到了最初的原始问题. 定义目标的原始值为这里写图片描述.

一个略微不同的问题: 
这里写图片描述 
下标”D”表示”dual”.

2.3 对偶优化问题(dual optimization problem) 
这里写图片描述 
同样的,定义目标的对偶值为:这里写图片描述

显然:这里写图片描述 
函数最小值的最大值肯定小于等于最大值的最小值),在某些条件下,会有这里写图片描述,因此我们可以通过解决原始问题来解决对偶问题.

假设f和g是凸函数(黑塞矩阵为半正定的),h为仿射函数(affine,和线性是一样的,只不过是加了截距,这里写图片描述). 假设g是严格可行的,就是说对于所有的i存在这里写图片描述.

基于上面的假设,肯定存在这里写图片描述使得w*是原始问题的解而这里写图片描述是对偶问题的解. 而且这里写图片描述这里写图片描述满足KKT条件(Karush-Kuhn-Tucker condition),如下: 
这里写图片描述 
如果这里写图片描述满足KKT条件,那么就是原始问题和对偶问题的解. 
等式(5)称为KKT对偶补充条件(KKT dual complementarity condition). 具体来说,就是如果这里写图片描述,那么这里写图片描述0.

3.SVM对偶

前面为了找到最优间隔分类器,提到以下的优化问题(原始优化): 
这里写图片描述 
限制可以写为: 
这里写图片描述 
这里写图片描述 
(实线为超平面) 
最小的间隔是离决定边界最近的点,上图中有三个(一个负的两个正的),因此对于我们的优化问题只有三个a是不等于零的. (KKT对偶补充条件,只有这里写图片描述,函数边界才等于 1). 这三个点被称为支持向量(support vector)支持向量的数量比训练样本数量小很多在以后会非常有用.

为优化问题构建Lagrangian,有: 
这里写图片描述 
对w求偏导: 
这里写图片描述 
推出: 
这里写图片描述 
对b求偏导: 
这里写图片描述

根据上面的式子化简得到: 
这里写图片描述 
最后一项为零,进一步得到: 
这里写图片描述

得到以下对偶优化问题: 
这里写图片描述 
需要满足这里写图片描述d*和KKT条件来满足我们的优化问题. 因此我们可以通过解决原始问题来解决对偶问题. 原始w作为a的函数,已经有了这里写图片描述之后, 很容易得到截距b为: 
这里写图片描述 
再得到: 
这里写图片描述 
因此如果我们找到了a,为了预测,我们只需要计算x和数据集中点的内积(这里写图片描述). 并且我们知道除了支持向量a都是零,因此我们只需要计算x和支持向量的内积就可以进行预测了.

4.核方法

有时候训练样本的维数很高,甚至有可能得到的特征向量是无限维的. 通过计算不同方法的内积,利用内积来进行有效的预测.


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

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

相关文章

自动给 Asp.Net Core Api 增加 ApiVersionNeutral

自动给 Asp.Net Core Api 增加 ApiVersionNeutralIntro新增加一个 Controller 的时候,经常忘记在 Controller 上增加 ApiVersion ,结果就导致前端使用指定的 ApiVersion 访问的时候就会失败,不支持的 Api 版本。错误信息如下:{ &q…

K-means与高斯混合模型

K-means http://blog.pluskid.org/?p17 Clustering 中文翻译作“聚类”,简单地说就是把相似的东西分到一组,同 Classification (分类)不同,对于一个 classifier ,通常需要你告诉它“这个东西被分为某某类”这样一些例子&#xf…

轻量级ORM《sqlcommon》第一个版本发布了

一、sqlcommon的特色1. 轻量级,整个包只有123kb。2. 性能好,自测。。。3. API和功能简单、代码简短、可维护性好基本都能看懂。这个点我认为很重要,你不用为了实现一个需求而四处查资料,这意味着这个包你可以自行维护修改&#xf…

从基于直方图的Graph-Cut到Grab-Cut

http://blog.csdn.net/zouxy09/article/details/8534954 区别: (1)Graph Cut的目标和背景的模型是灰度直方图,Grab Cut取代为RGB三通道的混合高斯模型GMM; (2)Graph Cut的能量最小化&#xf…

1024程序员节活动继续:购书优惠劵,折后再折,赶紧来抢啊

1024程序员节当当网计算机图书每满100减50!满200减100!满300-150!机械工业出版社华章公司联合当当网特意为【DotNET技术圈】用户申请了一批可与满减叠加使用的“满200减30”的图书优惠码,优惠码使用后相当于:400减230 …

Shape Context

http://blog.csdn.net/u012507022/article/details/52437149 形状上下文特征是一种很流行的形状描述子,多用于目标识别,它采用一种基于形状轮廓的特征描述方法,其在对数极坐标系下利用直方图描述形状特征能够很好地反映轮廓上采样点的分布情况。 形状上下…

使用Magicodes.SwaggerUI快速配置SwaggerUI以及设置API分组

Magicodes.SwaggerUI快速配置和集成SwaggerUI特点通过配置文件简单配置即可完成SwaggerUI的API格式JSON生成和集成支持API分组和隐藏支持自定义页面和验证Nuget包联系我们订阅号关注“麦扣聊技术”微信订阅号可以获得最新文章、教程、文档。QQ群编程交流群<85318032>产品…

机器学习四大降维方法

http://www.36dsj.com/archives/26723 引言 机器学习领域中所谓的降维就是指采用某种映射方法&#xff0c;将原高维空间中的数据点映射到低维度的空间中。降维的本质是学习一个映射函数 f : x->y&#xff0c;其中x是原始数据点的表达&#xff0c;目前最多使用向量表达形式。…

深入研究.NET Core的本地化机制

ASP.NET Core中提供了一些本地化服务和中间件&#xff0c;可将网站本地化为不同的语言文化。ASP.NET Core中我们可以使用Microsoft.AspNetCore.Localization库来实现本地化。在.NET Core 2.0以上版本, Microsoft.AspNetCore.Localization已经包含在了Microsoft.AspNetCore.All中…

.Net Core 3.0 IdentityServer4 快速入门02

.Net Core 3.0 IdentityServer4 快速入门—— resource owner password credentials&#xff08;密码模式&#xff09;一、前言OAuth2.0默认有四种授权模式&#xff08;GrantType&#xff09;&#xff1a;1&#xff09;授权码模式2&#xff09;简化模式3&#xff09;密码模式&a…

.Net Core3.0 日志 logging

多年的经验&#xff0c;日志记录是软件开发的重要组成部分。没有日志记录机制的系统不是完善的系统。在开发阶段可以通过debug附件进程进行交互调试&#xff0c;可以检测到一些问题&#xff0c;但是在上线之后&#xff0c;日志的记录起到至关重要的作用。它可使我们在系统出现问…

在微软工作一年,我学会了什么

大家好&#xff0c;我是运营小马。正如我们所知道的那样&#xff0c;10.23日 &#xff0c;崔庆才因为写文写得很痛苦&#xff0c;将公众号转给我运营。10.24 我兴致勃勃又小心翼翼的宣布了我要运营10.25 崔庆才回来了&#xff0c;他说他有喷薄而出抑制不住的写作欲望&#xff0…

Eclipse调试方法

http://blog.jobbole.com/93421/ 一、Eclipse调试介绍 二、Eclipse中和Debug相关的视图 2.1 Debug View2.2 Variables View2.3 Breakpoints View2.4 Expressions View2.5 Display View 三、Debug 3.1 设置断点 3.2 调试程序 3.2.1 调试本地 Java 语言程序 3.3.2 远程调试 一、…

聊聊 Docker Swarm 部署 gRPC 服务的坑

gRPC 是一个高性能、开源和通用的 RPC 框架&#xff0c;面向移动和 HTTP/2 设计&#xff0c;也是目前流行的微服务架构中比较突出的跨语言 RPC 框架。一直以来&#xff0c;我们的微服务都是基于 gRPC 来开发&#xff0c;使用的语言有 .NET、JAVA、Node.js&#xff0c;整体还比较…

动手造轮子:实现一个简单的依赖注入(零)

动手造轮子&#xff1a;实现一个简单的依赖注入(零)Intro依赖注入为我们写程序带来了诸多好处&#xff0c;在微软的 .net core 出来的同时也发布了微软开发的依赖注入框架 Microsoft.Extensions.DependencyInjection&#xff0c;大改传统 asp.net 的开发模式&#xff0c;asp.ne…

【WPF on .NET Core 3.0】 Stylet演示项目 - 简易图书管理系统(2)

上一章《回忆一下我们的登录逻辑,主要有以下4点:当"用户名"或"密码"为空时, 是不允许登录的("登录"按钮处于禁用状态).用户名或密码不正确时, 显示"用户名或密码不正确"的消息框.用户名输入"waku", 并且密码输入"123&q…

gRPC 流式调用

gRPC 使用 Protocol buffers 作为接口定义语言&#xff08;IDL&#xff09;来描述服务接口和输入输出消息的结构&#xff0c;目前支持 4 种定义服务方法类型&#xff1a;类型说明简单 RPC客户端传入一个请求对象&#xff0c;服务端返回一个结果对象客户端流式 RPC客户端传入多个…

模型压缩案例-SSDYou only look once

http://write.blog.csdn.NET/postedit 在上一篇文章中&#xff0c;介绍了以regionproposal来检测的框架&#xff0c;这一系列速度和精度不断提高&#xff0c;但是还是无法达到实时。存在的主要问题为&#xff1a;速度不够快&#xff0c;主要原因是proposal比较多&#xff0c;特…

.NET如何将字符串分隔为字符

前言如果这是一道面试题&#xff0c;答案也许非常简单&#xff1a;.ToCharArray()&#xff0c;这基本正确……我们以“AB吉??????”作为输入参数&#xff0c;首先如果按照“正常”处理的思路&#xff0c;用 .ToCharArray()&#xff0c;然后转换为 JSON&#xff08;以便方…

Orleans 知多少 | 3. Hello Orleans

1. 引言是的&#xff0c;Orleans v3.0.0 已经发布了&#xff0c;并已经完全支持 .NET Core 3.0。所以&#xff0c;Orleans 系列是时候继续了&#xff0c;抱歉&#xff0c;让大家久等了。万丈高楼平地起&#xff0c;这一节我们就先来了解下Orleans的基本使用。2. 模板项目讲解在…