Maximal Margin Classifier

Logistic Regression 与 SVM 思路的不同点:logistic regression强调所有点尽可能远离中间的那条分割线,而SVM则强调最靠近分割线的点于分割线的距离仅可能的远。

定义间隔函数:$\hat{r}^{(i)}=y^{(i)}(w^\prime x^{(i)}+b)$。当$y^{(i)}=1$时,$w^\prime x^{(i)}+b>0$;当$y^{(i)}=-1$时,$w^\prime x^{(i)}+b<0$;所以间隔函数总是大于零:$\hat{r}^{(i)}=y^{(i)}(w^\prime x^{(i)}+b)>0$。

注意,同时扩大$w,b$,那么所有点的间隔都会扩大相同倍数,这并不影响问题的求解。

定义样本的间隔函数为样本中间隔最小的那个,即$\hat{r}=\mathop{\min}_{i}\hat{r}^{(i)}$

定义几何间隔:如下图所示,B为A在分隔面$w^\prime x +b = 0$上的投影点,设A到分隔面的距离为$r^{(i)}$。根据几何知识可求得B点的$x$坐标为:

$x=x^{(i)}-r^{(i)}\frac{w}{\|w\|}$,代入$w^\prime x + b=0$得到:

$$r^{(i)}=\frac{w^\prime x^{(i)}+b}{\|w\|}=(\frac{w}{\|w\|})^\prime x^{(i)}+\frac{b}{\|w\|}$$

由于$w^\prime x^{(i)}+b$有可能是负数,故令$r^{(i)}=y^{(i)}((\frac{w}{\|w\|})^\prime x^{(i)}+\frac{b}{\|w\|})>0$为几何距离,将参数$w$归一化后$\|w\|=1$,$r^{(i)}$即为间隔函数。

样本的几何间隔为:$r=\mathop{\min}_{i}r^{(i)}$。故最大间隔分类器可定义为:

\begin{eqnarray} & \mathop{\max}_{r,w,b}\quad r=\frac{\hat{r}}{\|w\|}\nonumber\\&\mathop{s.t.}\quad y^{(i)}(w^\prime x^{(i)} + b)\geq\hat{r},i=1,2,...,N \label{equ:MMClassifierOriginal}\end{eqnarray}

对$w,b$进行缩放,使$\hat{r}=1$,即样本间隔函数为1,离超平面最近的点距离定义为1,上述模型\ref{equ:MMClassifierOriginal}转化为:

\begin{eqnarray}&\mathop{\min}_{w,b}\quad \frac{1}{2}\|w\|^2\nonumber\\&\mathop{s.t.}\quad y^{(i)}(w^\prime x^{(i)}+b)\geq 1,i=1,2,...,N\label{equ:MMClassifier}\end{eqnarray}

其中加上$\frac{1}{2}$是为了计算上的方便。

用Lagrange duality解模型\ref{equ:MMClassifierOriginal}

1) KKT条件

对于最优化模型:

\begin{eqnarray}&\mathop{\min}\quad f(x)\nonumber\\&\mathop{s.t.}\quad h_j(x)=0,j=1,2,...,p\nonumber\\&g_k(x)\leq 0,k=1,2,...,q\label{equ:optimazation}\end{eqnarray}

KKT条件指模型\ref{equ:optimazation}中的最小值点$x^*$必须满足以下的条件:

  1. $h_j(x^*)=0,g_k(x^*)\leq 0$,即$x^*$必须是可行解。
  2. $\nabla f(x^*)+\sum_{j=1}^p\lambda_j \nabla h_j(x^*)+\sum_{k=1}^q\mu_k \nabla g_k(x^*)=0,\lambda_j\neq 0,\mu_k\geq 0,\mu_k g_k(x^*)=0$。

2)拉格朗日乘子求最值

  1. 在无约束的最优化问题中,$x$的变化$dx$可以是任意的,对于$f(x)$的变化$df(x)=f_xdx$,当$f_x$与$dx$的方向夹角小于$\frac{\pi}{2}$时,$f_xdx>0$,则$f(x)$值的增加;当$f_x$与$dx$的方向夹角大于$\frac{\pi}{2}$时,$f_xdx<0$,则$f(x)$的值减小。故当$f_xdx=0$时,找不到一个可移动的方向使得目标函数值增加。
  2. 在有等式约束的最优化问题中,$x$的变化$dx$是有限制的,即$x$只能在约束条件$G(x)=C$下变化。对$G(x)=C$全微分$G_1dx_1+\cdots+G_ndx_n=0$或者$G_x\cdot dx=0$,即在点$x$处$G_x$与$dx$垂直。

由上述分析可知在最优解$x^*$处有$f_xdx=0$,故$G_x$与$f_x$平行,即$f_x=\lambda G_x$。

3) 拉格朗日对偶

对有不等式约束的极值问题:

\begin{eqnarray}&\mathop{\min}_{w} \quad f(w)\nonumber\\&\mathop{s.t.}\quad g_i(w)\leq 0, i=1,2,\cdots,k\nonumber\\&h_i(w)=0,i=1,2,\cdots,l\label{equ:unequationOptimization}\end{eqnarray}

对模型\ref{equ:unequationOptimization}的Lagrange 函数为:

\begin{equation}L(w,\alpha,\beta)=f(w)+\sum_{i=1}^k\alpha_i g_i(w)+\sum_{j=1}^l\beta_jh_j(w)\label{equ:lagrange}\end{equation}

如果直接最小化式子\ref{equ:lagrange}会出现如下问题:当$g_i(x)<0$时,可以通过$\alpha_i$取无穷大使$L( w,\alpha,\beta)$达到无穷小。解决这个问题是引入$\theta_p(w)=\mathop{\max}_{\alpha_i,\beta_j:\alpha_i\geq 0}L(w,\alpha,\beta)$。显然,若$w$满足模型\ref{equ:unequationOptimization}的约束条件,则$\theta_p(w)=f(w)$,否则$\theta_p(w)=\infty$。此时模型\ref{equ:unequationOptimization}可以转化为:

\begin{equation}\mathop{\min}_w\mathop{\max}_{\alpha_i,\beta_j:\alpha_i\geq 0}L(w,\alpha,\beta)\label{equ:minmax}\end{equation}

直接求解式子\ref{equ:minmax}并不容易,故将其转化为对偶问题:

\begin{equation}\mathop{\max}_{\alpha_i,\beta_j:\alpha_i\geq 0}\theta_p(\alpha,\beta)=\mathop{\max}_{\alpha_i,\beta_j:\alpha_i\geq 0}\mathop{\min}_{w}L(w,\alpha,\beta)\label{equ:maxmin}\end{equation}

当最优解$w^*,\alpha^*,\beta^*$满足KKT条件时,原问题与对偶问题的最优值一致,此时称为强对偶。其中KKT条件为:

\begin{align}\frac{\partial}{\partial w_i}L(w^*,\alpha^*,\beta^*) &= 0,i=1,\cdots,n\\\frac{\partial}{\partial \beta_j}L(w^*,\alpha^*,\beta^*) &= 0,j=1,\cdots,l\\ \alpha_i^*g_i(w^*) &= 0,i=1,\cdots,k\label{equ:complementarity}\\g_i(w^*)&\leq 0,i=1,\cdots,k\\\alpha^* &\geq 0\end{align}

其中式子\ref{equ:complementarity}称为KKT双重补足条件(KKT dual complementarity)。KKT的思想是其极值会在可行域的边界上取得,即在将不等式约束为0时取得。

4) 最优分类间隔器

现在我们采用lagrange对偶来解模型\ref{equ:MMClassifier}。从KKT条件可知只有在离超平面最近的点$y^{(i)}(w^\prime x^{(i)}+b)=1$的约束才有可能取得极值。模型\ref{equ:MMClassifier}对应的lagrange函数为:

\begin{equation}L(w,b,\alpha)=\frac{1}{2}\|w\|^2-\sum_{i=1}^N\alpha_i[y^{(i)}(w^\prime x^{(i)}+b)-1]\label{equ:MMlagrange}\end{equation}

则原问题为:

\begin{equation}\mathop{\min}_{w,b}\mathop{\max}_{\alpha}L(w,b,\alpha)\end{equation}

对偶问题为:

\begin{equation}\mathop{\max}_{\alpha}\mathop{\min}_{w,b}L(w,b,\alpha)\end{equation}

固定$\alpha$,求$L(w,b,\alpha)$关于$w,b$的导数:

$$\nabla_wL(w,b,\alpha)=w-\sum_{i=1}^N\alpha_i y^{(i)}x^{(i)}=0$$

$\Longrightarrow$

\begin{equation}w=\sum_{i=1}^N\alpha_i y^{(i)}x^{(i)}\label{equ:solutionw}\end{equation}

\begin{equation}\frac{\partial}{\partial b}L(w,b,\alpha)=\sum_{i=1}^N\alpha_i y^{(i)}=0\label{equ:solutionb}\end{equation}

将式子\ref{equ:solutionw}和式子\ref{equ:solutionb}代回式子\ref{equ:MMlagrange}得:

\begin{align}L(w,b,\alpha) &= \frac{1}{2}\|w\|^2-\sum_{i=1}^N\alpha_i[y^{(i)}(w^\prime x^{(i)}+b)-1]\\ &= \frac{1}{2}w^\prime w-\sum_{i=1}^N\alpha_i y^{(i)}w^\prime x^{(i)}-\sum_{i=1}^N\alpha_i y^{(i)}b + \sum_{i=1}^N\alpha_i \\ &= -\frac{1}{2}w^\prime\sum_{i=1}^N\alpha_i y^{(i)}x^{(i)}-b\sum_{i=1}^N\alpha_iy^{(i)}+\sum_{i=1}^N\alpha_i\\ &= \sum_{i=1}^N\alpha_i-\frac{1}{2}\sum_{i=1}^N\alpha_iy^{(i)}(x^{(i)})^\prime\sum_{i=1}^N\alpha_iy^{(i)}x^{(i)}\\ &= \sum_{i=1}^N\alpha_i-\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy^{(i)}y^{(j)}[x^{(i)}]^\prime x^{(j)}\end{align}

故模型\ref{equ:MMClassifier}可转化为如下的二次规划问题:

\begin{align*} \mathop{\max}_{\alpha}\quad &\sum_{i=1}^N\alpha_i-\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^Ny^{(i)}y^{(j)}\alpha_i\alpha_j[x^{(i)}]^\prime x^{(j)}\\\mathop{s.t.}\quad &\alpha_i \geq 0,i=1,2,\cdots,N\\ &\sum_{i=1}^N \alpha_i y^{(i)}=0\end{align*}

这是一个二次规划问题,我们可以使用工具来解决。但最简单的还是用梯度投影法来解(Lecture 3会介绍这种方法)。采用梯度投影法解出$\alpha$后,根据$w=\sum_{i=1}^N\alpha_iy_ix_i$即可计算出$w$。至于$b$可使用KKT条件来求解。由KKT条件$\alpha_ig(x_i)=0$ $\Longrightarrow$ 当$\alpha_i>0$
时$g(x_i)=0$ $\Longrightarrow$ $1-y_i(w^\prime x_i+b)=0$ $\Longrightarrow$ $b=y_i-w^\prime x_i$。事实上,对任意的$\alpha_i>0$都应该有上述等式关系,当在实际应用中,我们通常取所有$\alpha_i>0$的平均值。

与$\alpha_i>0$对应的$x_i$称为support vector,因为就是这些support vector 决定了超平面的参数。这也是为什么这个分类器叫做support vector machine(SVM)。到目前为止,我们仅讨论线性可分的情况,对于线性不可分的数据,我们可以采用kernel的方法。

Kernel Trick

思想:在分类问题中低维空间线性不可分的数据通过非线性映射到高维特征空间则有可能实现线性可分,但是如果直接在高维空间中对数据进行分类,则存在1)确定这个非线性映射函数的形式和参数;2)确定特征空间维数等问题。而最大的障碍则是在高维空间运算时存在“维数灾难”。于是引入核函数。引入核函数可以使我们不需要事先知道中间的映射过程,而只需要对原数据进行点乘。

如图一所示,在二维空间下该数据并不是线性可分的,但如果我们采用如下的映射$\Phi$,将二维数据映射到三维空间,则数据变的线性可分。 其中$\Phi: \mathbb{R}^2\rightarrow\mathbb{R}^3, \Phi(x_1,x_2)=(z_1,z_2,z_3)=(x_1^2,\sqrt{2}x_1x_2,x_2^2)$。这样我们就可以在三维空间上得到一个线性函数$w_1z_1+w_2z_2+w_3z_3+b=0$,即对应原空间的非线性函数$w_1x_1^2+w_2\sqrt{2}x_1x_2+w_3x_2^2+b=0$。

仔细观察上述的二次规划问题,要求计算出数据点之间的内积,故定义如下Gram Matrix K:

\begin{equation}K=\left[\begin{array}&x_1^\prime x_1&x_1^\prime x_2&\cdots&x_1^\prime x_N \\ x_2^\prime x_1 & x_2^\prime x_2&\cdots&x_2^\prime x_N\\\vdots&\vdots&\cdots&\vdots\\x_N^\prime x_1&x_N^\prime x_2&\cdots&x_N^\prime x_N\end{array}\right]=\mathbf{X}\mathbf{X}^\prime\end{equation}

其中$\mathbf{X}=\left[\begin{array}&x_1^\prime\\x_2^\prime\\\cdots\\x_N^\prime\end{array}\right]$称为design matrix。如果我们引入映射$\Phi$,则Gram matrix变为:

\begin{equation}K=\left[\begin{array}&\Phi(x_1)^\prime\Phi(x_1)^\prime&\Phi(x_1)^\prime\Phi(x_2)&\cdots&\Phi(x_1)^\prime\Phi(x_N)\\ \Phi(x_2)^\prime\Phi(x_1)&\Phi(x_2)^\prime\Phi(x_2)&\cdots&\Phi(x_2)^\prime\Phi(x_N)\\\vdots&\vdots&\cdots&\vdots\\\Phi(x_N)^\prime\Phi(x_1)&\Phi(x_N)^\prime\Phi(x_2)&\cdots&\Phi(x_N)^\prime\Phi(x_N) \end{array}\right]\end{equation}

另外我们可以将上述映射后的三维空间的内积用原空间中数据的内积来表示,设$r,s\in\mathbb{R}^3$为数据$a,b$映射后的函数,则:

\begin{align*}\langle r,s\rangle &= r_1s_1+r_2s_2+r_3s_3\\ &= a_1^2b_1^2+2a_1a_2b_1b_2+a_2^2b_2^2\\ &= \langle a,b\rangle^2\end{align*}

所以对于内积$\langle r,s\rangle$的计算,我们不必通过映射$\Phi$,而只需要原数据空间中的映射即可计算出来,即映射后的空间数据的内积是原空间数据内积的函数,而这个函数称为kernel函数。而上述带有$\Phi$的Gram matrix K称为kernel matrix。 下面我们介绍一个定理,这个定理描述了满足一定条件的kernel函数就一定可以写成某个映射的的内积。

Mercer's Theorem:一个对称函数$K(x,y)$能够表示成某个映射$\Phi$的内积$K(x,y)=\langle\Phi(x),\Phi(y)\rangle$当且仅当函数$K(x,y)$为半正定,即对$\forall g,\int K(x,y)g(x)g(y)dxdy\geq 0$,或者矩阵$\left[\begin{array}&K(x_1,x_1)&K(x_1,x_2)&\cdots&K(x_1,x_N)\\K(x_2,x_1)&K(x_2,x_2)&\cdots&K(x_2,x_N)\\\vdots&\vdots&\cdots&\vdots\\K(x_N,x_1)&K(x_N,x_2)&\cdots&K(x_N.x_N)\end{array}\right]$是半正定的。

因此我们可以使用kernel函数来代替二次规划中的内积,从而可以在不必知道映射$\Phi$下对原数据进行非线性映射。

Jordan Lecture Note-2: Maximal Margin Classifier的更多相关文章

  1. paper 4:支持向量机系列一: Maximum Margin Classifier —— 支持向量机简介。

    支持向量机即 Support Vector Machine,简称 SVM .我最开始听说这头机器的名号的时候,一种神秘感就油然而生,似乎把 Support 这么一个具体的动作和 Vector 这么一个 ...

  2. Jordan Lecture Note-1: Introduction

    Jordan Lecture Note-1: Introduction 第一部分要整理的是Jordan的讲义,这份讲义是我刚进实验室时我们老师给我的第一个任务,要求我把讲义上的知识扩充出去,然后每周都 ...

  3. Jordan Lecture Note-3: 梯度投影法

    Jordan Lecture Note-3:梯度投影法 在这一节,我们介绍如何用梯度投影法来解如下的优化问题: \begin{align} \mathop{\min}&\quad f(x)\n ...

  4. Colorful Lecture Note(手工栈)

    题目1 : Colorful Lecture Note 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 Little Hi is writing an algorithm ...

  5. HihoCoder - 1103 Colorful Lecture Note

    Little Hi is writing an algorithm lecture note for Little Ho. To make the note more comprehensible, ...

  6. Colorful Lecture Note

    Colorful Lecture Note 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 Little Hi is writing an algorithm lectu ...

  7. 支持向量机: Maximum Margin Classifier

    支持向量机即 Support Vector Machine,简称 SVM .我最开始听说这头机器的名号的时候,一种神秘感就油然而生,似乎把 Support 这么一个具体的动作和 Vector 这么一个 ...

  8. hihocoder #1103 : Colorful Lecture Note微软苏州校招笔试 1月10日(字符串处理+栈)

    #1103 : Colorful Lecture Note 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 Little Hi is writing an algorit ...

  9. Jordan Lecture Note-7: Soft Margin SVM

    Soft Margin SVM  (1)Recall 之前分析到SVM的模型为: \begin{align}\mathop{\min}&\quad \frac{1}{2}w^\prime w\ ...

随机推荐

  1. C#第三方控件的使用

    一.DEVEXPRESS的使用 官网:https://www.devexpress.com/ 入门教程:http://wenku.baidu.com/link?url=2sXEEby1ffx9JTWG ...

  2. SGU 134 Centroid

    题意:给出一个树,每个点有一个value,value的意义是去掉这个点之后所有连通分量中点最多的那个连通分量的点数,这棵树的重心为所有点value的最小值,求重心,及重心都有谁. 解法:貌似是个树形d ...

  3. ASP.NET入门(class0612)

    内容:掌握基于ASP.Net的Web开发,B/S结构原理.ASP.Net内部原理.状态管理(Cookie.Session.ViewState等).数据验证.普通ASP.Net控件.母版.ListVie ...

  4. PHP生成各种验证码和Ajax验证

    网址:http://www.helloweba.com/view-blog-191.html 源码下载地址: http://files.cnblogs.com/h07061108/php%E9%AA% ...

  5. HW5.34

    import java.util.Scanner; public class Solution { public static void main(String[] args) { Scanner i ...

  6. Oracle-数据实现竖排打印

    --存放重证评分的数据表create table ZZPFapache2(  ZZ_datetime DATE,   --时间  ZZ_zongfen INTEGER, --总分  ZZ_shiwan ...

  7. mssql触发器demo

    USE [pos]GO/****** Object: Trigger [dbo].[tr_insert] Script Date: 06/26/2014 09:27:19 ******/SET ANS ...

  8. [Objective-c 基础 - 2.3] 继承、组合

    A.继承的实现: is a 1.不允许子类.父类存在相同的成员变量 2.方法调用优先原则:子类调用方法的时候,优先从本类寻找,若无则向上在父类中寻找 3.重写:子类重新实现父类的方法,覆盖父类之前的方 ...

  9. _doPostBack用法总结

    转载在以下两篇博客: http://www.cnblogs.com/yongtaiyu/archive/2011/05/13/2045746.html http://www.cnblogs.com/F ...

  10. jquery中 cache: true和false的区别

    true:会读缓存,可能真的到服务器上. 假如上次访问了a.html,第二次的时候得到的是上次访问的a.html的结果,而不是重新到服务器获取. false:会在url后面加一个时间缀,让它跑到服务器 ...