机器学习西瓜书笔记:支持向量机SVM(support vector machines)

一、概念


支持向量机


分类学习的基本思想:基于训练样本集 D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . . , ( x m , y m ) } , y i ∈ { − 1 , + 1 } D = \{(x_1,y_1),(x_2,y_2),....,(x_m,y_m)\}, yi∈\{-1,+1\} D={ (x1,y1),(x2,y2),....,(xm,ym)},yi{ 1,+1},在样本空间找到一个划分超平面,将不同类别样本分开
在这里插入图片描述

支持向量机:分类问题,对于线性可分的数据集,找距离正负样本都最远超平面模型。(感知机的超平面解可能不唯一,但是SVM解是唯一的)

  • 位于两类样本正中间的,对训练样本局部扰动的容忍性最好,产生的分类结果最健壮(robust),对未见示例的泛化能力最强。

对于泛化能力最强的解释:

如图,如果我们选择的超平面是红色,他距离正负样本的距离不是都是最远,则对于新的正样本(紫色),会把它划分到负样本中,即泛化能力不强。

而SVM找到的超平面是绿色,明显泛化能力更好,分类错误情况更少。
在这里插入图片描述


支持向量support vector


距离超平面最近的训练样本点

在这里插入图片描述


超平面 w ⃗ T x ⃗ + b = 0 \vec{w}^T\vec{x} + b= 0 w Tx +b=0


超平面方程和性质


1、超平面方程: w ⃗ T x ⃗ + b = 0 \vec{w}^T\vec{x} + b= 0 w Tx +b=0(回忆神经网络时b是 − θ -\theta θ阈值)

  • n=1,超平面是一个点
  • n=2,超平面是一条直线
  • n=3,超平面是一个面

超平面可记为 ( w ⃗ , b ) (\vec{w}, b) (w ,b)


2、超平面性质:以n=2时, w 1 = w 2 = 1 , b = − 1 w_1 = w_2 = 1, b= -1 w1=w2=1,b=1超平面为例

在这里插入图片描述

  • 超平面方程不唯一,每一项添加一个系数,结果还是一样
  • 法向量 w ⃗ \vec{w} w 垂直于超平面:如图法向量 w ⃗ = ( w 1 , w 2 ) = ( 1 , 1 ) \vec{w} = (w_1,w_2) = (1,1) w =(w1,w2)=(1,1)决定超平面的方向
  • 法向量 w ⃗ \vec{w} w ,和位移项 b b b,确定一个唯一的超平面
  • 法向量 w ⃗ \vec{w} w 指向的一半为正空间,另一半为负空间。
    • 正空间内的点,带入 w ⃗ T x ⃗ + b > 0 \vec{w}^T\vec{x} +b > 0 w Tx +b>0
    • 负空间内的点,带入 w ⃗ T x ⃗ + b < 0 \vec{w}^T\vec{x} +b < 0 w Tx +b<0
    • 超平面上的点,带入 w ⃗ T x ⃗ + b = 0 \vec{w}^T\vec{x} +b = 0 w Tx +b=0

样本点到超平面的距离:几何间隔的一部分


样本空间中任意点 x ⃗ \vec{x} x 到超平面 ( w ⃗ , b ) (\vec{w}, b) (w ,b)的距离 r r r

在这里插入图片描述该公式其实想一下对于直线 A x + B y + C = 0 Ax + By + C=0 Ax+By+C=0,平面上任意一点 ( x 0 , y 0 ) (x_0, y_0) (x0,y0)到直线的距离公式是: ∣ A x 0 + B x 0 + C ∣ A 2 + B 2 {|Ax_0 + Bx_0+C|}\over {\sqrt{A^2+B^2}} A2+B2 Ax0+Bx0+C即可对应 n 维 n维 n空间公式。

具体推导过程:
在这里插入图片描述


几何间隔margin:不按照西瓜书


西瓜书对于间隔的定义:


间隔margin:两个异类支持向量 到超平面的距离之和在这里插入图片描述

该公式跳了很多步骤,西瓜书会对正确分类的SVM超平面模型假设为6.3,这里的+1,-1其实可以是任意常数,对结果w,b不影响,因为系数可以缩放。

在这里插入图片描述这里规定是+1,-1,也就决定了支持向量到超平面距离=1,则异类支持向量到超平面距离之和就如6.4所示。


后面的推导,没有先假设是+1,-1,而是到了最后一步,令分子=1,反正就是这些系数全都可以为了计算随意设置,不影响求w和b


非西瓜书

1、数据集中的样例点 ( x i ⃗ , y i ) , y i ∈ { − 1 , 1 } , i = 1 , 2 , . . , m (\vec{x_i}, y_i), y_i \in \{-1,1\},i=1,2,..,m (xi ,yi),yi{ 1,1},i=1,2,..,m关于超平面 w ⃗ T x ⃗ + b = 0 \vec{w}^T\vec{x} + b= 0 w Tx +b=0几何间隔 γ i \gamma_i γi

在这里插入图片描述


几何间隔不仅能体现真实间隔大小,即样本点到超平面的距离r,还能体现分类是否正确

  1. 分类正确时,几何间隔 γ i > 0 \gamma_i > 0 γi>0
  2. 分类错误时,几何间隔 γ i < 0 \gamma_i <0 γi<0

证明:

  • 正空间内的点,带入 w ⃗ T x ⃗ + b > 0 \vec{w}^T\vec{x} +b > 0 w Tx +b>0
    • 分类错误:真实标记 y i = − 1 y_i=-1 yi=1,则 γ i \gamma_i γi<0
    • 分类正确:真实标记 y i = 1 y_i=1 yi=1,则 γ i \gamma_i γi>0
  • 负空间内的点,带入 w ⃗ T x ⃗ + b < 0 \vec{w}^T\vec{x} +b < 0 w Tx +b<0
    • 分类错误:真实标记 y i = 1 y_i=1 yi=1,则 γ i \gamma_i γi<0
    • 分类正确:真实标记 y i = − 1 y_i=-1 yi=1,则 γ i \gamma_i γi>0
  • 超平面上的点,带入 w ⃗ T x ⃗ + b = 0 \vec{w}^T\vec{x} +b = 0 w Tx +b=0

2、数据集 X X X 到超平面的几何间隔:定义为 X X X中所有样本点的几何间隔的最小值

在这里插入图片描述


二、SVM


1、模型:实现分类的最大间隔超平面


我们直接规定该超平面是正确分类的,分类功能套个sign函数,把实值变为分类值1,-1.

  • 当前数据集线性可分,代表我们必然能找到能正确划分的超平面,也就是我们最优化间隔过程结束后,找到的最大的 γ \gamma γ必然是>0的。

  • 因此一开始我们应当规定超平面模型就是正确分类的模型,没必要考虑无法正确分类,因为对于线性可分数据集不可能。

在这里插入图片描述

接下来就是对这个能正确分类的超平面,使其损失函数最小化,也就是间隔最大化。

在这里插入图片描述


2、策略:推导损失函数


最终目的:SVM要求一个超平面 γ \gamma γ,该超平面的几何间隔是所有超平面中最大的。

同时几何间隔自身要满足约束条件: γ = min ⁡ γ i \gamma = \min \gamma_i γ=minγi,即是数据集中样本点到超平面距离的最小值。


首先回忆样本点到超平面的间隔公式:
在这里插入图片描述

SVM问题转化为:

这里的(xmin,ymin)就是西瓜书定义的支持向量
在这里插入图片描述

在这里插入图片描述
分母相同,去掉,问题变为:
在这里插入图片描述


求最优解需要限制 ( w ⃗ ∗ , b ) (\vec{w}^*, b) (w ,b)


在求解之前还要继续变化问题形式,直到是一个可以求出固定最优解的最小化问题


求能得到最大几何间隔的最优解 ( w ⃗ ∗ , b ) (\vec{w}^*, b) (w ,b)

在这里插入图片描述
但是此条件极值问题,和LDA中一样,无法直接求解。

因为假设最优解为 ( w ⃗ ∗ , b ) (\vec{w}^*, b) (w ,b),则 ( α w ⃗ ∗ , α b ) (\alpha\vec{w}^*,\alpha b) (αw ,αb)必然也是最优解,会上下约分掉。

因此必须对 ( w ⃗ ∗ , b ) (\vec{w}^*, b) (w ,b)做出限制:通常是固定分子或者分母为一个固定常数值。不固定的话,系数 α \alpha α随便取了,无法求解;固定的话,就必须存在唯一一个 α \alpha α满足此等式。


SVM固定分子:相当于规定支持向量距离超平面1
在这里插入图片描述
问题转化为:
在这里插入图片描述


最大化问题转最小化问题


通常把最大化问题转化为最小化问题,毕竟是叫损失函数,则把max的变成其倒数,约束写成<=0的形式。

而为了后面计算,如求导方面,写成 1 2 {1\over 2} 21模长的平方。

最优化主问题为:

在这里插入图片描述


3、求解:转化为拉格朗日对偶问题


3.1、主问题:其实本身已经是凸优化问题

在这里插入图片描述在这里插入图片描述


该主问题满足:

  1. 是凸优化问题
  2. 具有强对偶性:则对偶问题的最优解就是主问题的最优解。证明见后面

因此虽然主问题本身已经是凸优化问题,有现成优化计算包求解,但是转化为对偶问题求解更加高效。


3.2、拉格朗日函数:


对m条不等式约束添加拉格朗日乘子 α i \alpha_i αi,对偶问题要求 α i ≥ 0 \alpha_i \ge 0 αi0
在这里插入图片描述


3.3、求解对偶函数 Γ ( α ⃗ ) \Gamma(\vec{\alpha}) Γ(α ) = inf ⁡ L ( w ⃗ , b , α ) ⃗ \inf L(\vec{w}, b,\vec{\alpha)} infL(w ,b,α)


也就是求L的最小值,求L最小值为啥我们求偏导=0呢?有如下几种理解:

  • 凸函数的性质:该拉格朗日函数把w,b变成 w ⃗ ^ \hat{\vec{w}} w ^,是关于 w ⃗ ^ \hat{\vec{w}} w ^凸函数,则对其求偏导=0,解出来的一定是最优解。
  • 该SVM问题强对偶性成立,则主问题的最优解必然满足5个KKT条件,条件一就是拉格朗日函数的最优解带入偏导数=0

在这里插入图片描述


矩阵,向量求偏导常用公式:

- ,对求导用公式 =


带入偏导=0,得到对偶函数 Γ ( α ⃗ ) \Gamma(\vec{\alpha}) Γ(α ) = inf ⁡ L ( w ⃗ , b , α ) ⃗ \inf L(\vec{w}, b,\vec{\alpha)} infL(w ,b,α) 为:

在这里插入图片描述


3.4 对偶问题


对偶问题的定义


这里给出简单定义,后面有详细讲解
在这里插入图片描述


SVM的对偶问题:6.11

有了对偶函数,根据对偶问题需要的约束条件 α i ≥ 0 \alpha_i \ge 0 αi0,以及题目本身需要的约束,得到对偶问题

在这里插入图片描述


强对偶性成立还需要满足KKT条件


KKT条件见后面讲解
在这里插入图片描述


3.5 求解6.11对偶问题


在这里插入图片描述
后面再讲


将样本从低维映射到高维。
则高维的划分超平面模型为:
在这里插入图片描述


对偶问题变为:
在这里插入图片描述


问题:原始样本映射到的高维特征空间,可能维数特别大,甚至是无穷维,则计算6.21 ϕ ( x ⃗ i ) T p h i ( x ⃗ i ) \phi(\vec{x}_i)^Tphi(\vec{x}_i) ϕ(x i)Tphi(x i)会很困难。


解决:引入核函数 κ ( ⋅ , ⋅ ) \kappa(·,·) κ(,)
在这里插入图片描述
该核函数,把原本高维内积问题变成:在原始样本维度上做内积


6.21对偶问题重写为:求出使得对偶问题最大化的核函数值
在这里插入图片描述


需要求解的超平面模型为:
在这里插入图片描述

  • 根据6.9: w ⃗ = ∑ i = 1 m α i y i ϕ ( x ⃗ i ) \vec{w} = \sum_{i=1}^m\alpha_i y_i \phi(\vec{x}_i) w =i=1mαiyiϕ(x i)

支持向量展式(support vector expansion)


6.24表示:超平面模型的最优解,可以通过训练样本 x ⃗ \vec{x} x 的核函数展开
在这里插入图片描述


则只要知道了核函数,就能求出超平面模型。

核函数的选取需要满足两个条件,见附录。

常用核函数如下:都满足核函数定理
在这里插入图片描述


选取一个合适的核函数,映射到合适的特征空间,求出性能佳的划分超平面模型。


公式推导过程:

在这里插入图片描述
在这里插入图片描述


附录1:凸优化问题


凸函数:海塞矩阵是正定或者半正定

凸优化问题:

  1. 目标函数是凸函数
  2. 约束集合是凸集

特别地:如下情况也是凸优化问题
1、目标函数是凸函数
2、约束集合是凸集
3、不等式约束函数是凸函数
4、等式约束函数是线性函数

显然SVM是个凸优化问题。


附录2:针对任意优化问题:转化为对偶问题dual problem


不管你主问题是不是凸优化问题,其对偶问题必然是凸优化问题


1、一般的优化问题:即不一定是凸优化问题


1、形式
在这里插入图片描述
2、该优化问题的 定义域 D D D 为是每个函数定义域的交集:
在这里插入图片描述

3、可行集 D ~ \tilde{D} D~ 即定义域中能满足约束条件的
在这里插入图片描述


4、最优值 p ∗ = min ⁡ { f ( x ~ ⃗ ) } p^* = \min\{f(\vec{\tilde{x}})\} p=min{ f(x~ )}, x ~ ⃗ ∈ D ~ \vec{\tilde{x}} \in \tilde{D} x~ D~,即被优化函数 符合约束条件时(可行集上) 的最小值


2、一般优化问题的拉格朗日函数


在这里插入图片描述


3、拉格朗日对偶函数 Γ ( μ ⃗ , λ ⃗ ) \Gamma(\vec{\mu}, \vec{\lambda}) Γ(μ ,λ )


下确界:简单理解为下界。记为 i n f ( f ( x ) ) inf(f(x)) inf(f(x))

  • f ( x ) = e x f(x) = e^x f(x)=ex i n f ( f ( x ) ) = 0 inf(f(x)) = 0 inf(f(x))=0
  • f无下界, i n f ( f ( x ) ) = − ∞ inf(f(x)) = -\infin inf(f(x))=

定义优化问题的 拉格朗日对偶函数 Γ ( μ ⃗ , λ ⃗ ) \Gamma(\vec{\mu}, \vec{\lambda}) Γ(μ ,λ )为:拉格朗日函数 L ( x ⃗ , μ ⃗ , λ ⃗ ) L(\vec{x}, \vec{\mu}, \vec{\lambda}) L(x ,μ ,λ ) D D D上的下确界:
在这里插入图片描述


对偶函数的2个性质:


在这里插入图片描述


性质2证明:

  • 最优值 p ∗ = min ⁡ { f ( x ~ ⃗ ) } p^* = \min\{f(\vec{\tilde{x}})\} p=min{ f(x~ )}, x ~ ⃗ ∈ D ~ \vec{\tilde{x}} \in \tilde{D} x~ D~,即被优化函数 符合约束条件时(可行集上) 的最小值
  • 可行集 D ~ \tilde{D} D~:即定义域中能满足约束条件的
    在这里插入图片描述

1、证明 Γ ( μ ⃗ , λ ⃗ ) ≤ p ∗ \Gamma(\vec{\mu}, \vec{\lambda}) \leq p^* Γ(μ ,λ )p,即证: Γ ( μ ⃗ , λ ⃗ ) ≤ min ⁡ { f ( x ~ ⃗ } ) \Gamma(\vec{\mu}, \vec{\lambda}) \leq \min\{f(\vec{\tilde{x}}\}) Γ(μ ,λ )min{ f(x~ });即证: Γ ( μ ⃗ , λ ⃗ ) ≤ f ( x ~ ⃗ ) \Gamma(\vec{\mu}, \vec{\lambda}) \leq f(\vec{\tilde{x}}) Γ(μ ,λ )f(x~ )

2、即证: inf ⁡ x ⃗ ∈ D L ( x ⃗ , μ ⃗ , λ ⃗ ) ≤ f ( x ~ ⃗ ) \inf_{\vec{x} \in D} L(\vec{x}, \vec{\mu}, \vec{\lambda}) \leq f(\vec{\tilde{x}}) infx DL(x ,μ ,λ )f(x~ )

  • 左边是拉格朗日函数全局定义域上符合约束条件的下界,肯定比更小定义域范围的可行集上的函数值更小,则 inf ⁡ x ⃗ ∈ D L ( x ⃗ , μ ⃗ , λ ⃗ ) ≤ L ( x ⃗ ~ , μ ⃗ , λ ⃗ ) \inf_{\vec{x} \in D} L(\vec{x}, \vec{\mu}, \vec{\lambda}) \leq L(\tilde{\vec{x}}, \vec{\mu}, \vec{\lambda}) infx DL(x ,μ ,λ )L(x ~,μ ,λ )

3、即证 L ( x ⃗ ~ , μ ⃗ , λ ⃗ ) ≤ f ( x ~ ⃗ ) L(\tilde{\vec{x}}, \vec{\mu}, \vec{\lambda}) \leq f(\vec{\tilde{x}}) L(x ~,μ ,λ )f(x~ ):

  • 根据可行集上的点符合约束条件的而行之,很容易就能证明
  • 在这里插入图片描述
    证明过程倒推即可。

4、拉格朗日对偶问题:恒为凸优化问题;求对偶函数最大值


原优化问题称为:主问题
在这里插入图片描述


拉格朗日对偶问题:注意拉格朗日参数要求都>=0

定义就是求对偶函数最大值的优化问题!!

在这里插入图片描述


对偶问题恒为凸优化问题


在这里插入图片描述


5、强对偶性:解释为啥SVM是凸优化问题还用对偶问题求解


  1. 首先SVM问题强对偶性成立,因此对偶问题的最优解(求最大值)就是原问题(求最小值)的最优解。也就是说是可以求解
  2. 对偶问题的参数是拉格朗日乘数,和样本量m成正比。而原问题和特征向量的维数n成正比。一般维数n远大于样本量m,此时用对偶问题求解更高效。

之前证明了对偶函数的性质2:
μ ⃗ ≽ 0 时 , Γ ( μ ⃗ , λ ⃗ ) ≤ p ∗ = min ⁡ { f ( x ⃗ ~ ) } \vec{\mu} \succcurlyeq 0时,\Gamma(\vec{\mu}, \vec{\lambda}) \leq p^* = \min\{f(\tilde{\vec{x}})\} μ 0Γ(μ ,λ )p=min{ f(x ~)}

把对偶问题的最优值记为: d ∗ = max ⁡ { Γ ( μ ⃗ , λ ⃗ ) } ≤ p ∗ d^* = \max\{\Gamma(\vec{\mu}, \vec{\lambda})\} \leq p^* d=max{ Γ(μ ,λ )}p。此时称为弱对偶性成立

d ∗ = p ∗ d^* = p^* d=p时,称为强对偶性成立


何时强对偶性成立?显然SVM成立

在这里插入图片描述

  • SVM的主问题是凸优化问题在这里插入图片描述
  • 且可行集中存在一点能使得 所有不等式约束的不等号成立

附录3:KKT条件:5个(强对偶性成立时需要满足)


SVM强对偶性成立,则必然满足入五个条件:

  • x ⃗ ∗ \vec{x}^* x :主问题的最优解
  • ( μ ⃗ ∗ , λ ⃗ ∗ ) (\vec{\mu}^*, \vec{\lambda}^*) (μ ,λ ):对偶问题的最优解

在这里插入图片描述


最优解必须满足:

  1. 对参数求偏导=0:拉格朗日乘数法就满足了
  2. 等式约束成立
  3. 不等式约束成立
  4. 不等式约束的m个拉格朗日乘数必须>=0
  5. 不等式约束的拉格朗日乘数*不等式约束 = 0

附录4:核函数


问题:原始维度的样本空间内,不存在一个能正确划分两类样本的超平面

如:异或问题
在这里插入图片描述


解决:把样本 x ⃗ \vec{x} x 映射到更高维的特征空间,映射后的样本为 ϕ ( x ⃗ ) \phi(\vec{x}) ϕ(x )。样本在此高维特征空间内线性可分。(原始空间时有限维,即属性有限,则必然存在一个高位特征空间使得样本线性可分)

二维特征空间,映射到三维特征空间。找到划分超平面
在这里插入图片描述


核函数 κ \kappa κ和映射 ϕ \phi ϕ是一一对应的,已知一个,就能求出另一个。


核函数的形式不能随意取,需要满足一定条件
定理:核函数能写成

高斯核函数
在这里插入图片描述


我们知道了若满足上述两个条件,核函数则能写成向量内积形式。
虽然依然不知道如何求出 ϕ \phi ϕ映射函数的形式。但是可以求出 w ⃗ T ϕ ( x ⃗ ) + b \vec{w}^T\phi(\vec{x})+b w Tϕ(x )+b,则模型有了,样本也可以划分类别了

猜你喜欢

转载自blog.csdn.net/weixin_42810939/article/details/124018413