zoukankan      html  css  js  c++  java
  • Jordan Lecture Note-2: Maximal Margin Classifier

    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)}$。故最大间隔分类器可定义为:

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

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

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

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

     用Lagrange duality解模型 ef{equ:MMClassifierOriginal}

     1) KKT条件

        对于最优化模型:

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

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

    1. $h_j(x^*)=0,g_k(x^*)leq 0$,即$x^*$必须是可行解。
    2. $ abla f(x^*)+sum_{j=1}^plambda_j abla h_j(x^*)+sum_{k=1}^qmu_k abla g_k(x^*)=0,lambda_j eq 0,mu_kgeq 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_xcdot dx=0$,即在点$x$处$G_x$与$dx$垂直。

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

    3) 拉格朗日对偶

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

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

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

    egin{equation}L(w,alpha,eta)=f(w)+sum_{i=1}^kalpha_i g_i(w)+sum_{j=1}^leta_jh_j(w)label{equ:lagrange}end{equation}

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

     egin{equation}mathop{min}_wmathop{max}_{alpha_i,eta_j:alpha_igeq 0}L(w,alpha,eta)label{equ:minmax}end{equation}

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

    egin{equation}mathop{max}_{alpha_i,eta_j:alpha_igeq 0} heta_p(alpha,eta)=mathop{max}_{alpha_i,eta_j:alpha_igeq 0}mathop{min}_{w}L(w,alpha,eta)label{equ:maxmin}end{equation}

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

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

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

     4) 最优分类间隔器

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

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

    则原问题为:

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

    对偶问题为:

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

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

    $$ abla_wL(w,b,alpha)=w-sum_{i=1}^Nalpha_i y^{(i)}x^{(i)}=0$$

    $Longrightarrow$

    egin{equation}w=sum_{i=1}^Nalpha_i y^{(i)}x^{(i)}label{equ:solutionw}end{equation}

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

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

    egin{align}L(w,b,alpha) &= frac{1}{2}|w|^2-sum_{i=1}^Nalpha_i[y^{(i)}(w^prime x^{(i)}+b)-1]\ &= frac{1}{2}w^prime w-sum_{i=1}^Nalpha_i y^{(i)}w^prime x^{(i)}-sum_{i=1}^Nalpha_i y^{(i)}b + sum_{i=1}^Nalpha_i \ &= -frac{1}{2}w^primesum_{i=1}^Nalpha_i y^{(i)}x^{(i)}-bsum_{i=1}^Nalpha_iy^{(i)}+sum_{i=1}^Nalpha_i\ &= sum_{i=1}^Nalpha_i-frac{1}{2}sum_{i=1}^Nalpha_iy^{(i)}(x^{(i)})^primesum_{i=1}^Nalpha_iy^{(i)}x^{(i)}\ &= sum_{i=1}^Nalpha_i-frac{1}{2}sum_{i=1}^Nsum_{j=1}^Nalpha_ialpha_jy^{(i)}y^{(j)}[x^{(i)}]^prime x^{(j)}end{align}

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

    egin{align*} mathop{max}_{alpha}quad &sum_{i=1}^Nalpha_i-frac{1}{2}sum_{i=1}^Nsum_{j=1}^Ny^{(i)}y^{(j)}alpha_ialpha_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)}=0end{align*}

     这是一个二次规划问题,我们可以使用工具来解决。但最简单的还是用梯度投影法来解(Lecture 3会介绍这种方法)。采用梯度投影法解出$alpha$后,根据$w=sum_{i=1}^Nalpha_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 ightarrowmathbb{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_2sqrt{2}x_1x_2+w_3x_2^2+b=0$。

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

    egin{equation}K=left[egin{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_Nend{array} ight]=mathbf{X}mathbf{X}^primeend{equation}

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

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

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

    egin{align*}langle r,s angle &= 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 angle^2end{align*}

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

    Mercer's Theorem:一个对称函数$K(x,y)$能够表示成某个映射$Phi$的内积$K(x,y)=langlePhi(x),Phi(y) angle$当且仅当函数$K(x,y)$为半正定,即对$forall g,int K(x,y)g(x)g(y)dxdygeq 0$,或者矩阵$left[egin{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} ight]$是半正定的。

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

  • 相关阅读:
    判断回文字符串
    汉诺塔递归问提
    课程作业02.2
    编写一个程序,此程序从命令行接收多个数字,求和之后输出结果。
    《大道至简》第一章java伪代码分析
    《大道至简》读后感
    用户体验
    大二上学期软件工程概论学习进度表(第十五周)
    12-24个人博客
    大二上学期软件工程概论学习进度表(第十四周)
  • 原文地址:https://www.cnblogs.com/boostable/p/lec_maximal_margin_classifier.html
Copyright © 2011-2022 走看看