上一次修改时间:2018-01-11 23:29:55

支持向量机SVM-理论

  1. 回归、SVM模型说明

    线性回归用于处理回归问题,Logistic回归用于处理分类问题;

    SVM即可以用于处理回归问题,又可以处理分类问题,区别在于损失函数的不同,回归时用L2损失,分类时用负log似然损失;

    线性回归和Logistic回归以及SVM都是线性模型,且都属于有监督学习(训练数据即有x,还有y,只需要习得一个x到y的映射),但线性回归和Logistic回归以及SVM都可以通过核方法转化成非线性模型; 

  2. 大纲

    image.png

  3. SVM基本原理

    1)最大间隔原则;

    2)对偶表示(Dual Representation);

    3)KKT条件;

  4. SVM as 最大间隔分类器

    image.png

    注:支持向量是指划分好后,边缘上的点;

    QQ图片20171219234626.png

    注:image.png中,xp是空间的任意一点x在分类面上的投影,r为点x到分类面的垂直距离,w/||w||是将w单位化,表示该向量的法线方向,||w||表示w的模,image.png,分类面f(x)=0的解释:分类面需要在超平面上将平面分成上下两个部分,上部分f(x)>0,f(x)<0,因此,分类面本身就是f(x)=0

    QQ图片20171219234856.png

    注:w0决定了分类面的位置;

  5. 线性判别函数

    image.png

    注:置信度表示某点到分类面的距离,离分类面越近的点置信度越低;

    image.png

    image.png

    image.png

    image.png

    image.png

    注:subject to 表示前面函数的约束条件,这里image.png是假设条件,表示线性完合可分时的情况,即所有的样本点都在支持向量所在虚线外面;

    image.png

    注:image.png为y的预测值,在平面上方yi和y^均为正,在平面下方则都为负,因此对于任意i都image.pngD表示向量x的维数,后面的+1表示截距项除了二次规划外,对偶表示是求解image.png的另一种方式

  6. 对偶表示(Dual Representation)

    image.png

    注:拉格朗日函数中image.png

    image.png

    注:将拉格朗日函数中的w0和w消掉的值为image.pngimage.png两个括号中的y和x均独立,所以分别用了i和j来表示,因image.pngimage.png形式一样,相减后只剩下了一-1/2的项,即下面的Q(a);

    image.png

    注:NP为二次规划,kernel trick(核技巧)与核方法的结合,可以将一个线性模型变成一个非线性模型,带约束的问题都可以用拉格朗日乘子法来求解

    image.png(求解image.png)

    image.png

    image.png

    image.png

    注:image.png表示向量的内积(或叫点积),另一种写法为image.png,sgn表示取符号函数,预测时只需要判断符号的正负,即在分类上面还是下面

  7. KKT条件(α是稀疏的)

    image.png(一般的对偶问题及其性质,不是上面内容的后续)

    image.png

    注:image.pngimage.png都是拉格朗日乘子;

    image.png

    注:SVM的解总是强对偶,即P = D,其中P表示原问题的解,D表示对偶问题的解;

    image.png

    image.png

    image.png(将KKT条件代入SVM)

    image.png

    image.png

    image.png

    QQ图片20171220003620.png

    注:由KKT条中的image.png得到,除了支持向量上的点外,其它的点因中括号里的项不等于0,因此α必为0;

    image.png

    image.png

  8. 带松弛因子的SVM:C-SVM

    image.png

    image.png

    image.png

    注:松弛因子0<image.png<1时,说明有样本点位于支持向量的超平面和分类面的中间,当image.png>1时,说明有样本点位于分类面的另一边,如上图中有红色的样本点位于分类面的黑色一端;

    image.png

    image.png

    image.png

    注:C的确定同模型优化中的超参数C,需要通过交叉验证来确定;

    image.png

    image.png

    注:image.png为两个约束项;

    image.png

    image.png

    注:数据不完全线性可分时的C-SVM和数据完全线性可分时的SVM,的对偶问题是一样的,只是约束不同,完全线性可分时的约束为image.png,不完全线性可分时的约束为image.png

    image.png

    image.png;

    image.png

    image.png

    image.png

    image.png;

    QQ图片20180106173355.png

    注:黑色的线为0-1损失,即真值y和预测值f(x)的乘积小于1时(分类分错),等于1,否则等于0,0-1损失和目标是接近的,但该函数是一个阶梯函数,不连续,数据性质不好,优化计算的时候不好做;红色虚线为Logistic损失,Logistic损失为0-1损失的一个近似,好处是该损失函数连续,并且可以得到类别的概率,即y=1或y=-1的概率;蓝色的虚线为合页损失,该损失函数当x>1时,恒等于0,且拐点的截断的好处是可以带来支持向量的稀疏性

    image.png

    image.png;

  9. 核方法

    image.png

    image.png

    image.png

    image.png

    注:点积实际是表示两个向量的相似性,因此可以用一个表示两个向量相似性的核函数来代替点积;

    image.png

    image.png

    image.png

    注:核方法中就是将上面SVM的对偶问题中的点积换成核函数,实际上除了SVM,所有的模型都可以用该方法核化;

    image.png

    image.png

    image.png

    image.png

    注:有效核函数需要满足一定的条件;

    image.png(以下为核函数的充要条件)

    image.png

    注:半正定的矩阵总是可以分解成image.png的形式;

    image.png

    image.png

    image.png

    image.png

    注:Sigmoid核的核函数不一定是半正定的,实际应用中用得并不多,用得多的是下面的RBF核;

    image.png

    image.png

    image.png

    image.png

    注:机器学习中,根据核的闭包性质,构造更复杂的核函数,比如核函数的相加、相乘等,该方法称为多核学习(不是主流);

    image.png

    image.png

  10. 支持向量回归

    image.png

    image.png

    QQ图片20180106225018.png

    注:上图中蓝色的虚线为回归的SVM,好处也是可以带来稀疏性,即恒等于0的那段;

    image.png

    image.png

    注:点积换成核函数后,得到的是非线性的回归;

  11. Scikit learn中的SVM实现

    image.png

    image.png

    image.png

    注:degree是核方法中,选择多项式核时,多项式的阶数;gamma是rbf核和sigmid核中的参数;tol是迭代时的终止条件;cache_size的单位是M;decision_function_shape是多分类中,分类的方式,如一对多(自身为一类,其它的所有数据为另一类);

    image.png

    image.png

    注:参数gamma即为上图各个公式中的γ;

    image.png

    image.png

    image.png

    image.png

    image.png

    image.png(注:第一行一对多应为一对一)

    image.png

    image.png

    image.png

    注:SVC给出的是样本在各个类别上的分数,不是概率,如果一定要得到概率,可以将probability设为True,此时SVC会通过交叉验证去寻找一个最佳参数将f(x)的值转换成概率;

    image.png

    image.png

    image.png

    image.png

    image.png

    image.png

    注:SVM求解时,先通过拉格朗日乘子法将原问题转换成对偶问题再进行求解;在SVM中,如果某个数据集增加了一个样本点,当该样本点远离决策边界时,该样本的增加不会影响到学习模型,但当该样本点离决策边界很近时,则会影响学习模型,导致边界的变化;除了从最大间隔看SVM外,还可以从损失函数的角度看,如对于分类问题时取的合页损失;对于线性模型,可以通过核技巧,将点积变成核函数,从而将线性模型转换成非线性模型;

    image.png