zoukankan      html  css  js  c++  java
  • 支持向量机(SVM)公式整理

    支持向量机可以分为三类:

    • 线性可分的情况 ==> 硬间隔最大化 ==> 硬间隔SVM
    • 近似线性可分的情况 ==> 软间隔最大化 ==> 线性支持向量机
    • 线性不可分的情况 ==> 核技巧/软间隔最大化 ==> 非线性SVM

    硬间隔向量机(hard margin svm)

    任务:寻找一条与所有支持向量距离最远的决策边界,这条决策边界就是(0 = w^T X + b),即:

    [w^T X_i + b > 0 , y_i > 0 \ w^T X_i + b < 0 , y_i < 0 ]

    所以问题可以描述为:

    [max ; margin(x,b) qquad s.t.y_i(w^T+b)>0 \ margin(w,b) = min ; distance(w,b,x_i) = min frac{1}{|w|}|w^Tx_i+b| ]

    带换一下也就是

    [max ; min frac{1}{|w|}|w^Tx_i+b| ==> max frac{1}{|w|} ; min |w^Tx_i+b| \ s.t. y_i(w^Tx_i+b)>0 ; ==>; exists r > 0 , min ; y_i(w^T+b)=r ]

    用r来表示就是:

    [max frac{r}{|w|}\\ exists r > 0 , min ; y_i(w^T+b)=r ]

    这里我的理解是:因为(wx_i+b=r) ==> (frac{w}{r} x_i + frac{b}{r}=1),所以不管r取什么值,(w=frac{w_0}{r})(b=frac{b_0}{r}), 所以r的取值所带来的影响会被最后的w和b所融合进去,所以r=1也没关系。最终的问题可以描述为(这里是N个不等式):

    [max frac{1}{2}|w|^2 \ s.t. ; y_i(w^T+b)-1>=0 qquad i=1,2,3,...,N ]

    构造拉格朗日函数,引入N个参数(alpha),转换成对偶函数如下(大括号表示不出来我也很绝望):

    [min frac{1}{2} cdot sum_{i=1}^{N} sum_{j=1}^{N} alpha_i alpha_{j} y_{i} y_{j}left(x_{i} cdot x_{j} ight)-sum_{i=1}^{N} x_{i} \ s.t.sum_{i=1}^{N} alpha_{i} y_{i}=0 \ alpha_i >=0 ; i = 1,2,3,.. N ]

    使用KKT条件,得到的解:

    [w^{*}=sum_{i=1}^{N} alpha_{i}^{*} y_{i} x_{i} ]

    [b^{*}=y_{j}-sum_{i=1}^{N} a_{i}^{*} y_{i}left(x_{i} cdot x_{j} ight) ]

    最终的解是:

    [w^{*}x+b^{*}=0 ]

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

    软间隔向量机(soft margin svm)

    软间隔向量机采用合页损失函数,真实数据中,严格线性可分的数据很少。合页损失函数允许分类时的一点点误差。损失函数如下:

    [1- y_{i}left(w^{ op} x_{i}+b ight) leqslant0, quad loss=0 \ 1-y_{overline{2}}left(w^{ op} x_{i}+b ight) >0, quad loss =1-y_{i}left(w^{ op} x_{i}+b ight) ]

    也就是,正确分类并且函数间隔大于1时没有误差,错误分类时,距离决策边界越远的点,受到的惩罚越大。使用合页函数的做优化问题可以表示为:

    [min sum_{i}^{N}left(1-y_{i}left(w^{T} x_{i}+b ight) ight)_{+}+lambda|w|^{2} ]

    (xi_{i}=1-y_{i}(w^{T} x_{i}+b), quad xi_{i} geqslant 0),则,分两种情况:
    1、(1-y_{i}(w^{T} x_{i}+b)>0) ==> (xi_i =1-y_{i}left(w^{T} x_{i}+b ight)) ==> (y_i(wx+b)=1-xi_i)
    2、(1-y_{i}(w^{T} x_{i}+b)leqslant0) ==> (y_i(wx+b)leqslant1) ==> (y_i(wx+b)leqslant1-xi_i) ((xi_i=0))

    综合上面两种情况,可以直接写为:(y_i(wx+b)leqslant1-xi_i),这样的话,最优化函数就变成了下面的样子:

    [min frac{1}{2} w^{T}w+Csum_{i=1}^{N} xi_{i} \ s.t. y_{i}left(w^{T} x_{i}+b ight) geqslant 1-xi_{i}, quad xi_{i} geqslant 0 ]

    这两个式子是等价的。再《统计学习方法》中,先给出了后面的式子,再介绍了合页损失函数

    这两个式子转换成等价的对偶函数如下:

    [underset{alpha}{min} frac{1}{2} sum_{i=1}^{N} sum_{j=1}^{N} alpha_{i} alpha_{j}y_{i} y_{j}left(x_{i}x_{j} ight)-sum_{i=1}^{n} alpha_{i} \ s.t. sum_{i=1}^{N}alpha_iy_i=0 qquad \ 0leq alpha_i leq C, ;i=1,2,...N ]

    对偶函数的解是:

    [w=sum_{i=1}^{N} alpha_{i} y_{i} x_{i} ]

    [b=y_{j}-sum_{i=1}^{N} a_{i} y_{i}left(x_{i} cdot x_{j} ight) ]

    决策函数是:

    [f(x)=sign (sum_{1}^{N} alpha_{i} y_{i}(x cdot x_{i})+b^{*}) ]

    KKT条件

    [frac{alpha f}{alpha w}=0, frac{alpha f}{alpha b}=0, frac{alpha f}{alpha lambda}=0 ]

    [lambda_{i}(1-y_{i}(w^{T} x_{i}+b))=0 ]

    [lambda_i=0 ]

    [(1-y_{i}(w^{T} x_{i}+b))<0 ]

    对于(lambda_{i}(1-y_{i}(w^{T} x_{i}+b))=0) 只要 (lambda_i eq0) ,就有 (1-y_{i}(w^{T} x_{i}+b=0),也就是说(x_i)再决策边界上,(x_i)是支持向量

    • 原问题与对偶问题育有强对偶关系 <===> 满足KKT条件

    非线性支持向量机(核函数)

    核函数可以对特征进行升维(当然,不一定非要是升维,也可能是转换到另一个空间),高维空间的运算量巨大,所以直接使用低维的计算结果,作为两个高维向量的内积:

    [phi (x_1, x_2) * phi (x_1^{'}, x_2^{'}) = (z_1, z_2, z_3)*(z_1^{'}, z_2^{'}, z_3^{'}) \\ = (x_1^2, sqrt{2}x_1 x_2, x_2^2)(x_1^{'2}, sqrt{2}x_1^{'} x_2^{'}, x_2^{'2}) \\ = (x_1 x_1^{'} + x_2 x_2^{'}) = (xx^{'})^2 =K(x, x^{'}) ]

    核函数等价于两个映射哈函数的内积,不过,这个映射函数不需要手动指出。因为当两个映射函数相乘时,内积的结果可以用核函数表示。而映射函数在最优化问题中都是成对出现的。即出现映射函数的地方都可以用核函数替代。

    如果用映射函数将x映射到高维空间,那么应该用高维向量替换x所在的位置:

    [frac{1}{2} sum_{i=1}^{N} sum_{j=1}^{N} alpha_{i} alpha_{j}y_{i} y_{j}left(x_{i}x_{j} ight)-sum_{i=1}^{n} alpha_{i} ]

    [frac{1}{2} sum_{i=1}^{N} sum_{j=1}^{N} alpha_{i} alpha_{j}y_{i} y_{j}left(phi(x_{i})phi(x_{j}) ight)-sum_{i=1}^{n} alpha_{i} ]

    [frac{1}{2} sum_{i=1}^{N} sum_{j=1}^{N} alpha_{i} alpha_{j}y_{i} y_{j}left(K(x_{i}, x_{j}) ight)-sum_{i=1}^{n} alpha_{i} ]

    那么最终拟合的结果也应该是由高维向量表示的:

    [f(x)=sign (sum_{1}^{N} alpha_{i} y_{i}(phi(x)phi(x_{i}))+b^{*}) ]

    [f(x)=sign (sum_{1}^{N} alpha_{i} y_{i}(K(x,x_i))+b^{*}) ]

    高斯核函数(RBF)

    正太分布:

    [f(x)=frac{1}{sqrt{2 pi} sigma} exp left(-frac{(x-mu)^{2}}{2 sigma^{2}} ight) ]

    高斯核函数:

    [K(x, y)=e^{-gamma|x-y|^{2}} ]

    对于正态分布来说:(sigma)是标准差,(sigma)越小,曲线越窄。(sigma)越大,曲线越宽
    对于高斯核函数来说:(gamma)的值越大,曲线越窄;(gamma)的值越小,曲线越宽;

  • 相关阅读:
    pat甲级 1155 Heap Paths (30 分)
    pat甲级 1152 Google Recruitment (20 分)
    蓝桥杯 基础练习 特殊回文数
    蓝桥杯 基础练习 十进制转十六进制
    蓝桥杯 基础练习 十六进制转十进制
    蓝桥杯 基础练习 十六进制转八进制
    51nod 1347 旋转字符串
    蓝桥杯 入门训练 圆的面积
    蓝桥杯 入门训练 Fibonacci数列
    链表相关
  • 原文地址:https://www.cnblogs.com/twilight0402/p/13384452.html
Copyright © 2011-2022 走看看