zoukankan      html  css  js  c++  java
  • 支持向量机

    1. SVM描述 

    $f(x)$满足间隔最大化要求。与$f(x)$相对应的直线$omega^Tx+b=-1$和$omega^Tx+b=1$之间的间隔为$frac{2}{||omega||}$。显然,只有直线$omega^Tx+b=-1$和$omega^Tx+b=1$上分布的样本点对选取决策面(此时为一直线)有帮助,因此这些点对应的向量称之为支持向量(support vector)。对应最大化间隔模型称为支持向量机(SVM:Support Vector Machine)

    SVM问题描述如下:

    egin{cases} min_{omega,b}frac{1}{2}omega^Tomega& ext{最大化间隔}\ s.t. y^{(n)}(omega^Tx^{(n)}+b) geq 1&n=1,2...N  & ext{对所有点有效} end{cases}

    其中$y_i=pm1$,代表两类不同的点。

     2. 拉格朗日乘子法

     

    2.1 等式约束的优化问题

    以两个变量为例:

    求函数$z=f(x,y)$在满足$varphi(x,y)=0$条件下的极值,可以转化为函数$F(x,y,lambda)=f(x,y)+lambdavarphi(x,y)$的无条件极值问题,其中λ为参数。

    令$F(x,y,lambda)$对$x$和$y$和$lambda$的一阶偏导数等于零,即
    $$F'_x=ƒ'_x(x,y)+lambdavarphi'_x(x,y)=0$$
    $$F'_y=ƒ'_y(x,y)+lambdavarphi'_y(x,y)=0$$
    $$F'_{lambda}=varphi(x,y)=0$$
    由上述方程组解出$x$,$y$及$lambda$,如此求得的$(x,y)$,就是函数$z=ƒ(x,y)$在条件$varphi(x,y)=0$下的可能极值点。

    d个变量同理

    2.2 不等式约束的优化问题

    egin{aligned} &min&&f(X)\ &s.t.&&egin{cases}h_j(X)=0&j=1,2,...p\g_k(X)leq0&k=1,2,...qend{cases}end{aligned}

    定义不等式约束下的拉格朗日函数

    $$L(X,lambda,mu)=f(X)+sum_{j=1}^plambda_jh_j(X)+sum_{k=1}^qmu_kg_k(X)$$

    满足 KKT 条件后极小化 Lagrangian 即可得到在不等式约束条件下的可行解:

    egin{cases} abla_XL=0\h_j(X)=0\g_k(X)leq0\mu_kgeq 0\ mu_kg_k(X)=0end{cases}

    2.3 SVM的拉格朗日函数

    回顾SVM公式:
    egin{cases} min_{omega,b}frac{1}{2}omega^Tomega& ext{最大化间隔}\ s.t. y^{(n)}(omega^Tx^{(n)}+b) geq 1&n=1,2...N  & ext{对所有点有效} end{cases}

    代入不等式约束的优化问题:

    egin{aligned}\&f(omega,b)=frac{1}{2}||omega||^2\&h(omega,b)=0\&g(omega,b)=1-y^{(n)}(omega^Tx^{(n)}+b)&n=1,2...Nend{aligned}

    则:

    $$L(omega,b,alpha)=frac{1}{2}||omega||^2+sum_{i=1}^Nalpha_i(1-y_i(omega^Tx_i+b))$$ 

    其中$alpha_i$为拉格朗日乘子,且$alpha_igeq0$

    3. 拉格朗日对偶问题

    3.1 拉格朗日

    广义拉格朗日函数:

    $$L(X,lambda,mu)=f(X)+sum_{j=1}^plambda_jh_j(X)+sum_{k=1}^qmu_kg_k(X)$$

    考虑如下式子:

    $$ heta_P(X)= max_{mu,lambda; mu_kgeq0}L(X,lambda,mu) $$

    其中“P”是“primal(最初问题)”的意思

    $$ heta_P(X)=egin{cases}f(X)&如果X满足最初限定条件\infty&否则end{cases}$$

     $ heta_P(X)$的值等于满足最初限定条件$(g(X)leq0  h(x)=0)$时f(X)的值,问题转化为求使$ heta_P(X)$最小的各变量,此问题定义为$p^*$:

     $$p^*=min_{X}max_{mu,lambda; mu_kgeq0}L(X,lambda,mu)$$

    3.2 对偶优化问题 

    $$ heta_D(lambda,mu)=min_{X}L(X,lambda,mu)$$

    其中D是“dual(对偶)”的意思,$ heta_D(X)$是基于$X$求极小值,而$ heta_P(X)$是基于$lambda$和$mu$求极大值,则对偶优化问题定义为$d^*$如下:

    $$d^*=max_{mu,lambda; mu_k geq0}min_{X}L(X,lambda,mu)$$

    如果我们能够想办法证明(3.14)和(3.13)存在相同的解$X^*,lambda^*,mu^*$,那我们就可以在对偶问题中选择比较简单的一个来求解。

    3.3对偶问题同解的证明

     定理一:对于任意$X,lambda,mu$,有$d^*leq p^*$

    $$ heta_D(lambda,mu)=min_{X}L(X,lambda,mu)leq L(X,lambda,mu)leqmax_{mu,lambda; mu_kgeq 0}L(X,lambda,mu)= heta_P(X)$$

    故$d^*leq p^*$

    推论:如果能够找到一组$X^*,lambda^*,mu^*$使得$ heta_D(lambda^*,mu^*)= heta_P(X^*)$,则有:

    $ heta_D(lambda^*,mu^*)=d^*$、$ heta_P(X^*)=p^*$、$d^*=p^*$

    这个推论实际上已经涉及了原始问题与对偶问题的“强对偶性”。

    当$d^*leq p^*$时,我们称原始问题与对偶问题之间“弱对偶性”成立;若$d^*=p^*$,则称“强对偶性”成立。

    定理二:对于原始问题和对偶问题,假设函数$f(x)$和不等式约束条件$g(x)$为凸函数,等式约束条件中的$h(x)$为仿射函数(即由一阶多项式构成的函数);并且至少存在一个$X$使所有不等式约束条件严格成立,则存在$X^*,lambda^*,mu^*$使得$X^*$是原始问题的最优解,$lambda^*,mu^*$是对偶问题的最优解且有:$d^*=p^*=L(X,lambda,mu)$

    在强对偶性成立时,将拉格朗日函数分别对元变量和对偶变量求导,再同时令导数等于0,即可得到原变量与对偶变量的数值关系。
    于是对偶问题解决了,主问题也就解决了。

    3.4 SVM的对偶问题求解

    回顾SVM的拉格朗日函数 

    $$L(omega,b,alpha)=frac{1}{2}||omega||^2+sum_{i=1}^Nalpha_i(1-y_i(omega^Tx_i+b))$$ 

    发现满足强对偶性

    分别对$omega$和$b$求偏导,有偏导为0,可得:

    egin{aligned}omega&=sum_{i=1}^Nalpha_iy_ix_i\0&=sum_{i=1}^Nalpha_iy_iend{aligned}

    将以上两式带回$L(omega,b,alpha)$,化简得:

    $$max[L(omega,b,alpha)=sum_{i=1}^Nalpha_i-frac{1}{2}sum_{i,j=1}^Nalpha_ialpha_jx_i^Tx_jy_iy_j]$$

    $s.t.sum_{i=1}^Nalpha_iy_i=0且alpha_igeq0$

    此时为一个完全的凸二次规划问题,可以用各种软件包求解(但是很慢),一般用SMO算法求解。

    4. SMO优化方法

    算法流程:

    1. 选取一对参数$(alpha_i,alpha_j)$
    2. 固定$alpha$向量的其他参数,将$alpha_i,alpha_j$代入KKT和约束表达式进行求最优解获得更新后的$alpha_i,alpha_j$

    不断执行这两个步骤直至收敛

    因为有约束$sum_{i=1}^Nalpha_iy_i$存在,有$alpha_iy_i+alpha_jy_j=C$(C为常数)

    那么我们如何选取α呢?我们怎么知道哪一个α需要优化呢?

    我们只要选择违反KKT条件的点,使其符合KKT条件,那么就自然而然可以得到更优解。优化的α违背KKT条件越大,此次优化效果越明显。

    所以第一个要选择的α是违反KKT条件的点,而第二个α是与第一个点距离最大的点,因为我们发现一次更新两个不同向量比相似向量的效果好。

    收敛后,我们就可以得到所有的α的值。把所有α代进去,就可以得到w的解,接着可以得到b的解。

    5. 松弛变量与软间隔

     硬间隔支持向量机要求所有的样本均被最佳超平面正确划分,而软间隔支持向量机允许某些样本点不满足间隔大于等于1的条件。当然在最大化间隔的时候也要限制不满足间隔大于等于1的样本的个数使之尽可能的少。于是我们引入一个惩罚系数C,并对每个样本点引入一个松弛变量$xi_i$

    通过计算,我们的优化目标依然保持不变,但是新的约束条件变为

    参考文献:

    https://zhuanlan.zhihu.com/p/35755150

    https://zhuanlan.zhihu.com/p/24638007

    https://zhuanlan.zhihu.com/p/57648645

    https://blog.csdn.net/qq_39482438/article/details/106908049

  • 相关阅读:
    非GUI运行Jmeter,jtl文件没有响应数据的解决办法
    Fiddler抓取APP接口
    CentOS 7.x关闭/开启防火墙出现Unit iptables.service failed to load: No such file or directory问题解决
    Jmeter+Ant+Jenkins接口自动化持续集成环境搭建(Linux)
    Jenkins持续集成环境部署
    性能测试流程介绍
    MySQL性能优化
    Linux监控命令之==>ps
    Linux监控命令之==>lsof
    Zabbix监控基础
  • 原文地址:https://www.cnblogs.com/SiriusRen/p/13735033.html
Copyright © 2011-2022 走看看