优化的边界分类器

上一讲里我们介绍了函数边界和几何边界的概念,给定一组训练样本,如果能够找到一条决策边界,能够使得几何边界尽可能地大,这将使分类器可以很可靠地预测训练样本,特别地,这可以让分类器用一个“间隔”将正负样本分开。

现在,我们假设给定的一组训练样本是线性可分的,即有可能找到这样一条分界面,将正负样本分开。如何找到这样一个分界面可以使得几何边界最大?我们将这个优化问题用如下的表达式给出:

maxγ,w,bs.t.γy(i)(wTx(i)+b)⩾γ,i=1,...m∥w∥=1

我们要使γ最大化,第一个约束条件保证训练集里的每个训练样本的函数边界都大于γ,而另外一个约束条件∥w∥=1保证目标函数的几何边界和函数边界相等,所以目标函数的几何边界的最小值为γ,如果找到合适的参数w,b使得目标函数成立,那么可以找到训练集的最大的几何边界。不过可以看到,约束条件∥w∥=1使得目标函数无解,所以我们将目标函数做一个简单的变换,如下所示:

maxγ,w,bs.t.γ^∥w∥y(i)(wTx(i)+b)⩾γ^,i=1,...m

这里,我们想要最大化的是γ^/∥w∥,约束条件保证目标函数的函数边界最小为γ^,既然函数边界γ^与几何边界γ存在如下关系:γ=γ^/∥w∥,所以这个目标函数与我们之前的目标函数是一致的,通过这种替换,我们避免了约束条件∥w∥=1,但是发现新的目标函数γ^/∥w∥依然无法解决。

所以我们要继续变换,记得之前讨论函数边界的时候,提到w,b具有尺度不变性,就是对w,b乘以一个常数,不会改变函数边界的性质,这里我们将对w,b引入常数因子使得训练集的函数边界为1,即:

γ^=1

因为对w,b乘以常数,相当于对函数边界乘以一个同样的常数,所以可以通过改变w,b的尺度保证函数边界为1,将这一点引入优化函数,并且注意到对γ^/∥w∥=1/∥w∥最大化相当于对∥w∥2最小化。因此我们可以建立如下的优化问题:

minγ,w,bs.t.12∥w∥2y(i)(wTx(i)+b)⩾1,i=1,...m

现在,这个优化问题是一个凸的二次优化问题,而约束条件也是线性约束,因此可以很容易地得到解决。一旦得到w,b,可以建立优化边界分类器

虽然到这里为止,我们已经解决了SVM的大部分问题,也可以找到一条最优的决策边界。不过接下来我们要探讨Lagrange duality,这将引出这个优化问题的对偶形式,并且可以让我们引入kernel的概念以处理高维的特征向量,并且这个对偶形式可以演化出一个更高效的算法。

Lagrange duality

我们先将SVM搁置一旁,先来探讨一些含约束条件的优化问题。

考虑如下一个优化问题:

minws.t.f(w)hi(w)=0,i=1,...l

利用拉格朗日数乘法,我们可以将上式写成:

L(w,β)=f(w)+∑i=1lβihi(w)

其中,βi称为拉格朗日乘数,我们可以得到L的偏导数为:

∂L∂wi=0,∂L∂βi=0

进而可以求出参数w,β

上面讨论的优化问题含有等式的约束条件,接下来,我们要看看同时含有等式与不等式约束条件的优化问题,考虑如下的优化问题,我们一般称为primal 优化问题:

minws.t.f(w)hi(w)=0,i=1,...lgi(w)⩽0,i=1,...k

为了解决这个问题,我们先建立一般的拉格朗日表达式:

L(w,α,β)=f(w)+∑i=1kαigi(w)+∑i=1lβihi(w)

αi,βi称为拉格朗日乘数。考虑如下的式子:

θP(w)=maxα,β:αi⩾0L(w,α,β)

其中,”P”表示”primal”(原始的),假设我们求出w,如果w不满足所有的约束条件(例如存在gi(w)⩾0或者hi(w)≠0),那么我们可以知道:

θP(w)=maxα,β:αi⩾0f(w)+∑i=1kαigi(w)+∑i=1lβihi(w)=∞

反之,如果w满足所有的约束条件,那么θP(w)=f(w),因此,我们可以得知:

θP(w)={f(w)∞如果w满足约束条件otherwise

可以看出,当w满足所有的约束条件时,θP(w)的值与我们建立的目标函数的值是一样的,如果不满足约束条件,那么θP(w)将会趋于正无穷。

因此,当我们考虑如下的最小化问题:

minwθP(w)=minwmaxα,β:αi⩾0L(w,α,β)

可以看到,这与我们最初的原始的优化问题是同一个问题,我们也定义这个优化问题的优化解为:p∗=minwθP(w),我们称这个为原始问题的\textbf{解}。我们稍后将会用到这个定义。

现在,我们先来看一个稍微不同的问题,我们定义:

θD(α,β)=minwL(w,α,β)

这里,”D”表示”dual”(对偶的),要注意,在θP我们要求的是关于α,β的优化问题,这里,我们要求的是关于w的优化问题。下面,我们可以给出对偶优化问题的形式:

maxα,β:αi⩾0θD(α,β)=maxα,β:αi⩾0minwL(w,α,β)

可以看到,这个形式和我们上面讨论的原始优化问题的形式很相似,唯一的区别在于”max”和”min”的顺序调换了一下,我们同样定义对偶优化问题的目标值为:

d∗=maxα,β:αi⩾0θD(α,β)

那么原始优化问题与对偶优化问题满足什么关系呢?容易看出:

d∗=maxα,β:αi⩾0minwL(w,α,β)⩽minwmaxα,β:αi⩾0L(w,α,β)=p∗

很显然,函数最小值的最大值要小于等于最大值的最小值,这个看起来有点绕,不过应该很容易验证。不过,在某些约束条件下,可以让两个值相等,即:

d∗=p∗

下面,我们探讨一下这些条件:

假设f和g是凸函数,h是仿射函数,进一步假设函数g是严格可行的,意味着存在w使得对所有的i满足gi(w)<0。

基于上述假设,那么一定存在w∗,α∗,β∗,其中,w∗是原始优化问题的解,而α∗,β∗是对偶优化问题的解,更进一步,我们有:d∗=p∗=L(w∗,α∗,β∗),而且w∗,α∗,β∗满足Karush-Kuhn-Tucker (KKT)条件,即如下所示:

∂∂wiL(w∗,α∗,β∗)∂∂βiL(w∗,α∗,β∗)α∗gi(w∗)gi(w∗)α∗=0,i=1,2,...n=0,i=1,2,...l=0,i=1,2,...k⩽0,i=1,2,...k⩾0,i=1,2,...k

第三个表达式,称为KKT**dual complementarity**条件,这个条件暗示着如果α∗>0,那么可以推出 gi(w∗)=0,这个条件是关键的一点。在后面可以看到,正因为这一点,说明SVM中的”支持向量”只占训练样本的一小部分。

参考文献

Andrew Ng, “Machine Learning”, Stanford University.

机器学习 Support Vector Machines 2的更多相关文章

  1. 机器学习 Support Vector Machines 1

    引言 这一讲及接下来的几讲,我们要介绍supervised learning 算法中最好的算法之一:Support Vector Machines (SVM,支持向量机).为了介绍支持向量机,我们先讨 ...

  2. 机器学习 Support Vector Machines 3

    Optimal margin classifiers 前面我们讲过,对如下的原始的优化问题我们希望找到一个优化的边界分类器. minγ,w,bs.t.12∥w∥2y(i)(wTx(i)+b)⩾1,i= ...

  3. Coursera 机器学习 第7章 Support Vector Machines 学习笔记

    7 Support Vector Machines7.1 Large Margin Classification7.1.1 Optimization Objective支持向量机(SVM)代价函数在数 ...

  4. 【原】Coursera—Andrew Ng机器学习—课程笔记 Lecture 12—Support Vector Machines 支持向量机

    Lecture 12 支持向量机 Support Vector Machines 12.1 优化目标 Optimization Objective 支持向量机(Support Vector Machi ...

  5. Andrew Ng机器学习编程作业:Support Vector Machines

    作业: machine-learning-ex6 1. 支持向量机(Support Vector Machines) 在这节,我们将使用支持向量机来处理二维数据.通过实验将会帮助我们获得一个直观感受S ...

  6. Machine Learning - 第7周(Support Vector Machines)

    SVMs are considered by many to be the most powerful 'black box' learning algorithm, and by posing构建 ...

  7. 【Supervised Learning】支持向量机SVM (to explain Support Vector Machines (SVM) like I am a 5 year old )

    Support Vector Machines 引言 内核方法是模式分析中非常有用的算法,其中最著名的一个是支持向量机SVM 工程师在于合理使用你所拥有的toolkit 相关代码 sklearn-SV ...

  8. [C7] 支持向量机(Support Vector Machines) (待整理)

    支持向量机(Support Vector Machines) 优化目标(Optimization Objective) 到目前为止,你已经见过一系列不同的学习算法.在监督学习中,许多学习算法的性能都非 ...

  9. Support Vector Machines for classification

    Support Vector Machines for classification To whet your appetite for support vector machines, here’s ...

随机推荐

  1. C语言基础知识【指针】

    2017年7月11日18:33:41C指针  该看地址:http://www.runoob.com/cprogramming/c-pointers.html1.学习 C 语言的指针既简单又有趣.通过指 ...

  2. jquery基础研究学习【基础】

    2017年6月6日15:07:58     该看:http://www.runoob.com/jquery/jquery-fade.html                淡入淡出 jQuery 教程 ...

  3. windows下php配置redis

    方法/步骤 1.使用phpinfo()函数查看PHP的版本信息,这会决定扩展文件版本   2.根据PHP版本号,编译器版本号和CPU架构, 选择php_redis-2.2.5-5.5-ts-vc11- ...

  4. 执行动态的delphi脚本

    相关资料:https://www.cnblogs.com/linyawen/archive/2011/10/01/2196950.html 如何在程序中执行动态生成的Delphi代码 经常发现有人提这 ...

  5. struts2一个实例中遇到的问题

    今天实现了一个登录功能的Struts2小程序. 期间遇到了许多问题,记忆犹新的是 (1)新版本的tomcat9和eclipse Neon Release (4.6.0) 发生了冲突,启动服务器的时候老 ...

  6. OSI模型第三层网络层-初识路由协议

    1.路由协议: 顾名思义就是路由器所使用的协议. 分类: (1)按照作用范围分类,IGP(类型)内部网关协议(rip,ospf,isis),EGP(类型)边界路由协议(bgp) 把互联网比作整个世界土 ...

  7. First non repeating word in a file? File size can be 100GB.

    1 solution 1 1.1 数据结构 一个Hashmap和一个双向链表.如果想要快速获取first,并且只遍历一次,那么就要想到双向链表和HashMap的组合. 链表可以保证第一个在head处, ...

  8. 像使用linux一样使用mac

    1 不能像使用windows一样使用mac 因为mac卸载不方便. 2 gcc的问题 就使用系统默认的gcc,即clang,要想使用原声的gcc是不行的,mac本身不支持.

  9. 【译】Stackoverflow:Java Servlet 工作原理问答

    导读 本文来自stackoverflow的问答,讨论了Java Servlet的工作机制,如何进行实例化.共享变量和多线程处理. 问题:Servlet 是如何工作的?Servlet 如何实例化.共享变 ...

  10. 319 Python基础之格式化输出、逻辑运算符、编码、in not in、while else、

    一.格式化输出 占位符%,字符串占位符%s,数字占位符%d 第一种name = input('姓名') age = input('年龄') hobby = input ("爱好") ...