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

    输入空间为欧式空间或离散空间、特征空间为希尔伯特空间,支持向量机的学习是在特征空间进行的。

    线性可分支持向量机与硬间隔最大化

    线性可分支持向量机定义

    给定线性可分训练集,通过间隔最大化或等价地求解相应的凸二次规划问题学习得到的分离超平面为

    [w^* cdot x + b^* = 0 ]

    以及相应的分类决策函数

    [f(x)=sign(w^* cdot x + b^*) ]

    称为线性可分支持向量机

    函数间隔和几何间隔

    对于给定的训练数据集(T)和超平面((w,b)),定义超平面关于样本点((x_i,y_i))的函数间隔为

    [hat{gamma}_i=y_i(wcdot x_i + b) ]

    定义超平面关于数据集(T)的函数间隔是

    [hat{gamma}=min limits_{1,cdots,N}hat{gamma}_i ]

    对于给定的训练数据集(T)和超平面((w,b)),定义超平面关于样本点((x_i,y_i))的几何间隔为

    [gamma_i=y_i(frac{w}{||w||}cdot x_i + frac{b}{||w||}) ]

    定义超平面关于数据集(T)的几何间隔是

    [gamma=min limits_{1,cdots,N}gamma_i ]

    如果超平面参数(w)(b)成比例改变(超平面不变),函数间隔成比例改变,而几何间隔不变。

    间隔最大化

    对训练集找到几何间隔最大的超平面意味着以充分大的确信度对训练数据进行分类。因此优化目标是

    [egin{aligned} max limits_{w,b} quad & gamma \ s.t. quad & y_i(frac{w}{||w||}cdot x_i + frac{b}{||w||}) geq gamma, quad i=1,2,cdots,N end{aligned}]

    考虑函数间隔和几何间隔的关系(转换为函数间隔然后按比例缩放),得到线性可分支持向量机学习的最优化问题:

    [egin{aligned} min limits_{w,b} quad & frac{1}{2}||w||^2 \ s.t. quad & y_i(wcdot x_i + b) - 1 geq 0, quad i=1,2,cdots,N end{aligned}]

    支持向量是指使上述约束条件等号成立的样本点,也就是与分离超平面最近的样本点。该问题一般转换为对偶算法,因为对偶算法更容易求解,也能自然引入核函数,进而推广到非线性分类问题。

    线性支持向量机与软间隔最大化

    对于每个样本点((x_i,y_i))引入一个松弛变量(xi_i geq 0),使函数间隔加上松弛变量后大于等于1.同时,为每个松弛变量支付一个代价(xi_i)。于是,线性不可分的线性支持向量机的学习问题变为:

    [egin{aligned} min limits_{w,b} quad & frac{1}{2}||w||^2+Csum limits_{i=1}^Nxi_i \ s.t. quad & y_i(wcdot x_i + b) geq 1-xi_i, quad i=1,2,cdots,N \ & xi_i geq 0, quad i=1,2,cdots,N end{aligned}]

    软间隔的支持向量(x_i)或者在间隔边界上,或者在间隔边界与分离超平面之间,或者在分离超平面误分一侧。

    非线性支持向量机与核函数

    判断数据是否线性可分:检查凸包是否相交

    核函数定义

    (mathcal{X})为输入空间,(mathcal{H})为特征空间,如果存在一个从(mathcal{X})(mathcal{H})的映射(phi),使得对所有的(x,zin mathcal{X}),函数(K(x,z))满足条件

    [K(x,z)=phi(x)cdot phi(z) ]

    则称(K(x,z))为核函数。在学习和预测中只定义核函数(K(x,z)),而不显式地定义映射函数(phi)。通过,直接计算(K(x,z))比较容易,而通过(phi(x))(phi(z))计算(K(x,z))并不容易。注意,对于给定的核函数,(phi)的取法并不唯一。

    序列最小最优化算法

    SMO算法要解如下凸二次规划的对偶问题:

    [egin{aligned} min limits_{alpha} quad & frac{1}{2}sum limits_{i=1}^Nsum limits_{j=1}^N alpha_ialpha_jy_iy_jK(x_i,x_j)- sum limits_{i=1}^Nalpha_i\ s.t. quad & sum limits_{i=1}^Nalpha_i y_i=0 \ & 0 leq alpha_i leq C, quad i=1,2,cdots,N end{aligned}]

    在这个问题中,变量是拉格朗日乘子,一个变量(alpha_i)对应于一个样本点((x_i,y_i));变量的总数等于训练样本数。

    SMO算法是一种启发式算法,其基本思路是:如果所有变量的解都满足此最优化问题的KKT条件,那么这个最优化问题的解就得到了。因为KKT条件是该最优化问题的充要条件。否则,选择两个变量,固定其他变量,针对两个变量构建一个二次规划问题,这个二次规划问题关于这两个变量的解应该更接近原始二次规划问题的解。重要的是,这时子问题可以通过解析方法求解,这样就可以大大提高整个算法的计算速度。子问题有两个变量,一个是违反KKT条件最严重的那一个,另一个由约束条件自动确定。如此,SMO算法将原问题不断分解成子问题并对子问题求解,进而达到求解原问题的目的。

  • 相关阅读:
    Cesium深入浅出之视频投影【转】
    前端面试题总结[转]
    Cesium 做汉化的另一种思路。[转]
    Cesium深入浅出之可视域分析【转】
    Python 3's fStrings: An Improved String Formatting Syntax (Guide)
    登录远程主机执行重启服务
    Command "python setup.py egg_info" failed with error code 1 in /tmp/pipbuild*解决办法
    服务器磁盘使用率高做钉钉报警
    Shell 使用 pushd 和 popd实现快速定位
    Let’s Encrypt配置ssl证书自动更新
  • 原文地址:https://www.cnblogs.com/weilonghu/p/11922289.html
Copyright © 2011-2022 走看看