一、SVM原问题及要变成对偶问题的解决办法

对于SVM的,我们知道其终于目的是求取一分类超平面,然后将新的数据带入这一分类超平面的方程中,推断输出结果的符号,从而推断新的数据的正负。

而求解svm分类器模型。终于能够化成例如以下的最优化问题:

minw,bs.t.12∥w∥21−yi(w⋅xi+b)≤0i=1,2,...,N

上式中。yi相应样本xi的标签。

我们的目的是求出上述最优化问题的最优解,w∗和b∗,从而得到分类超平面:

w∗⋅x+b∗=0

进而得到分类决策函

f(x)=sign(w∗⋅x+b)

可是在求解这一最优化问题时。求解较为困难,且对于线性不可分的数据无法得到较好的分类超平面。因此依据拉格朗日对偶性,引进原最优化问题的对偶问题,通过求解对偶问题得到原始问题的最优解。

对偶问题的引进有两个方面。一是对偶问题的求解往往比原问题easy。二是对于线性不可分的数据能够通过加松弛变量、加核函数的方法,将其推广到非线性分类。

二、原始SVM的对偶问题及其求解

原始的SVM模型的原问题例如以下:

minw,bs.t.12∥w∥21−yi(w⋅xi+b)≤0i=1,2,...,N

为方便计算,将范数形式改写成例如以下形式:

minw,bs.t.12wTw1−yi(w⋅xi+b)≤0i=1,2,...,N

要想求原始问题的对偶问题。首先构造拉格朗日函数入例如以下:

L(w,b,λ)=12wTw+∑i=1Nλi[1−yi(wTxi+b)]λi≥0,i=1,2,...,N

上式中的λi是拉格朗日乘子。

观察上述式子。可发现

λi[1−yi(wTxi+b)]≤0

所以L(w,b,λ)≤12wTw,即构造的拉格朗日函数是原问题的一个下界。

依据拉格朗日对偶性。原始问题的的对偶问题是极大化极小问题:

maxλminw,bL(w,b,λ)

上式所表达的意思是,先求L(w,b,λ)对w,b的极小,再求对λ的极大。

首先。求minw,bL(w,b,λ):

我们知道。对于一阶可导函数,其在导数值为0的地方。取到极大或极小值,对于我们构造的拉格朗日函数,其偏导导数为0的点,一定是极小值。故:

0=∂∂wL(w,b,λ)=w+∑i=1Nλi(−yixi)⇒w=∑i=1Nλiyixi0=∂∂bL(w,b,λ)=−∑i=1Nλiyi⇒∑i=1Nλiyi=0

将求得的w代入拉格朗日函数,可得

L(w,b,λ)=−12∑i=1N∑j=1NλiλjyiyjxTixj+∑i=1Nλi−∑i=1Nλiyi⎛⎝∑j=1NλjyjxTjxi+b⎞⎠

由于∑Ni=1λiyi=0,故

L(w,b,λ)=−12∑i=1N∑j=1NλiλjyiyjxTixj+∑i=1Nλi

所以

g(λ)=minw,bL(w,b,λ)=−12∑i=1N∑j=1NλiλjyiyjxTixj+∑i=1Nλi

依据拉格朗日对偶的极大极小的性质,可知对偶问题的目标是:

maxλ−12∑i=1N∑j=1NλiλjyiyjxTixj+∑i=1Nλi

如今再找约束条件,即在前面的推导过程中。遇到与λ有关的等式或不等式,且该等式或不等式中不含原问的目标变量

可发现,在对b求偏导是得到∑Ni=1λiyi=0,故这是一个约束条件,另外在构造拉格朗日函数时。约定了λi≥0,故原问题的对偶问题能够写成例如以下形式:

maxλs.t.−12∑i=1N∑j=1NλiλjyiyjxTixj+∑i=1Nλi∑i=1Nλiyi=0λi≥0,i=1,2,...,N

故此得到了原始的SVM的对偶形式。如今考虑怎样从对偶问题中求得原问题的最优解。

考虑对偶问题的最优化问题。存在λ∗是对偶的最优解。又由于

w=∑i=1Nλiyixi

故能够解得

w∗=∑i=1Nλ∗iyixi

同一时候依据KTT条件原理(这里不做解释,能够自行查阅资料,不论什么关于最优化理论、凸优化的书都会说到这个),可解得b的值:

b∗=yj−∑i=1Nλ∗iyixTixj

故分离超平面为:

∑i=1Nλ∗iyixTix+b=0

分类决策函数为:

f(x)=sign(∑i=1Nλ∗iyixTix+b)

三、加松弛变量SVM的对偶问题

如上文所述。对于线性可分的数据,能够构造SVM模型。并将其转换为一个最优化问题,且这个优化问题的约束条件是对于全部的样本。都有1−yi(wTxi+b)≤0。则对于线性不可分的数据。在数学形式的解释为存在某个样本(x,y)使上述的约束不成立,即1−y(wTx+b)>0。

既然约束条件不成立,那是否能增加一个松弛变量ξ,ξ≥0,使得1−y(wTx+b)−ξ≤0?

正是基于这个思想,出现了加松弛变量的SVM,其原始问题的形式例如以下:

minw,bs.t.12wTw+C∑i=1Nξi1−yi(w⋅xi+b)−ξi≤0−ξi≤0i=1,2,...,N

当中C为常数,ξi为松弛变量。

由于我在约束中加了松弛变量,可是我们希望我们所加的松弛变量越小越好。这样越接近于原约束条件。故把“松弛变量越小越好”这一期望,放在目标函数中,由于目标函数是求最小值,故加上C∑Ni=1ξi,这一项也被称为“惩处项”。能够理解为增加的松弛变量越大。对目标函数的惩处力度越高。

现要求其对偶问题。相似于前面的解法,首先构造拉格朗日函数例如以下:

L(w,b,ξ,λ,β)=12wTw+C∑i=1Nξi+∑i=1Nλi[1−yi(wTxi+b)−ξi]+∑i=1Nβi(−ξi)

相同。求偏导可得:

0=∂∂wL(w,b,λ)=w+∑i=1Nλi(−yixi)⇒w=∑i=1Nλiyixi0=∂∂bL(w,b,λ)=−∑i=1Nλiyi⇒∑i=1Nλiyi=00=∂∂ξi=C−λi−βi⇒λi=C−βi≤C

将结果代回拉格朗日函数。可得例如以下形式:

L(w,b,λ)=−12∑i=1N∑j=1NλiλjyiyjxTixj+∑i=1Nλi+C∑i=1Nξi−∑i=1Nλiξi−∑i=1Nβiξi

由于C−λi−βi=0。所以

C∑i=1Nξi−∑i=1Nλiξi−∑i=1Nβiξi=0

g(λ,β)=minw,bL(w,b,λ)=−12∑i=1N∑j=1NλiλjyiyjxTixj+∑i=1Nλi

则对偶形式为

maxλs.t.−12∑i=1N∑j=1NλiλjyiyjxTixj+∑i=1Nλi∑i=1Nλiyi=00≤λi≤C,i=1,2,...,N

观察上式可发现,对于原问题。加了松弛变量后,其对偶形式变化比較小,仅仅是在约束条件上有些许变化。从这点也可发现将原问题化成对偶问题的优点,即原问题形式的变化非常大,可是对偶问题变化却非常小,方便求解。

所以非常多优化问题。假设在原问题上较为难实现,则能够考虑转化为对偶问题。

四、加核函数SVM的对偶问题

加核函数的思想是:

通过一个非线性变化将输入空间映射到一个更高维的特征空间(希尔伯特空间),使得在输入空间中的超曲面模型相应希尔伯特空间中的超平面模型。

因此,在输入空间的非线性分类问题能够变成希尔伯特空间中的线性分类问题,故能够继续使用SVM模型。

核函数的定义:

设X是输入空间(欧式空间Rn的子集或离散集合),又设H为特征空间(希尔伯特空间)。假设存在一个从X到H的映射:

ϕ(x):X→H

使得对全部的x,y∈X,函数K(x,y)满足条件

K(x,y)=<ϕ(x),ϕ(y)>

其中<ϕ(x),ϕ(y)>表示内积。

核技巧的想法是:

在学习预測中,仅仅定义核函数K(x,y)。而不是显式的定义映射函数ϕ。

通常,直接计算K(x,y)比較easy,而通过ϕ(x)和ϕ(y)计算K(x,y)并不easy。比較经常使用的核函数——高斯核函数:

K(x,y)=exp(−∥x−y∥22σ2)

基于核函数的思想,先定义原SVM模型例如以下:

minw,bs.t.12wTw+C∑i=1Nξi1−yi(w⋅ϕ(xi)+b)−ξi≤0−ξi≤0i=1,2,...,N

当中ϕ(xi)是映射将原输入样本映射到希尔伯特空间的特征。

转化为对偶形式例如以下:;

maxλs.t.−12∑i=1N∑j=1NλiλjyiyjϕT(xi)ϕ(xj)+∑i=1Nλi∑i=1Nλiyi=00≤λi≤C,i=1,2,...,N

终于化为带核函数形式:

maxλs.t.−12∑i=1N∑j=1NλiλjyiyjK(xi,xj)+∑i=1Nλi∑i=1Nλiyi=00≤λi≤C,i=1,2,...,N

通过观察发现,由原始的输入的内积xTix,转换到映射空间的内积ϕT(xi)ϕ(xj),再转换为核函数形式,整个学习的过程是隐式的在特征空间(希尔伯特空间)进行的吗,而我们得到的显式的结果是用核函数显式的表达,这样的技巧称为核技巧

其实。仅仅要是学习算法中涉及输入项的内积的函数,都能够用核函数的方法取代内积操作。

三种SVM的对偶问题的更多相关文章

  1. 简谈百度坐标反转至WGS84的三种思路

    文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.背景 基于百度地图进行数据展示是目前项目中常见场景,但是因为百度地图 ...

  2. 测试一下StringBuffer和StringBuilder及字面常量拼接三种字符串的效率

    之前一篇里写过字符串常用类的三种方式<java中的字符串相关知识整理>,只不过这个只是分析并不知道他们之间会有多大的区别,或者所谓的StringBuffer能提升多少拼接效率呢?为此写个简 ...

  3. Objective-C三种定时器CADisplayLink / NSTimer / GCD的使用

    OC中的三种定时器:CADisplayLink.NSTimer.GCD 我们先来看看CADiskplayLink, 点进头文件里面看看, 用注释来说明下 @interface CADisplayLin ...

  4. css中的浮动与三种清除浮动的方法

    说到浮动之前,先说一下CSS中margin属性的两种特殊现象 1, 外边距的合并现象: 如果两个div上下排序,给上面一个div设置margin-bottom,给下面一个div设置margin-top ...

  5. ASP.NET Core应用的错误处理[1]:三种呈现错误页面的方式

    由于ASP.NET Core应用是一个同时处理多个请求的服务器应用,所以在处理某个请求过程中抛出的异常并不会导致整个应用的终止.出于安全方面的考量,为了避免敏感信息的外泄,客户端在默认的情况下并不会得 ...

  6. 【Win 10 应用开发】文件读写的三种方案

    本文老周就跟伙伴们探讨一下关于文件读写的方法.总得来说嘛,有三种方案可以用,而且每种方案都各有特色,也说不上哪种较好.反正你得记住老祖宗留给我们的大智慧——事无定法,灵活运用者为上. OK,咱们开始吧 ...

  7. .NET Core采用的全新配置系统[6]: 深入了解三种针对文件(JSON、XML与INI)的配置源

    物理文件是我们最常用到的原始配置的载体,最佳的配置文件格式主要由三种,它们分别是JSON.XML和INI,对应的配置源类型分别是JsonConfigurationSource.XmlConfigura ...

  8. 监视EntityFramework中的sql流转你需要知道的三种方式Log,SqlServerProfile, EFProfile

    大家在学习entityframework的时候,都知道那linq写的叫一个爽,再也不用区分不同RDMS的sql版本差异了,但是呢,高效率带来了差灵活性,我们 无法控制sql的生成策略,所以必须不要让自 ...

  9. 通过三个DEMO学会SignalR的三种实现方式

    一.理解SignalR ASP .NET SignalR 是一个ASP .NET 下的类库,可以在ASP .NET 的Web项目中实现实时通信(即:客户端(Web页面)和服务器端可以互相实时的通知消息 ...

随机推荐

  1. clipper库使用的一些心得

    clipper sourceforge官网:http://sourceforge.net/projects/polyclipping/ 1. 版本号差异 之前project里面使用4.8.6,近期升级 ...

  2. Android 获取屏幕截图 和保存到本地的sd卡路径下

    /** * 获取和保存当前屏幕的截图 */ private void GetandSaveCurrentImage() { //1.构建Bitmap WindowManager windowManag ...

  3. excel如何将一列按奇偶数分成两列

    借助于函数.上图说明一切: 方法一.OFFSET函数, 奇数列公式:C1=OFFSET($A$1,ROW()*2-2,), 偶数列公式:D1=OFFSET($A$1,ROW()*2-1,) 一起下拉即 ...

  4. Maven 学习笔记(一)

    定义 Maven 是基于项目对象模型(POM)的软件项目管理工具,它采用纯 java 编写,用于管理项目的构建,最早在 Jakata Turbine 项目中开始被使用.它包含了一个项目对象模型(Pro ...

  5. ROS-OPENCV

    前言:opencv是一个开源的跨平台计算机视觉库. 前提:1.已下载并编译了相关功能包集,如还未下载,可通过git下载:https://github.com/huchunxu/ros_explorin ...

  6. PHPMailer使用说明

    PHPMailer是一个用来发送电子邮件的函数包,远比PHP提供的mail()方便易用. 邮件格式说明 一封普通的电子邮件,通常是由发件人.收件人.抄送人.邮件标题.邮件内容.附件等内容构成.以下是一 ...

  7. windows中安装redis的phpredis扩展

    1. 下载php的redis扩展 打开网址 http://pecl.php.net/ (php的扩展库官网),搜索redis,进入地址:http://pecl.php.net/package/redi ...

  8. WEB前端开发常用的优化技巧汇总

    减少HTTP请求次数或者减少请求数据的大小 页面中每发送一次HTTP请求,都需要完成请求+响应这个完整的HTTP事务,会消耗一些时间,也可能会导致HTTP链接通道的堵塞,为了提高页面加载速度和运行的性 ...

  9. 玩转 sublime3 第一弹 文件介绍

    安装 官网下载地址:http://www.sublimetext.com/3 本文将以Windows 64 bit 进行讲解. 目录介绍 sublime默认安装之后会生成一个安装目录和数据目录: C: ...

  10. ZBrush中Mrgb、Rgb和M的使用

    ZBrush®软件工具架中所有的命令选项都是我们平时较为常用的,位于工具架的中间位置,有一个Mrgb.Rgb和M选项它们所表示的是材质及颜色,那么,在Zbrush中只要选择相应的选项,就可以同时绘制材 ...