支持向量机SVM(一):数学基础

一、前言

    支持向量机作为深度学习出现之前最优秀的机器学习算法之一,其原理涉及到很多的数学知识,如拉格朗日乘子、KKT条件、对偶性问题等,本章将对这些数学知识进行讲解,为下一章SVM的原理推导打下基础。

二、拉格朗日乘子

    在数学的最优化问题中,拉格朗日乘数法是一种寻找多元函数在其变量受到一个或多个条件的约束时的极值的方法。这种方法可以将一个有n个变量与k个约束条件的最优化问题转换为一个解有n + k个变量的方程组的解的问题。这种方法中引入了一个或一组新的未知数,即拉格朗日乘数,又称拉格朗日乘子,或拉氏乘子,它们是在转换后的方程,即约束方程中作为梯度(梯度指的是函数变化最快的方向)的线性组合中各个向量的系数。
    比如,要求f(x,y)在g(x,y)时的最大值时,我们可以引入新变量拉格朗日乘数 ,这时我们只需要下列拉格朗日函数的极值:
在这里插入图片描述

    更一般地,对含n个变量和k个约束的情况,有:
在这里插入图片描述

    :拉格朗日乘数法所得的极点会包含原问题的所有极值点,但并不保证每个极值点都是原问题的极值点。

1、等式约束

    等式约束是拉格朗日乘子法中最简单的一种形式,为了方便画图辅助理解,假设我们有如下优化式子:
在这里插入图片描述
    我们最后会将其转化为无约束优化:
在这里插入图片描述
    这里的λ​​是没有约束的,这是和不等式约束一个很大的区别,因此在这里进行解释为什么这样能够求出最优值点。这是在一个二维平面上的优化式子,因此可以做出如下图辅助理解:
在这里插入图片描述
    需要注意的是上图中蓝色的虚线表示待优化原函数的等高线图,也就是说在一条蓝色虚线上的点f(x,y)​都是相等的,而绿色的实线其实也可以理解为g(x,y)​的等高线图,只不过由于约束,可行解只能落在这一条绿色的实线上。
    如果结合图像来理解,对于f(x,y)来说,我们不妨假设其越往内的等高线表示其值越大,也就是说针对图中的值来说d2>d1​​,由于在某一点的梯度指向最快的上升方向,因此对图上的函数来说梯度方向都是向内的。而对于绿色的线来说由于没有前置条件,所以我们无法判断其梯度的具体方向,结合图来说,图中的绿色箭头表示约束条件函数的梯度方向,但是这个方向如果取反向事实上也是可以的。

    我们猜想最优值的点就在图中的切点位置,更具体一点也就是在这一点原函数f(x,y)​的梯度方向和g(x,y)​的梯度方向相同或相反。如果不是用严格的数学定理来证明,而是从几何意义来说,f(x,y)​​当然希望沿着梯度方向走的越多越好,而且使用朴素的思想来说,只要在梯度方向还能运动,就说明还没到达最优值点。

    而我们的可行域固定在了g(x,y)=c​这一条线上,不妨假设我们在这条线上移动点来求得最优值,那么如果当前点处g(x,y)=c​的梯度和与当前节点相交的f(x,y)=d​的梯度方向并不平行,那么就表示如果继续移动这个点,总存在f(x,y)=d​的梯度方向的一个分量使得f(x,y)​​的值更大,也就不符合最优值点的定义,由此可见最优值点处约束函数与待优化函数的梯度必是平行的,转化为数学的语言来说也就是:
在这里插入图片描述
    我们发现这不就是无约束优化公式梯度为0的点吗?由此可见只要求出我们转化后的梯度为0的点其实就等价于求出了最优值点。
    那么看到这里可能会产生一个疑惑,上述例子中给出的是求f(x,y)的最大值点,那么我们求出来的梯度为0的点会不会是最小值点呢?也就是说求的极值不符合要求呢?同样是从上图来看,如果在该约束下还能求出f(x,y)的最小值,那么最小值点处也必是满足∇f(x,y)+λ∇g(x,y)=0​​​,由此可见拉格朗日乘子法只是极值点的一个必要条件,但是保证不了求出的是不是我们要求的那一个极值点(也就是说不能保证我们目标是max,求出的会不会是min),因此求出的结果还需要自行根据实际情况判断。参考链接:拉格朗日乘子法

接下来使用实例进行讲解,例题如下:
在这里插入图片描述
    其中min表示求函数f(x,y)的最小值,后面的s.t.表示约束条件,即x,y满足后面的等式。下面我们使用拉格朗日乘子法来求解,我们用g(x,y)描述约束条件,将约束条件改写为:
在这里插入图片描述
    而后我们引入拉格朗日乘子λ,并构造一个新的函数:
在这里插入图片描述
    根据约束条件g(x,y)=0,于是h(x,y)=f(x,y),因此当f(x,y)取得极小值时有:
在这里插入图片描述
    联立求解方程组得到:
在这里插入图片描述
    于是我们得到x=y=1时,f(x,y)取得最小值,最小值为2,这就是拉格朗日乘子法的求解过程。参考链接:拉格朗日乘子法实例

2、不等式约束、KKT条件

    在真实情况下约束条件大多是有不等式约束也有等式约束,因此这一小节主要介绍不等式约束条件下的拉格朗日乘子法以及这一部分很重要的一个KKT条件,这一条件在SVM的对偶问题转换中起到重要作用。
    这里我们先单独考虑只有不等式的约束条件,如果约束中还有考虑约束条件下的优化如下:
在这里插入图片描述
    先给出结论,这一优化问题转化为无约束优化如下:
在这里插入图片描述
    其中很重要的一点就是α>=0这一约束,这和等式约束是很不一样的,接下来同样结合图来解释。
    对于不等式约束,我们可以给出两种情况,第一种情况就是不等式约束给出的可行解域中包含了f(x,y)的最值,那么这种情况对应的图示如下:
在这里插入图片描述
    在这种情况下也就是说不等式约束事实上是不起作用的,所以求解带不等式约束的最优化问题等价于求原优化问题,所以等价于求无约束公式中α=0的情况。
    更需要关注的是可行解域不包含f(x,y)的最值的情况,可用如下图表示:
在这里插入图片描述
    我们不妨结合图来看,首先给出观点,我们要求的最小值点图中的切点位置,在这一点处g(x,y)的梯度和f(x,y)的梯度是反向的,而且这个反向是必须的,这一点和等式约束中的可以是相同方向不同。接下来从几何意义方面解释为什么必须是反向的。

    从图上的情况来看,由于我们要求最小值,当然希望等高线缩得越靠近最优值点越好,而且需要注意的是由于约束条件确定的可行解域(图中的绿色部分)不包含理想情况下的最优值点,因此我们的最值将会在可行解域的边界上取到。不妨假设我们沿着边界移动来寻找最优值点,那么解释和上面等式约束一样,可以比较容易得出在最优值点处一定是两个梯度平行的,接下来解释为什么两个梯度一定是反向的。

    结合图中来说,我们观察切点,如果这个点处两个梯度是相同方向的关系,也就是说图中的切点处的绿色箭头和蓝色箭头同向,那就是说在当前切点处沿着梯度的反方向(也就是当前的绿色箭头方向)运动一点得到的g(x,y)是比当前切点处小的,而当前切点处的g(x,y)=0,那不就是说我们可以继续往理想情况的最优值点靠近一点吗?那也就意味着当前点不是最优值点,和假设不符。

    从几何角度解释这一点我认为是更容易理解的,因此不给出详细的数学证明。最后给出一个KKT条件,这一条件是强对偶性的充要条件,这里只给出KKT的形式:

    假设有一个优化问题如下:
在这里插入图片描述
    则可以转化为拉格朗日函数如下:
在这里插入图片描述
    则KKT条件为:
在这里插入图片描述
接下来使用实例进行讲解,例题如下:

    参考链接:不等式约束问题求解

三、对偶问题

    对偶问题:每一个线性规划问题都存在一个与其对偶的问题,原问题与对偶问题对一个实际问题从不同角度提出来,并进行描述,组成一对互为对偶的线性规划问题,将其中一个称为原问题,另外一个称之为对偶问题。
    对偶理论深刻揭示了原问题与对偶问题的内在联系,由对偶问题引申出来的对偶解有着重要经济意义,是经济学中重要的概念工具之一,对偶理论充分显示线性规划理论逻辑上的严谨性与结构上的对称性,它是线性规划的重要成果。
    原问题例子如下:
    某家具厂木器车间生产木门和木窗的两种产品,加工木门收入56\扇,加工木窗收入30\扇,生产一扇木盟需要木工4小时、油漆工需要2小时,生产一扇木窗需要木工3小时、油漆工1小时,该车间每日可用木工总工时120小时,油漆工总工时50小时,问该车间应该如何安排生产才能使得每日收入最大?
    :令该车间每日安排生产木门x1扇,木窗x2扇,则数学模型为:
在这里插入图片描述
    使用图解法或者单纯形表方法,可以求得最优解:
在这里插入图片描述
    原问题的对偶问题:
    现在从另外一个角度来考虑该车间的生产问题,假若有一个个体经营者,手中有一批木器家具生产订单,他想利用该车间的木工与油漆工来完成他的订单,他就要事先考虑付给该车间每个工时的价格
需要考虑的问题:
    1、木器车间觉得有利可图从而愿意替他加工这批订单;
    2、他自己所付时费用总数最小;
    设W1为付给木工每个工时的价格,W2为付给油漆工每个工时的价格,则该个体经营者的目标函数每日所付工时总费用最小:
在这里插入图片描述
    但是个体经营者所付的价格不能太低,至少不能低于该车间生产木门、木窗时候所得到的收入,否则该车间觉得无利可图就不会替他加工这批订单,因此w1、W2取值应该满足:
在这里插入图片描述
    那么经过上面的问题梳理,我们把两个问题放在一起看:
在这里插入图片描述
    左边是车间老板的角度来看,右边的对偶问题是从个体经营者来看,一个求最大值,另外一个求最小值,我们来看一下原问题的max 式子的系数,在右边的对偶问题变成了 下面约束条件的值,而左边的约束条件的值变成了右边对偶问题的min式子的系数。
    从最后的结果可以看到,虽然最优解的结果不一样,但是最这个最优解的框架下,相应的目标函数的结果都是1440,说明这个订单一定是成功的完成了。
    转换到一般情况:
在这里插入图片描述
    LP我们定义就是原问题,DP是对偶问题,Max和Min的式子的系数称之为价值系数,下面的公式称之为约束条件,可以看出:
    1、原问题的价值系数在对偶问题提中成为约束条件的右端项,而原问题的约束条件的右端项在对偶问题成了价值系数;
    2、原问题中约束不等式左端的决策变量的系数,在对偶问题中成为对偶问题决策变W1和W2的系数列向量P1,P2;
    3、原问题中Xi的系数列向量Pi,在对偶问题中就是第i个约束不等式做端对偶变量前的系数。
    如何迅速的从一个线性规划问题提出对偶问题:
在这里插入图片描述
    对偶问题的例子:
在这里插入图片描述

    参考链接:对偶问题

四、弱对偶、强对偶、slater条件

1、弱对偶

    为了从对偶函数获得最好的(最逼近的)原问题下界,我们可以得到这样一个优化问题:
在这里插入图片描述
    这个对偶问题一定是一个凸优化的问题,无论原问题是不是。(max g相当于min -g,g为凹,-g为凸,且约束为凸),对偶问题的最优解记为b*,由上面可知:
在这里插入图片描述
    即使原问题不是凸问题,依然有上式成立,称为弱对偶性。(原函数最优解P*)

2、强对偶

    如果b*=p* ,强对偶性成立。当原问题为凸(目标函数约束函数都为凸,等式约束为仿射),且满足Slater条件时,有b*=p*,强对偶性成立。

3、slater条件

    Slater 条件: 对于凸问题,存在一点 x∈relintD(原问题定义域的相对内部,D见最上面)使得下式成立:
在这里插入图片描述
    注意:slater条件是强对偶的充分条件,不是必要条件。
    弱slater条件:若不等式约束为仿射,只要可行域不为空,必有b*=p*。

    参考链接

五、硬间隔和软间隔

    1、硬间隔:完全分类准确,其损失函数不存在;其损失值为0;只要找出两个异类正中间的那个平面;
    2、软间隔:允许一定量的样本分类错误;优化函数包括两个部分,一部分是点到平面的间隔距离,一部分是误分类的损失个数;C是惩罚系数,误分类个数在优化函数中的权重值;权重值越大,误分类的损失惩罚的越厉害。误分类的损失函数可分为hinge损失,指数损失,对率损失。而经常使用的或者说默认的是使用了损失函数为hinge损失的软间隔函数。
    参考链接

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值