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

    关键词:间隔最大化、无约束优化问题、有约束优化问题、凸函数、仿射函数、凸二次规划问题、希尔伯特空间、拉格朗日乘子法、拉格朗日对偶函数、KKT 条件

    研究思路

    支持向量机(support vector machines,SVM)是一种二分类模型。
    1、硬间隔最大的线性可分的支持向量机
    前提:数据线性可分。与感知机不同的是,感知机只要找到一个超平面将训练数据集线性可分就可以了,但是 SVM 得到的分离超平面具有更好的泛化能力。

    原始问题是一个有约束最优化问题,我们引入了拉格朗日函数和非负的拉格朗日乘子,将原问题表达成一个有约束的

    [min_{w,b} max_{alpha} quad L(w,b,alpha) ]

    问题。

    这个问题要先对 (alpha) 求导不方便,但是我们有拉格朗日对偶性的保证,可以转换为对偶问题:

    [max_{alpha}min_{w,b} quad L(w,b,alpha) ]

    先对 (w)(b) 求导,可以得到比较好的表达式。将对 (w)(b) 求导代回 (L(w,b,alpha)) 可以得到一个只关于 (alpha) 的表达式,求解这个最优化问题有专门的算法(SMO),于是就得到原问题的最优解。

    SVM 解决二分类问题大致就是上面的流程,绕来绕去的。

    2、软间隔最大化的线性支持向量机
    允许一些点在两个间隔边界之间,获得更好的泛化能力
    3、非线性支持向量机

    之间我们研究的问题都假设数据集线性可分,线性可分即利用线性模型就可以进行分类。

    对于不能使用线性模型分类的训练数据,我们基于“低维空间线性不可分,高维空间线性可分”的思路,把训练数据集中的元素使用非线性变换从低维映射到高维,将非线性问题转换为线性问题(线性问题比非线性问题好求解),就可以利用“软间隔最大化的线性支持向量机”的思路来求解。

    利用到的数学思想是“等价转换”,再叙述一遍就是:
    非线性可分问题不好求解,通过非线性映射转换成好求解的线性可分问题。

    但是这又带了一个问题,“高维空间中线性可分”,但高维空间中的计算往往是困难的,因此才有了核技巧,即我们通过在低维空间中计算,就可以得到在高维空间中计算得到的结果,核函数帮我们减轻了计算量。

    通过核技巧,我们不用找到“非线性变换”,确得到了训练数据集通过“非线性变换”在高维中线性可分问题同样的效果。

    4、核函数

    经过损失函数的定义,拉格朗日乘子法的推导,我们发现,SVM 的决策函数可以理解为只依赖于输入和样本内积的一种映射,这种内积计算使得 SVM 可以利用核技巧解决线性不可分的情况。核技巧的想法是,在学习和预测中只定义核函数,而不显式的定义映射函数。映射函数将输入空间映射到特征空间,而特征空间一般是高维的,甚至是无穷维的。

    我们绕过了从低维度到高维度的映射函数具体的求解,因为我们只需要高维度空间的内积,所以核函数就一步到位地做了这件事情。
    线性支持向量机引入了松弛变量和对应的惩罚参数 (C)(C) 越大,对误分类惩罚越大,支持向量个数越多,模型越复杂。

    什么是核函数?

    核函数和映射没有关系。核函数是计算高维空间中的内积的一种简便的方法。所以,一些介绍核函数的章节会被命名为核技巧。

    (1)SVM 的本质是一个有条件的最优化问题,它在推导的过程中,最终可以转化成下面的表达式。
    (2)在低维空间中计算,得到高维空间中我们需要的结果;
    (3)核函数是一种技巧,并非 SVM 专用。

    5、序列最小最优化算法

    序列最小最优化算法

    [egin{aligned} min_alpha quad& frac{1}{2}sum_{i=1}^{N}sum_{j=1}^{N}alpha_ialpha_jy_iy_jK(x_i,x_j) - sum_{i=1}^{N}alpha_i\ { m s.t.} quad& sum_{i=1}^{m}alpha_i y_i = 0\ &0 le alpha_i le C,i=1,2,cdots,N end{aligned} ]

  • 相关阅读:
    [CSP校内集训]2019.10.16数学专题
    Knights of the Round Table(缩点+判奇环) poj 2942 && 洛谷SP2878
    机房测试7:exam(二进制+模拟)
    机房测试9:gift(单调队列优化dp)
    机房测试9:hotel(神奇dp)
    机房测试8:question(求最大1矩阵:悬线法 or 二分)
    机房测试7:paint(分治+st表)
    机房测试6:矿石(优先队列)
    机房测试6:括号序列(hash+栈 )
    bzoj1123 && 洛谷 P3469 tarjan割点的运用
  • 原文地址:https://www.cnblogs.com/liweiwei1419/p/9753671.html
Copyright © 2011-2022 走看看