本文参考李航的《统计学习方法》撰写

文章目录

  • 一、SVM的主要特征
  • 二、硬间隔SVM(线性可分支持向量机)
    • 训练目标
    • 对偶算法进行学习
  • 三、软间隔SVM(线性支持向量机)
    • 训练目标
    • 对偶算法进行学习
    • 合页损失函数
  • 四、非线性SVM(线性不可分支持向量机)
    • 简要介绍
    • 常用核函数
    • 训练算法

一、SVM的主要特征

  • 二分类模型
  • 定义在特征空间上的间隔最大的线性分类器(间隔最大使它有别于感知机)
  • 判别模型,与概率无关
  • SVM有三宝,间隔、对偶、核技巧
  • 核技巧可以使SVM成为实质上的非线性分类器

二、硬间隔SVM(线性可分支持向量机)

训练目标

假设给定一个训练数据集:
T={(x1,y1),(x2,y2),...,(xN,yN)}T=\{(x_1,y1),(x_2,y_2),...,(x_N,y_N)\} T={(x1​,y1),(x2​,y2​),...,(xN​,yN​)}
其中,xi∈X=Rnx_i \in X=R^nxi​∈X=Rn,yi∈Y={+1,−1}y_i \in Y = \{+1,-1\}yi​∈Y={+1,−1}

对于线性可分的数据,我们想要得到的分类器:
f(w)=sign(wx+b)f(w)=sign(wx+b) f(w)=sign(wx+b)
wx+b=0wx+b=0wx+b=0就是分离超平面。于是我们需要训练得到该模型的参数,也就是w和b。

这里介绍两个概念,分别是函数间隔和几何间隔:

  • 函数间隔:

    超平面(w,b)关于样本点(xi,yi)(x_i,y_i)(xi​,yi​)的函数间隔为γi^=yi(w⋅xi+b)\hat{\gamma_i}=y_i(w·x_i+b)γi​^​=yi​(w⋅xi​+b)

    超平面(w,b)关于训练数据集TTT的函数间隔为γ^=minγi^\hat{\gamma}=min\hat{\gamma_i}γ^​=minγi​^​

  • 几何间隔:

    超平面(w,b)关于样本点(xi,yi)(x_i,y_i)(xi​,yi​)的几何间隔为γi=yi(w∣∣w∣∣xi+b∣∣w∣∣)\gamma_i=y_i(\frac{w}{||w||}x_i+\frac{b}{||w||})γi​=yi​(∣∣w∣∣w​xi​+∣∣w∣∣b​)

    超平面(w,b)关于训练数据集TTT的几何间隔为γ=minγi\gamma = min\gamma_iγ=minγi​

SVM的训练目标是①能够正确划分训练数据集②使几何间隔最大(硬间隔最大化),整理成数学形式就是:
maxw,bγs.t.yi∗1∣∣w∣∣(w⋅xi+b)>=γmax_{w,b}\gamma \\s.t.\; y_i * \frac{1}{||w||}(w·x_i+b)>=\gamma maxw,b​γs.t.yi​∗∣∣w∣∣1​(w⋅xi​+b)>=γ
也就等价于:
maxw,bγ^∣∣w∣∣s.t.yi(w⋅xi+b)>=γ^max_{w,b} \frac{\hat{\gamma}}{||w||} \\s.t.\;y_i(w·x_i+b)>=\hat{\gamma} maxw,b​∣∣w∣∣γ^​​s.t.yi​(w⋅xi​+b)>=γ^​
注意到函数间隔γ^\hat{\gamma}γ^​的取值并不影响优化问题的解,不妨取1代入,并将最大化1∣∣w∣∣\frac{1}{||w||}∣∣w∣∣1​等价替换成最小化12∣∣w∣∣2\frac{1}{2}||w||^221​∣∣w∣∣2
minw,b12∣∣w∣∣2s.t.yi(w⋅xi+b)−1>=0min_{w,b} \frac{1}{2}||w||^2 \\s.t.\;y_i(w·x_i+b)-1>=0 minw,b​21​∣∣w∣∣2s.t.yi​(w⋅xi​+b)−1>=0
这是一个凸二次规划问题(目标函数为二次函数;约束函数是线性函数)。

这里再介绍两个概念:

  • 支持向量:

    在线性可分情况下,训练数据集的样本点中与分离超平面距离最近的样本点的实例。

    即使yi(w⋅xi+b)−1=0y_i(w·x_i+b)-1=0yi​(w⋅xi​+b)−1=0成立的点

    在决定分离超平面时只有支持向量起作用,其他实例点并不起作用,故该模型称为支持向量机

  • 间隔:

    w⋅x+b=1w·x+b=1w⋅x+b=1和w⋅x+b=−1w·x+b=-1w⋅x+b=−1的距离,等于2∣∣w∣∣\frac{2}{||w||}∣∣w∣∣2​

对偶算法进行学习

  • 对偶算法:为了求解SVM的最优化问题,将其作为原始问题,应用拉格朗日对偶性,通过求解对偶问题得到原始问题的最优解

  • 对偶目的:①对偶问题往往更容易求解;②自然引入核函数,推广到非线性分类问题

  • 步骤:

    1、构建拉格朗日函数:
    L(w,b,α)=12∣∣w∣∣2−∑i=1Nαiyi(w⋅xi+b)+∑i=1Nαi其中αi>=0L(w,b,\alpha)=\frac{1}{2}||w||^2-\sum_{i=1}^N\alpha_iy_i(w·x_i+b)+\sum_{i=1}^{N}\alpha_i \\其中\alpha_i>=0 L(w,b,α)=21​∣∣w∣∣2−i=1∑N​αi​yi​(w⋅xi​+b)+i=1∑N​αi​其中αi​>=0
    2、原始问题(极小极大问题):
    minw,bmaxαL(w,b,α)s.t.αi>=0min_{w,b}max_{\alpha}L(w,b,\alpha) \\s.t. \alpha_i >= 0 minw,b​maxα​L(w,b,α)s.t.αi​>=0
    3、对偶问题(极大极小问题):
    maxαminw,bL(w,b,α)s.t.αi>=0max_{\alpha}min_{w,b}L(w,b,\alpha) \\s.t.\alpha_i>=0 maxα​minw,b​L(w,b,α)s.t.αi​>=0
    4、求minw,bL(w,b,α)min_{w,b}L(w,b,\alpha)minw,b​L(w,b,α):

    ​ 令偏导数为0:
    ∇wL(w,b,α)=w−∑i=1Nαiyixi=0\nabla_{w}L(w,b,\alpha)=w-\sum_{i=1}^N\alpha_iy_ix_i=0 ∇w​L(w,b,α)=w−i=1∑N​αi​yi​xi​=0

    ∇bL(w,b,α)=−∑i=1Nαiyi=0\nabla_bL(w,b,\alpha)=-\sum_{i=1}^N\alpha_iy_i=0 ∇b​L(w,b,α)=−i=1∑N​αi​yi​=0

    ​ 得到:
    w=∑i=1Nαiyixi∑i=1Nαiyi=0w=\sum_{i=1}^N\alpha_iy_ix_i \\\sum_{i=1}^N\alpha_iy_i=0 w=i=1∑N​αi​yi​xi​i=1∑N​αi​yi​=0
    ​ 代入拉格朗日函数,得到:
    L(w,b,α)=12∑i=1N∑j=1Nαiαjyiyj(xi⋅xj)−∑i=1Nαiyi((∑j=1Nαjyjxj)⋅xi+b)+∑i=1Nαi=−12∑i=1N∑j=1Nαiαjyiyj(xi⋅xj)+∑i=1NαiL(w,b,\alpha)=\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_j(x_i·x_j)-\sum_{i=1}^N\alpha_iy_i((\sum_{j=1}^N\alpha_jy_jx_j)·x_i+b)+\sum_{i=1}^N\alpha_i \\=-\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_j(x_i·x_j)+\sum_{i=1}^N\alpha_i L(w,b,α)=21​i=1∑N​j=1∑N​αi​αj​yi​yj​(xi​⋅xj​)−i=1∑N​αi​yi​((j=1∑N​αj​yj​xj​)⋅xi​+b)+i=1∑N​αi​=−21​i=1∑N​j=1∑N​αi​αj​yi​yj​(xi​⋅xj​)+i=1∑N​αi​
    ​ 即:
    minw,bL(w,b,α)=−12∑i=1N∑j=1Nαiαjyiyj(xi⋅xj)+∑i=1Nαimin_{w,b}L(w,b,\alpha)=-\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_j(x_i·x_j)+\sum_{i=1}^N\alpha_i minw,b​L(w,b,α)=−21​i=1∑N​j=1∑N​αi​αj​yi​yj​(xi​⋅xj​)+i=1∑N​αi​
    5、求maxαminw,bL(w,b,α)max_{\alpha}min_{w,b}L(w,b,\alpha)maxα​minw,b​L(w,b,α),即对偶问题:
    maxα−12∑i=1N∑j=1Nαiαjyiyj(xi⋅xj)+∑i=1Nαis.t.αi>=0,∑i=1Nαiyi=0max_{\alpha}-\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_j(x_i·x_j)+\sum_{i=1}^N\alpha_i \\s.t.\;\alpha_i>=0\;,\;\\\sum_{i=1}^N\alpha_iy_i=0 maxα​−21​i=1∑N​j=1∑N​αi​αj​yi​yj​(xi​⋅xj​)+i=1∑N​αi​s.t.αi​>=0,i=1∑N​αi​yi​=0
    ​ 等价于:
    ⭐minα12∑i=1N∑j=1Nαiαjyiyj(xi⋅xj)−∑i=1Nαis.t.αi>=0,∑i=1Nαiyi=0⭐min_{\alpha}\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_j(x_i·x_j)-\sum_{i=1}^N\alpha_i \\s.t.\;\alpha_i>=0\;,\;\\\sum_{i=1}^N\alpha_iy_i=0 ⭐minα​21​i=1∑N​j=1∑N​αi​αj​yi​yj​(xi​⋅xj​)−i=1∑N​αi​s.t.αi​>=0,i=1∑N​αi​yi​=0
    ​ ⭐可由此求得最优解α∗\alpha^*α∗

    6、由于强对偶关系成立,故满足KKT条件,故可由KKT条件(下面有详细说明)求得w,bw,bw,b的值:
    ∇wL(w∗,b∗,α∗)=w∗−∑i=1Nαi∗yixi=0∇bL(w∗,b∗,α∗)=−∑i=1Nαi∗yi=0αi∗(yi(w∗⋅xi+b∗)−1)=0yi(w∗⋅xi+b∗)−1>=0αi∗>=0\nabla_wL(w^*,b^*,\alpha^*)=w^*-\sum_{i=1}^N\alpha_i^*y_ix_i=0 \\\nabla_bL(w^*,b^*,\alpha^*)=-\sum_{i=1}^N\alpha_i^*y_i=0 \\\alpha_i^*(y_i(w^*·x_i+b^*)-1)=0 \\y_i(w^*·x_i+b^*)-1>=0 \\\alpha_i^*>=0 ∇w​L(w∗,b∗,α∗)=w∗−i=1∑N​αi∗​yi​xi​=0∇b​L(w∗,b∗,α∗)=−i=1∑N​αi∗​yi​=0αi∗​(yi​(w∗⋅xi​+b∗)−1)=0yi​(w∗⋅xi​+b∗)−1>=0αi∗​>=0
    ​ 由此得:
    ⭐w∗=∑iαi∗yixi⭐w^*=\sum_i\alpha_i^*y_ix_i ⭐w∗=i∑​αi∗​yi​xi​
    ​ 至少有一个αj∗>0\alpha_j^*>0αj∗​>0(假设α∗=0\alpha^*=0α∗=0,则w∗=0w^*=0w∗=0,显然不行),故有对应的:
    yj(w∗⋅xj+b∗)−1=0y_j(w^*·x_j+b^*)-1=0 yj​(w∗⋅xj​+b∗)−1=0

    ⭐b∗=yj−w∗⋅xj=yj−∑i=1Nαi∗yi(xi⋅xj)⭐b^* = y_j-w^*·x_j=y_j-\sum_{i=1}^N\alpha_i^*y_i(x_i·x_j) ⭐b∗=yj​−w∗⋅xj​=yj​−i=1∑N​αi∗​yi​(xi​⋅xj​)

    7、得到分离超平面:
    ⭐∑i=1Nαi∗yi(x⋅xi)+b∗=0⭐\sum_{i=1}^N\alpha_i^*y_i(x·x_i)+b^*=0 ⭐i=1∑N​αi∗​yi​(x⋅xi​)+b∗=0
    ​ 得到分类决策函数:
    ⭐f(x)=sign(∑i=1Nαi∗yi(x⋅xi)+b∗)⭐f(x)=sign(\sum_{i=1}^N\alpha_i^*y_i(x·x_i)+b^*) ⭐f(x)=sign(i=1∑N​αi∗​yi​(x⋅xi​)+b∗)
    ​ 可以发现,分类决策函数只依赖于输入x和训练样本输入的内积,且只受支持向量((αi∗>0\alpha_i^*>0αi∗​>0)的样本点)影响。

    8、小结:

    ​ 对于线性可分训练数据集,首先求对偶问题的解α∗\alpha^*α∗,再利用KKT条件求得w∗,b∗w^*,b^*w∗,b∗,从而得到分离超平面及分类决策函数。

  • 原始问题和对偶问题的关系:

    • 弱对偶关系:
      minmaxL>=maxminLmin\;maxL>=max\;minL minmaxL>=maxminL

    • 强对偶关系:
      maxminL=minmaxLmax\;minL=min\;maxL maxminL=minmaxL

    • 补充定理:

      • 假设原问题为:

      minxf(x)s.t.ci(x)<=0,hj(x)=0min_xf(x) \\s.t. \;c_i(x)<=0\;,\\h_j(x)=0 minx​f(x)s.t.ci​(x)<=0,hj​(x)=0

      ​ 拉格朗日函数为:
      L(x,α,β)=f(x)+∑i=1kαici(x)+∑j=1lβjhj(x)L(x,\alpha,\beta)=f(x)+\sum_{i=1}^k\alpha_ic_i(x)+\sum_{j=1}^l\beta_jh_j(x) L(x,α,β)=f(x)+i=1∑k​αi​ci​(x)+j=1∑l​βj​hj​(x)

      • 定理1:如果①f(x)f(x)f(x)和xi(x)x_i(x)xi​(x)是凸函数,hj(x)h_j(x)hj​(x)是仿射函数;②不等式约束ci(x)c_i(x)ci​(x)严格可行(存在xxx,对所有iii有ci(x)<0c_i(x)<0ci​(x)<0),那么存在x∗,α∗,β∗x^*,\alpha^*,\beta^*x∗,α∗,β∗使得x∗x^*x∗是原问题的解,α∗,β∗\alpha^*,\beta^*α∗,β∗为对偶问题的解,且p∗=d∗=L(x∗,α∗,β∗)p^*=d^*=L(x^*,\alpha^*,\beta^*)p∗=d∗=L(x∗,α∗,β∗)

      • 定理2:假设f(x)f(x)f(x)和xi(x)x_i(x)xi​(x)是凸函数,hj(x)h_j(x)hj​(x)是仿射函数,并且不等式约束ci(x)c_i(x)ci​(x)严格可行,则x∗,α∗,β∗x^*,\alpha^*,\beta^*x∗,α∗,β∗分别是原始问题和对偶问题的解的充分必要条件是x∗,α∗,β∗x^*,\alpha^*,\beta^*x∗,α∗,β∗满足以下KKT条件:
        ∇xL(x∗,α∗,β∗)=0αi∗ci(x∗)=0ci(x∗)<=0αi∗>=0hj(x∗)=0\nabla_xL(x^*,\alpha^*,\beta^*)=0 \\\alpha_i^*c_i(x^*)=0 \\c_i(x^*)<=0 \\\alpha_i^*>=0 \\h_j(x^*)=0 ∇x​L(x∗,α∗,β∗)=0αi∗​ci​(x∗)=0ci​(x∗)<=0αi∗​>=0hj​(x∗)=0

    • 简单来说,若原始问题满足定理1,即可使得强对偶关系成立,即原问题和对偶问题等价

三、软间隔SVM(线性支持向量机)

训练目标

  • 针对:假设训练数据集不是线性可分的,通常情况是训练数据中有一些特异点,将这些特异点取出后,剩下大部分的样本点组成的集合是线性可分的。

  • 线性不可分意味着某些样本点(xi,yi)(x_i,y_i)(xi​,yi​)不能满足函数间隔大于等于1的约束条件。对此,可以对每个样本点引进一个松弛变量ξi>=0\xi_i>=0ξi​>=0,使得函数间隔加上松弛变量大于等于1。约束条件变为yi(w⋅xi+b)>=1−ξiy_i(w·x_i+b)>=1-\xi_iyi​(w⋅xi​+b)>=1−ξi​

  • 对每个松弛变量支付一个代价。目标函数变为12∣∣w∣∣2+C∑i=1Nξi\frac{1}{2}||w||^2+C\sum_{i=1}^N\xi_i21​∣∣w∣∣2+C∑i=1N​ξi​。C>0C>0C>0称为惩罚参数。这样目标函数最小化:①使间隔尽量大;②误分类点的个数尽量小

  • 故原始问题:(w解唯一,b解可能不唯一,而是存在于一个区间)
    minw,b,ξ12∣∣w∣∣2+C∑i=1Nξis.t.yi(w⋅xi+b)>=1−ξiξi>=0min_{w,b,\xi}\frac{1}{2}||w||^2+C\sum_{i=1}^N\xi_i \\s.t.\;y_i(w·x_i+b)>=1-\xi_i \\\xi_i>=0 minw,b,ξ​21​∣∣w∣∣2+Ci=1∑N​ξi​s.t.yi​(w⋅xi​+b)>=1−ξi​ξi​>=0

对偶算法进行学习

步骤:

1、拉格朗日函数:
L(w,b,ξ,α,μ)=12∣∣w∣∣2+C∑i=1Nξi−∑i=1Nαi(yi(w⋅xi+b)−1+ξi)−∑i=1Nμiξi其中,αi>=0,μi>=0L(w,b,\xi,\alpha,\mu)=\frac{1}{2}||w||^2+C\sum_{i=1}^N\xi_i-\sum_{i=1}^N\alpha_i(y_i(w·x_i+b)-1+\xi_i)-\sum_{i=1}^N\mu_i\xi_i \\其中,\alpha_i>=0,\mu_i>=0 L(w,b,ξ,α,μ)=21​∣∣w∣∣2+Ci=1∑N​ξi​−i=1∑N​αi​(yi​(w⋅xi​+b)−1+ξi​)−i=1∑N​μi​ξi​其中,αi​>=0,μi​>=0
2、求minw,b,ξL(w,b,ξ,α,μ)min_{w,b,\xi}L(w,b,\xi,\alpha,\mu)minw,b,ξ​L(w,b,ξ,α,μ)
∇wL(w,b,ξ,α,μ)=w−∑i=1Nαiyixi=0∇bL(w,b,ξ,α,μ)=−∑i=1Nαiyi=0∇ξiL(w,b,ξ,α,μ)=C−αi−μi=0\nabla_wL(w,b,\xi,\alpha,\mu)=w-\sum_{i=1}^N\alpha_iy_ix_i=0 \\\nabla_bL(w,b,\xi,\alpha,\mu)=-\sum_{i=1}^N\alpha_iy_i=0 \\\nabla_{\xi_i}L(w,b,\xi,\alpha,\mu)=C-\alpha_i-\mu_i=0 ∇w​L(w,b,ξ,α,μ)=w−i=1∑N​αi​yi​xi​=0∇b​L(w,b,ξ,α,μ)=−i=1∑N​αi​yi​=0∇ξi​​L(w,b,ξ,α,μ)=C−αi​−μi​=0
​ 故有:
minw,b,ξL(w,b,ξ,α,μ)=−12∑i=1N∑j=1Nαiαjyiyj(xi⋅xj)+∑i=1Nαimin_{w,b,\xi}L(w,b,\xi,\alpha,\mu)=-\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_j(x_i·x_j)+\sum_{i=1}^N\alpha_i minw,b,ξ​L(w,b,ξ,α,μ)=−21​i=1∑N​j=1∑N​αi​αj​yi​yj​(xi​⋅xj​)+i=1∑N​αi​
3、再对α\alphaα求极大即可得到对偶问题:
minα12∑i=1N∑j=1Nαiαjyiyj(xi⋅xj)−∑i=1Nαis.t.∑i=1Nαiyi=00<=αi<=Cmin_\alpha\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_j(x_i·x_j)-\sum_{i=1}^N\alpha_i \\s.t.\;\sum_{i=1}^N\alpha_iy_i=0 \\0<=\alpha_i<=C minα​21​i=1∑N​j=1∑N​αi​αj​yi​yj​(xi​⋅xj​)−i=1∑N​αi​s.t.i=1∑N​αi​yi​=00<=αi​<=C
​ 据此可求得α∗=(α1∗,α2∗,...,αN∗)T\alpha^*=(\alpha_1^*,\alpha_2^*,...,\alpha_N^*)Tα∗=(α1∗​,α2∗​,...,αN∗​)T

4、根据KKT条件求得w∗,b∗w^*,b^*w∗,b∗:
∇wL(w∗,b∗,ξ∗,α∗,μ∗)=w∗−∑i=1Nαi∗yixi=0∇bL(w∗,b∗,ξ∗,α∗,μ∗)=−∑i=1Nαi∗yi=0∇ξiL(w∗,b∗,ξ∗,α∗,μ∗)=C−αi∗−μi∗=0αi∗(yi(w∗⋅xi+b∗)−1+ξi∗)=0μi∗ξi∗=0yi(w∗⋅xi+b∗)−1+ξi∗>=0ξi∗>=0αi∗>=0μi∗>=0\nabla_wL(w^*,b^*,\xi^*,\alpha^*,\mu^*)=w^*-\sum_{i=1}^N\alpha_i^*y_ix_i=0 \\\nabla_bL(w^*,b^*,\xi^*,\alpha^*,\mu^*)=-\sum_{i=1}^N\alpha_i^*y_i=0 \\\nabla_{\xi_i}L(w^*,b^*,\xi^*,\alpha^*,\mu^*)=C-\alpha_i^*-\mu_i^*=0 \\\alpha_i^*(y_i(w^*·x_i+b^*)-1+\xi_i^*)=0 \\\mu_i^*\xi_i^*=0 \\y_i(w^*·x_i+b^*)-1+\xi_i^*>=0 \\\xi_i^*>=0 \\\alpha_i^*>=0 \\\mu_i^*>=0 ∇w​L(w∗,b∗,ξ∗,α∗,μ∗)=w∗−i=1∑N​αi∗​yi​xi​=0∇b​L(w∗,b∗,ξ∗,α∗,μ∗)=−i=1∑N​αi∗​yi​=0∇ξi​​L(w∗,b∗,ξ∗,α∗,μ∗)=C−αi∗​−μi∗​=0αi∗​(yi​(w∗⋅xi​+b∗)−1+ξi∗​)=0μi∗​ξi∗​=0yi​(w∗⋅xi​+b∗)−1+ξi∗​>=0ξi∗​>=0αi∗​>=0μi∗​>=0

w∗=∑i=1Nαi∗yixib∗=yj−∑i=1Nyiαi∗(xi⋅xj)其中(xj,yj)为0<αj∗<C对应的样本点w^*=\sum_{i=1}^N\alpha_i^*y_ix_i \\b^*=y_j-\sum_{i=1}^Ny_i\alpha_i^*(x_i·x_j) \\其中(x_j,y_j)为0<\alpha_j^*<C对应的样本点 w∗=i=1∑N​αi∗​yi​xi​b∗=yj​−i=1∑N​yi​αi∗​(xi​⋅xj​)其中(xj​,yj​)为0<αj∗​<C对应的样本点
5、分类超平面:
∑i=1Nαi∗yi(x⋅xi)+b∗=0\sum_{i=1}^N\alpha_i^*y_i(x·x_i)+b^*=0 i=1∑N​αi∗​yi​(x⋅xi​)+b∗=0
​ 分类决策函数:
f(x)=sign(∑i=1Nαi∗yi(x⋅xi)+b∗)f(x)=sign(\sum_{i=1}^N\alpha_i^*y_i(x·x_i)+b^*) f(x)=sign(i=1∑N​αi∗​yi​(x⋅xi​)+b∗)
​ 软间隔的支持向量或者在间隔边界上,或者在间隔边界与分离超平面之间,或者在分离超平面误分一侧。若αi∗<C\alpha_i^*<Cαi∗​<C,则ξi=0\xi_i=0ξi​=0,样本点恰好落在间隔边界上;若αi∗=0\alpha_i^*=0αi∗​=0,则该样本点不是支持向量;若αi∗=C,0<ξi<1\alpha_i^*=C,0<\xi_i<1αi∗​=C,0<ξi​<1,则分类正确,样本点在间隔边界和分离超平面之间;若αi∗=C,ξi=1\alpha_i^*=C,\xi_i=1αi∗​=C,ξi​=1,则样本点落在分离超平面上;若αi∗=C,ξi>1\alpha_i^*=C,\xi_i>1αi∗​=C,ξi​>1,则样本点落在分离超平面误分一侧

合页损失函数

线性支持向量机的另一种解释,最小化以下目标函数:
∑i=1N[1−yi(w⋅xi+b)]++λ∣∣w∣∣2\sum_{i=1}^N[1-y_i(w·x_i+b)]_++\lambda||w||^2 i=1∑N​[1−yi​(w⋅xi​+b)]+​+λ∣∣w∣∣2
第一项为经验损失或经验风险;第二项是系数为λ\lambdaλ的www的L2L_2L2​范数,是正则化项

  • 合页损失函数(hinge loss function):

L(y(w⋅x+b))=[1−y(w⋅x+b)]+L(y(w·x+b))=[1-y(w·x+b)]_+ L(y(w⋅x+b))=[1−y(w⋅x+b)]+​

  • 下标“+”表示:

[z]+={z,z>00,z<=0[z]_+= \begin{cases} z,z>0 \\0,z<=0 \end{cases} [z]+​={z,z>00,z<=0​

  • 含义:当样本点(xi,yi)(x_i,y_i)(xi​,yi​)被正确分类且函数间隔yi(w⋅xi+b)>1y_i(w·x_i+b)>1yi​(w⋅xi​+b)>1时,损失是0,否则损失是1−yi(w⋅xi+b)1-y_i(w·x_i+b)1−yi​(w⋅xi​+b)

  • 合页损失函数形状像一个合页,故名

  • 与0-1损失函数相比:0-1损失函数是二分类问题真正的损失函数,二合页损失函数是其上界。由于0-1损失函数不是连续可导的,直接优化其目标函数比较困难,可以认为线性支持向量机是优化由0-1损失函数的上界(合页损失函数)构成的目标函数。这里的上界损失函数又称为代理损失函数。

  • 与虚线的损失函数[−yi(w⋅xi+b)]+[-y_i(w·x_i+b)]_+[−yi​(w⋅xi​+b)]+​相比:虚线当样本点被正确分类时,损失是0,否则损失是−yi(w⋅xi+b)-y_i(w·x_i+b)−yi​(w⋅xi​+b)。相比之下,合页损失函数不仅要分类正确,而且确信度足够高时损失才是0。也就是说,合页损失函数对学习有更高的要求。

四、非线性SVM(线性不可分支持向量机)

简要介绍

  • 核技巧不仅应用于支持向量机,也应用于其它统计学习问题
  • 如果能用一个超曲面将正负例正确分开,则称这个问题为非线性可分问题
  • 核技巧概述:首先用一个变换将原空间的数据映射到新空间;然后在新空间里用线性分类学习方法训练模型

  • 核函数定义:设XXX是输入空间,HHH为特征空间,如果存在一个从XXX到HHH的映射
    ϕ(x)=X→H\phi(x)=X→H ϕ(x)=X→H
    使得对所有x,z∈Xx,z\in Xx,z∈X,函数K(x,z)K(x,z)K(x,z)满足条件:
    K(x,z)=ϕ(x)⋅ϕ(z)K(x,z)=\phi(x)·\phi(z) K(x,z)=ϕ(x)⋅ϕ(z)
    则称K(x,z)K(x,z)K(x,z)为核函数,ϕ(x)\phi(x)ϕ(x)为映射函数。

  • 核技巧想法:只定义核函数K(x,z)K(x,z)K(x,z),而不显式定义ϕ\phiϕ。通常直接计算K(x,z)K(x,z)K(x,z)更容易。

  • 对于给定的核函数,特征空间和映射函数的取法并不唯一

  • 注意到在线性支持向量机的对偶问题中,无论是目标函数还是决策函数(分离超平面)都只涉及输入实例和实例之间的内积,用核函数代替内积的对偶问题的目标函数为:
    W(α)=12∑i=1N∑j=1NαiαjyiyjK(xi,xj)−∑i=1NαiW(\alpha)=\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_jK(x_i,x_j)-\sum_{i=1}^N\alpha_i W(α)=21​i=1∑N​j=1∑N​αi​αj​yi​yj​K(xi​,xj​)−i=1∑N​αi​
    用核函数代替内积的决策函数:
    f(x)=sign(∑i=1Nαi∗yiK(xi,x)+b∗)f(x)=sign(\sum_{i=1}^N\alpha_i^*y_iK(x_i,x)+b^*) f(x)=sign(i=1∑N​αi∗​yi​K(xi​,x)+b∗)
    等价于将原来的输入空间变换到一个新的特征空间,在新的特征空间里训练线性支持向量机。

  • 当映射函数是非线性函数时,学习到的含有核函数的支持向量机是非线性分类模型

  • 在实际应用中,往往依赖领域知识直接选择核函数,核函数选择的有效性需要通过实验验证。

  • 函数K(x,z)K(x,z)K(x,z)需要满足什么条件才能成为核函数?

    • 通常所说的核函数就是正定核函数
    • 正定核的充要条件:设K:X∗X→RK:X*X→RK:X∗X→R是对称函数,则K(x,z)K(x,z)K(x,z)为正定核函数的充要条件是对任意xi∈Xx_i \in Xxi​∈X,K(x,z)K(x,z)K(x,z)对应的Gram矩阵K=[K(xi,xj)]m∗mK=[K(x_i,x_j)]_{m*m}K=[K(xi​,xj​)]m∗m​是半正定矩阵
    • 但对一个具体函数来说,验证它是否为正定核函数并不容易。在实际问题中往往应用已有的核函数

常用核函数

1、多项式核函数
K(x,z)=(x⋅z+1)pK(x,z)=(x·z+1)^p K(x,z)=(x⋅z+1)p

  • 对应的支持向量机是一个p次多项式分类器

  • 分类决策函数:
    f(x)=sign(∑i=1Nαi∗yi(xi⋅x+1)p+b∗)f(x)=sign(\sum_{i=1}^N\alpha_i^*y_i(x_i·x+1)^p+b^*) f(x)=sign(i=1∑N​αi∗​yi​(xi​⋅x+1)p+b∗)

2、高斯核函数
K(x,z)=exp(−∣∣x−z∣∣22σ2)K(x,z)=exp(-\frac{||x-z||^2}{2\sigma^2}) K(x,z)=exp(−2σ2∣∣x−z∣∣2​)

  • 对应的支持向量机是高斯径向基函数分类器

  • 分类决策函数:
    f(x)=sign(∑i=1Nαi∗yiexp(−∣∣x−z∣∣22σ2)+b∗)f(x)=sign(\sum_{i=1}^N\alpha_i^*y_iexp(-\frac{||x-z||^2}{2\sigma^2})+b^*) f(x)=sign(i=1∑N​αi∗​yi​exp(−2σ2∣∣x−z∣∣2​)+b∗)

训练算法

输入:训练数据集T={(x1,y1),(x2,y2),...,(xN,yN)}T=\{(x_1,y_1),(x_2,y_2),...,(x_N,y_N)\}T={(x1​,y1​),(x2​,y2​),...,(xN​,yN​)}

输出:分类决策函数

算法:

(1)选取适当的(正定)核函数K(x,z)K(x,z)K(x,z)和适当的参数C,构造并求解最优化问题:
minα12∑i=1N∑j=1NαiαjyiyjK(xi,xj)−∑i=1Nαis.t.∑i=1Nαiyi=00<=αi<=Cmin_\alpha\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_jK(x_i,x_j)-\sum_{i=1}^N\alpha_i \\s.t.\;\sum_{i=1}^N\alpha_iy_i=0 \\0<=\alpha_i<=C minα​21​i=1∑N​j=1∑N​αi​αj​yi​yj​K(xi​,xj​)−i=1∑N​αi​s.t.i=1∑N​αi​yi​=00<=αi​<=C
求得最优解α∗=(α1∗,α2∗,...,αN∗)T\alpha^*=(\alpha_1^*,\alpha_2^*,...,\alpha_N^*)Tα∗=(α1∗​,α2∗​,...,αN∗​)T

(2)选择α∗\alpha^*α∗的一个正分量0<αj∗<C0<\alpha_j^*<C0<αj∗​<C,计算
b∗=yj−∑i=1Nαi∗yiK(xi,xj)b^*=y_j-\sum_{i=1}^N\alpha_i^*y_iK(x_i,x_j) b∗=yj​−i=1∑N​αi∗​yi​K(xi​,xj​)
(3)构造决策函数:
f(x)=sign(∑i=1Nαi∗yiK(x,xi)+b∗)f(x)=sign(\sum_{i=1}^N\alpha_i^*y_iK(x,x_i)+b^*) f(x)=sign(i=1∑N​αi∗​yi​K(x,xi​)+b∗)

[基本功]支持向量机(SVM)理论知识相关推荐

  1. 【机器学习算法-python实现】svm支持向量机(1)—理论知识介绍

    (转载请注明出处:http://blog.csdn.net/buptgshengod) 1.背景      强烈推荐阅读(http://www.cnblogs.com/jerrylead/archiv ...

  2. 影像组学视频学习笔记(11)-支持向量机(SVM)(理论)、Li‘s have a solution and plan.

    本笔记来源于B站Up主: 有Li 的影像组学系列教学视频 本节(11)主要介绍: SVM支持向量机(理论) 支持向量机 (support vector machine, SVM) 号称是鲁棒性(rob ...

  3. <机器学习>支持向量机(SVM)理论

    1.概念 支持向量机(support vector machines,SVM)是一种二类分类模型.它的基本模型是定义在特征空间上的间隔最大的线性分类器:同时,支持向量机包括的核技巧使它成为实质上的非线 ...

  4. svm多分类_人工智能科普|机器学习重点知识——支持向量机SVM

    作为模式识别或者机器学习的爱好者,同学们一定听说过支持向量机这个概念,这可是一个,在机器学习中避不开的重要问题. 其实关于这个知识点,有一则很通俗有趣的传说: 很久以前,一个村庄里住着一位退隐的大侠, ...

  5. 最小二乘法支持向量机一般用在什么场合_人工智能科普|机器学习重点知识——支持向量机SVM...

    作为模式识别或者机器学习的爱好者,同学们一定听说过支持向量机这个概念,这可是一个,在机器学习中避不开的重要问题. 其实关于这个知识点,有一则很通俗有趣的传说: 很久以前,一个村庄里住着一位退隐的大侠, ...

  6. 支持向量机SVM 参数选择

    http://ju.outofmemory.cn/entry/119152 http://www.cnblogs.com/zhizhan/p/4412343.html 支持向量机SVM是从线性可分情况 ...

  7. 支持向量机SVM(Support Vector Machines)介绍

    支持向量机SVM是从线性可分情况下的最优分类面提出的.所谓最优分类,就是要求分类线不但能够将两类无错误的分开,而且两类之间的分类间隔最大,前者是保证经验风险最小(为0),而通过后面的讨论我们看到,使分 ...

  8. 机器学习中的算法-支持向量机(SVM)基础

    机器学习中的算法-支持向量机(SVM)基础 版权声明: 本文由LeftNotEasy发布于http://leftnoteasy.cnblogs.com, 本文可以被全部的转载或者部分使用,但请注明出处 ...

  9. 全面的SVM理论讲解

    转载自:https://blog.csdn.net/v_july_v/article/details/7624837 前言 动笔写这个支持向量机(support vector machine)是费了不 ...

  10. 学习July博文总结——支持向量机(SVM)的深入理解(上)

    前言 本文是参照CSDN的July大神的热门博文<支持向量机通俗导论(理解SVM的三层境界>)写的.目的是因为July大神文中说,SVM理论的理解,需要一遍一遍的推导公式,直到脑中梳理下来 ...

最新文章

  1. 2022-2028年中国海水养殖行业市场研究及前瞻分析报告
  2. 用户密码加密存储十问十答,一文说透密码安全存储
  3. 上周那个 iPad还没送出去呢!
  4. Spring管理Strust的Action
  5. css:text-align:justify的用法
  6. 视觉激光融合——VLOAM / LIMO算法解析
  7. 简单的python流回显服务器与客户端
  8. Java如何判断整数溢出,溢出后怎么得到提示?
  9. 车牌颜色识别现在的结果
  10. git push提交时卡住
  11. JavaScript课堂笔记!
  12. 浏览器主页被更改成7654主页
  13. leetcode | 整数反转
  14. 批流融合系统-SparkV2/Beam
  15. 安卓手机按键精灵Python封装
  16. python中in是什么意思中文_python中的in是什么意思
  17. 超百万观众同场看直播流畅不卡顿,快手如何做到的?|首次披露
  18. AD 删除原理图图纸外的器件
  19. 如何通过文献查找该文献的代码
  20. grant all privileges on

热门文章

  1. NR RLC Protocol General and Procedure
  2. scratch(图形化编程工具)做一个贪吃蛇的游戏(包含视频讲解+源码)!
  3. 计算机开机屏幕英语,电脑开机进不了系统,屏幕一堆英文数字怎么办?别急有方法...
  4. mysql查询1971年以前_mysql 初篇
  5. 最全-python教程示例大全 同步学习
  6. 重定向解决国外服务器与国内域名备案的问题
  7. 数据库系统概论练习3
  8. JDBC数据库连接测试工具
  9. 明翰经验系列之管理篇V1.1(持续更新)
  10. 定理在数学中的简写形式_高中数学联赛常用定理