优化的边界分类器

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

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

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. MySQL的max()函数使用时遇到的小问题

    通常我们获取某个表的某个字段最大值时可以使用max()函数. 使用场景举例: 获取某个表id的最大值:SQL: SELECT max(id) FROM table_name; SELECT max(` ...

  2. obj-c学习笔记

    本文转载至 http://blog.csdn.net/c395565746c/article/details/7573793   当对象经过在dealloc方法处理时,该对象就已经处于已销毁状态,其它 ...

  3. BI测试

    BI概念: 商业智能(Business Intelligence 简称BI),指数据仓库相关技术与应用的通称.指利用各种智能技术,来提升企业的商业竞争力.是帮助企业更好地利用数据提高决策质量的技术,包 ...

  4. SDOI2012 Round1 day2 集合(set)解题报告

    //=====================以上为官方题解==============// 数据略水,暴力枚举50. 把边按照升序排一遍,在询问,水过. #include<cstdio> ...

  5. Jquery禁用所有checkbox

    $("input[type=checkbox]").each(function(){ $(this).attr("disabled",false);});

  6. 从硬盘设计思想到RAID改良之道

    监控硬盘的前生今世关于桌面硬盘.企业级近线硬盘(NL-SAS/SATA)和监控硬盘的差别,我们在前文中已经讲得很详细,这里再换一个角度来看看. "监控硬盘是希捷和西数为视频监控定制的,典型的 ...

  7. MainWindows

    开发带有菜单栏状态栏等常用windows应用时候使用

  8. ubuntu vim退出时出错

    E505: "vimrc" is read-only (add ! to override) wq退出时加!强制保存退出 "vimrc" E212: Can't ...

  9. Kindeditor API

    根据map规则删除range中的element或attribute. cmd.remove({ span : '*', div : 'class,border' });   commonNode(ma ...

  10. hd acm1005

    问题: 已知递推公式:f[i] = ( a * f[i-1] + b * f[i-2] ) % 7,f[1]=1,f[2]=1. 需要你输入三个数a,b,n.其中a,b用来补充上述公式,用补充后的公式 ...