机器学习1——支持向量机(SVM)详细理论推导【图文版】

一、线性可分情况的支持向量机

1、引例

机器学习1——支持向量机(SVM)详细理论推导【图文版】_第1张图片

  • 我们希望找到一条直线,来分开圆圈和叉。支持向量机 Support Vector Machine, SVM 是一种能够很好处理中等大小数据集的广义二元线性分类器。
  • SVM属于监督学习 Supervised Learning 的一种,通过对带有标签 Label 的数据特征的学习,画出一条线、平面或者超平面 Hyper Plane 来分开不同的样本,即将每个样本分到不同的类,这样在给出一个新样本后,我们通过这个新样本的特征就可以判断它属于哪一类。
  • SVM既可以用来做分类 Classification ,也可以用来做回归 Regression
  • 如图,我们可以找到无数条线把这两种线性可分 Linearly Separable 的样本分开,但是我们希望找到一个最好的线,它可以容忍比较大的测量误差,提升整个模型的鲁棒性 Robustness

机器学习1——支持向量机(SVM)详细理论推导【图文版】_第2张图片

  • 如何确定一条线的优劣程度需要有客观的评判标准,我们引入了几个概念。当你找到一条直线后,上下平行移动这条线,直到它擦过一个或者几个向量,我们将向上和向下两条直线的距离 d d d 定义为这条直线的性能指标——间距 Margin,上下擦过的向量叫做支持向量 Support Vectors,那么SVM之所以好的原因就在于,它试图在找一条能够最大化间距的直线把样本分开,所以你也常常会听到人们说SVM是一个大间隔分类器 Large Margin Classifier
    机器学习1——支持向量机(SVM)详细理论推导【图文版】_第3张图片
  • 每确定一个间距 d d d,我们都会找到无数条满足这个间距的直线,我们选择与两边距离为 d 2 \frac d2 2d 的直线作为最后的边界。
  • 细致观察后可以发现,支持向量机最后做出来的线只会与支持向量有关,与其他向量没有太大关系,且训练结束后支持向量占所有向量的比重不应该很大,如果占比过大,大概率是没有训练好,或者SVM无法将其线性分开。

2、定义

  • 训练数据及标签: T = { ( X 1 , y 1 ) , ( X 2 , y 2 ) , … , ( X n , y n ) } T=\left\{\left(X_1,y_1\right),\left(X_2,y_2\right),\dots,\left(X_n,y_n\right)\right\} T={ (X1,y1),(X2,y2),,(Xn,yn)}其中 X i X_i Xi 是向量,向量的维数即为特征的维数,
    标签 y i y_i yi 的取值为离散值,为了推导方便,我们令其在这个二元分类问题上的取值为 + 1 +1 +1 − 1 -1 1
  • 由参数 W W W b b b 确定的超平面: W T ⋅ X + b = 0 W^T·X+b=0 WTX+b=0 这里的 W W W 是与 X X X 同维度的参数向量,
    b b b 是一个常数
  • 训练的过程就是确定参数 W W W b b b 的过程,参数确定,平面找到,学习完成。
  • 训练集线性可分的数学表达:
    训 练 样 本 T = { ( X n , y n ) } i = 1 ∼ N 训练样本 T=\left\{\left(X_n,y_n\right)\right\} i=1 \sim N T={ (Xn,yn)}i=1N ∃ ( W , b ) 使 得 对 于 ∀ i = 1 ∼ N 都 有 : \exists\left(W,b\right) 使得对于 \forall i=1 \sim N都有: (W,b)使i=1N: a . 若 y i = + 1 , 则 W T ⋅ X + b ≥ 0 a. 若 y_i =+1,则W^T·X+b\geq0 a.yi=+1,WTX+b0 b . 若 y i = − 1 , 则 W T ⋅ X + b ≤ 0 b. 若 y_i =-1,则W^T·X+b\leq0 b.yi=1,WTX+b0 y i y_i yi 只取 + 1 +1 +1 − 1 -1 1 时,可以将其简化为 y i ( W T ⋅ X + b ) ≥ 0 y_i\left(W^T·X+b\right)\geq0 yi(WTX+b)0

3、优化问题

寻找 W W W b b b,使得
最小化 Minimize 1 2 ∥ W ∥ 2 \frac12\left\|W\right\|^2 21W2
限制条件 Subject to y i ( W T ⋅ X i + b ) ≥ 1 y_i\left(W^T·X_i+b\right)\geq1 yi(WTXi+b)1     i = 1 ∼ N i=1 \sim N i=1N

  • 事实1: W T ⋅ X + b ≥ 0 W^T·X+b\geq0 WTX+b0 a W T ⋅ X + a b ≥ 0 aW^T·X+ab\geq0 aWTX+ab0 是同一个平面( a ∈ R a\in\mathbb{R} aR
  • 事实2:向量 X 0 X_0 X0 到超平面 W T ⋅ X + b ≥ 0 W^T·X+b\geq0 WTX+b0 的距离为: d = W T ⋅ X 0 + b ∣ ∣ W ∣ ∣ d=\frac{W^T·X_0+b}{\left|\left|W\right|\right|} d=WWTX0+b

①综合两个事实,我们可以通过实数 a a a缩放超平面方程,使得: ( W , b ) → ( a W , a b ) \left(W,b\right)\rightarrow\left(aW,ab\right) (W,b)(aW,ab)②最终使得缩放后的 W W W b b b 能够满足在所有的支持向量上: ∣ W T ⋅ X 0 + b ∣ = 1 \left|W^T\cdot X_0+b\right|=1 WTX0+b=1③将其带入事实2的公式中,可以得到支持向量与超平面的距离为 1 ∥ W ∥ \frac1{\left\|W\right\|} W1,最大化距离就转化为最小化 ∥ W ∥ \left\|W\right\| W

  • 对比上面的最小化内容,其中的 1 2 \frac12 21 仅仅是为了求导方便
  • 限制条件的这个 1 1 1 其实可以是任意的常数,但是我们都可以通过缩放一个隐形的参数 a a a 来将其调节为 1 1 1 ,之所以将这个作为了限制条件就是为了说对于每一次修改后的 W W W,和对于每一个需要满足等式为 1 1 1 的支持向量,我们都可以找到一个对应的 a a a 让其满足条件,所以我们只需不断地优化 W W W 即可,无需担心每次优化后因为 W W W 的改变而导致优化目标的改变,限制条件保证了参数 a a a 在每一次的优化中其实都是在不停地改变自己从而平衡等式的值为 1 1 1,这个过程随时发生,虽然我们不需要求出 a a a 的值,但正是因为 a a a 有这个能力来变化自身,适应每次优化后的新参数值,才从而确保优化目标始终正确。
  • 对于限制条件, y i y_i yi 仅仅是一个常数,取值为 + 1 +1 +1 − 1 -1 1,因而可以忽略。对于除了支持向量之外的其他向量,将会有 ∣ W T ⋅ X 0 + b ∣ > 1 \left|W^T\cdot X_0+b\right|>1 WTX0+b>1,即距离更大,所以最后得出 y i ( W T ⋅ X + b ) ≥ 1 y_i\left(W^T·X+b\right)\geq1 yi(WTX+b)1 的表达式。

4、得到凸优化中的二次规划问题

  • 之所以SVM要这么做,转化我们的优化问题为这样的形式,实际上是因为它在尝试将其转化为凸优化中二次规划问题:
    ①目标函数为二次项      1 2 ∥ W ∥ 2 \frac12\left\|W\right\|^2 21W2
    ②限制条件为一次项      y i ( W T ⋅ X i + b ) ≥ 1 y_i\left(W^T·X_i+b\right)\geq1 yi(WTXi+b)1     i = 1 ∼ N i=1 \sim N i=1N
  • 在上述的条件下,整个问题会变成一个凸优化问题,即要么无解,要么只有一个全局最优解,而不会出现局部极值的问题。
  • 使用梯度下降等方法即可进行迭代,最终求解出参数 W W W b b b

二、线性不可分的处理方法

1、引例

机器学习1——支持向量机(SVM)详细理论推导【图文版】_第4张图片

  • 此时的SVM仍然试图用一个直线来分开样本,将会出现部分样本无法被正确划分,原来的限制条件也将不能满足。因而我们需要改变限制条件,从而使得能够满足现在的情况。

最小化 Minimize 1 2 ∥ W ∥ 2 + C ∑ i = 1 N ξ i \frac12\left\|W\right\|^2+C{\textstyle\sum_{i=1}^N}\xi_i 21W2+Ci=1Nξi ξ i \xi_i ξi为松弛变量)
限制条件 Subject to
a . y i ( W T ⋅ X i + b ) ≥ 1 − ξ i a.y_i\left(W^T·X_i+b\right)\geq1-\xi_i a.yi(WTXi+b)1ξi     i = 1 ∼ N i=1 \sim N i=1N
b . ξ i ≥ 0 b.\xi_i\geq0 b.ξi0     i = 1 ∼ N i=1 \sim N i=1N

  • 我们引入了 ξ i \xi_i ξi 这个松弛变量,它的存在使得限制条件变得不那么严格了,尤其是 ξ i \xi_i ξi 非常大的时候,限制条件 a a a 式子会很容易成立,这是因为被正确分类的依然可以保证和线性可分一样的条件,满足其 ≥ 1 \geq1 1,但是对于那些被错误分配到另外一侧的,它的取值不过是加上了负号而已,可能是 − 10 -10 10,可能是 − 100 -100 100,但是我们也是能够找到最小的那个值,并且把 ξ i \xi_i ξi 设定得比那个值的绝对值更大,从而使得所有样本都成立。然而此时优化问题会变得非常发散,即可以想象对于一个线性不可分的问题,我们尝试使得所有样本都满足这个限制条件,最极限的时候即在无穷远处画线,所有样本归为一类,我们也能够满足条件。

  • 因而我们在最小化目标的后面加上了这个正则项 C ∑ i = 1 N ξ i C{\textstyle\sum_{i=1}^N}\xi_i Ci=1Nξi通过参数 C C C 来控制两项的权重,最小化 1 2 ∥ W ∥ 2 \frac12\left\|W\right\|^2 21W2 的同时限制 ξ i \xi_i ξi 的大小。

  • 在优化问题中, C C C 属于常数, W W W, b b b , ξ i \xi_i ξi i = 1 ∼ N i=1 \sim N i=1N)为待求解的变量。

  • 修改后的优化问题对于线性不可分样本都能找到最优解,即它仍然是凸优化中的二次规划问题,保证了局部极值就是全局最小值

  • 当整个样本出现更加严重的非线性情况时:
    机器学习1——支持向量机(SVM)详细理论推导【图文版】_第5张图片机器学习1——支持向量机(SVM)详细理论推导【图文版】_第6张图片

  • 对于这些非线性情况,可以看到如果直接用直线进行拟合边界,最终效果会非常差。绝大多数算法会进而画出更加复杂的线,如椭圆,甚至更加不规则的线去拟合边界。而SVM的精髓在于它选择升维处理,对样本中所有点定义映射关系,将其投射到高维空间中,并在高维空间中寻找超平面分离样本,在低维空间线性不可分的数据集在高维空间中会有更大的几率被线性分开,当映射到无限维时,将样本线性分开的概率将为 1 1 1,其实化为简单的理解,如果我们对两个事物的更多特征有了了解,我们就更容易把他们分开,样本的维数就是样本的特征数。
    机器学习1——支持向量机(SVM)详细理论推导【图文版】_第7张图片
    机器学习1——支持向量机(SVM)详细理论推导【图文版】_第8张图片
    机器学习1——支持向量机(SVM)详细理论推导【图文版】_第9张图片
    机器学习1——支持向量机(SVM)详细理论推导【图文版】_第10张图片
    机器学习1——支持向量机(SVM)详细理论推导【图文版】_第11张图片机器学习1——支持向量机(SVM)详细理论推导【图文版】_第12张图片


2、核函数来解决无限维的问题

  • 当我们将 X X X 通过 φ ( x ) \varphi\left(x\right) φ(x) 的映射关系映射到更高维度时,我们需要替换限制条件中的 X i X_i Xi φ ( X i ) \varphi\left(X_i\right) φ(Xi)

最小化 Minimize 1 2 ∥ W ∥ 2 + C ∑ i = 1 N ξ i \frac12\left\|W\right\|^2+C{\textstyle\sum_{i=1}^N}\xi_i 21W2+Ci=1Nξi ξ i \xi_i ξi为松弛变量)
限制条件 Subject to
a . y i ( W T ⋅ φ ( X i ) + b ) ≥ 1 − ξ i a.y_i\left(W^T·\varphi\left(X_i\right)+b\right)\geq1-\xi_i a.yi(WTφ(Xi)+b)1ξi     i = 1 ∼ N i=1 \sim N i=1N
b . ξ i ≥ 0 b.\xi_i\geq0 b.ξi0     i = 1 ∼ N i=1 \sim N i=1N

  • 然而正因为 φ ( X i ) \varphi\left(X_i\right) φ(Xi) 是无限维,我们将无法知道 φ ( x ) \varphi\left(x\right) φ(x) 的显式表达式。此时创始人 Vapnik 指出,我们可以不用知道 φ ( x ) \varphi\left(x\right) φ(x) 的具体形式,取而代之对于空间中的任意向量,如果我们知道 K ( X 1 , X 2 ) = φ ( X 1 ) T φ ( X 2 ) K\left(X_1,X_2\right)=\varphi\left(X_1\right)^T\varphi\left(X_2\right) K(X1,X2)=φ(X1)Tφ(X2)我们就依然能够计算出 W T ⋅ φ ( X ) + b W^T·\varphi\left(X\right)+b WTφ(X)+b 的值,进而得出 X X X 的所属类别。此时我们定义 K ( X 1 , X 2 ) K\left(X_1,X_2\right) K(X1,X2)核函数 Kernel Function
  • 核函数可以拆分成 φ ( X 1 ) T φ ( X 2 ) \varphi\left(X_1\right)^T\varphi\left(X_2\right) φ(X1)Tφ(X2) 的充要条件是Mercer’s Theorem(泛函分析):
    K ( X 1 , X 2 ) = K ( X 2 , X 1 ) K\left(X_1,X_2\right) = K\left(X_2,X_1\right) K(X1,X2)=K(X2,X1) (交换性)
    ②对于 ∀ C i , X i ( i = 1 ∼ N ) \forall C_i,X_i\left(i=1\sim N\right) Ci,Xi(i=1N),有(半正定性)
    ∑ i = 1 N ∑ j = 1 N C i C j ≥ 0 \sum_{i=1}^N\sum_{j=1}^NC_iC_j\geq0 i=1Nj=1NCiCj0
  • 已被证实常用的核函数有:

1、线性核函数 Linear: K ( x , y ) = x T y K\left(x,y\right) = x^Ty K(x,y)=xTy
用于线性可分的情况,参数少速度快,但其实使用线性核函数就是不使用核。

2、高斯径向基和函数 Radial Basis Function RBF: K ( x , y ) = e x p ( − ∣ ∣ x − y ∣ ∣ 2 2 δ 2 ) K\left(x,y\right)=exp\left(-\frac{\left|\left|x-y\right|\right|^2}{2\delta^2}\right) K(x,y)=exp(2δ2xy2)
参数少,性能较好,优先使用RBF。

3、多项式核函数 Polynomial: K ( x , y ) = ( a x T y + c ) d K\left(x,y\right) = (ax^Ty+c)^d K(x,y)=(axTy+c)d
属于有限维,性能较好,但是参数较多。

4、神经元核函数 Sigmoid: K ( x , y ) = t a n h ( a x T y + c ) K\left(x,y\right) = tanh(ax^Ty+c) K(x,y)=tanh(axTy+c)
被大量用于深度学习的激活函数。

  • 选取原则:
    ①特征数相对于样本数大很多,训练集的数据量不够支持我们训练一个复杂的非线性模型,应该选用逻辑回归模型或者不带核函数的SVM。
    ②特征数较小,在1-1000之间,样本数大小中等,在10-10000之间,使用高斯核函数的支持向量机。
    ③特征数较小,在1-1000之间,样本数较大,大于50000,使用SVM会特别慢,创造增加更多的特征,之后使用逻辑回归或者不带核的支持向量机。

3、原问题和对偶问题相关定理

  • 通过原问题和对偶问题的转化,我们能够进一步改变优化目标的形式,最终结合核函数实现问题求解。
  • 原问题 Prime Problem

最小化 Minimize f ( w ) f\left(w\right) f(w)
限制条件 Subject to: g i ( w ) ≤ 0 ( i = 1 ∼ K ) g_i\left(w\right)\leq0 (i=1\sim K) gi(w)0i=1K h i ( w ) = 0 ( i = 1 ∼ M ) h_i\left(w\right)=0 (i=1\sim M) hi(w)=0i=1M

  • 对偶问题 Dual Problem

定义一个函数: L ( w , α , β ) = f ( w ) + ∑ i = 1 K α i g i ( w ) + ∑ i = 1 M β i h i ( w ) L\left(w,\alpha,\beta\right)=f\left(w\right)+\sum_{i=1}^K\alpha_ig_i\left(w\right)+\sum_{i=1}^M\beta_ih_i\left(w\right) L(w,α,β)=f(w)+i=1Kαigi(w)+i=1Mβihi(w) L ( w , α , β ) = f ( w ) + α T g ( w ) + β T h ( w ) ( 均 为 列 向 量 ) L\left(w,\alpha,\beta\right)=f\left(w\right)+\alpha^Tg\left(w\right)+\beta^Th\left(w\right)(均为列向量) L(w,α,β)=f(w)+αTg(w)+βTh(w)
最大化 Maximize θ ( α , β ) = i n f 所 有 定 义 域 内 的 w L ( w , α , β ) \theta\left(\alpha,\beta\right)=\underset{\mathrm{所有定义域内的}w}{inf}L\left(w,\alpha,\beta\right) θ(α,β)=winfL(w,α,β)
在限定 α \alpha α β \beta β 取值的情况下,去遍历所有的 w w w ,对于所有的 w w w 求得最小值。
接着在外层对于所有的 α \alpha α β \beta β 求最大值。
限制条件 Subject to: α i ≥ 0 ( i = 1 ∼ K ) \alpha_i\geq0(i=1\sim K) αi0i=1K

原问题与对偶问题的关系:如果 w ∗ w^* w 是原问题的解, α ∗ \alpha^* α β ∗ \beta^* β 是对偶问题的解,则有 f ( w ∗ ) ≥ θ ( α ∗ , β ∗ ) f\left(w^*\right)\geq\theta\left(\alpha^*,\beta^*\right) f(w)θ(α,β)
证明: θ ( α ∗ , β ∗ ) = i n f 所 有 定 义 域 内 的 w L ( w , α ∗ , β ∗ ) ≤ L ( w ∗ , α ∗ , β ∗ ) \theta\left(\alpha^*,\beta^*\right)=\underset{\mathrm{所有定义域内的}w}{inf}L\left(w,\alpha^*,\beta^*\right)\leq L\left(w^*,\alpha^*,\beta^*\right) θ(α,β)=winfL(w,α,β)L(w,α,β)
即我们把对偶问题的解 α ∗ \alpha^* α β ∗ \beta^* β 代进去,它右边一定会 ≤ \leq 原问题的解 w ∗ w^* w 再带进去的值,因为 i n f inf inf 就是取所有 w w w 取值代入后最小的值,而原问题的解代进去要么就是那个最小值取 = = =,要么就是比它大取 > > >,接着
L ( w ∗ , α ∗ , β ∗ ) = f ( w ∗ ) + α ∗ T ⏟ ≥ 0 g ( w ∗ ) ⏟ ≤ 0 + β ∗ T h ( w ∗ ) ⏟ = 0 ≤ f ( w ∗ ) L\left(w^*,\alpha^*,\beta^*\right)=f\left(w^*\right)+\underbrace{\alpha^{\ast T}}_{\geq0}\underbrace{g\left(w^\ast\right)}_{\leq0}+\beta^{\ast T}\underbrace{h\left(w^\ast\right)}_{=0} \leq f\left(w^*\right) L(w,α,β)=f(w)+0 αT0 g(w)+βT=0 h(w)f(w)

原问题与对偶问题的间距 Duality Gap G = f ( w ∗ ) − θ ( α ∗ , β ∗ ) ≥ 0 G=f\left(w^*\right)-\theta\left(\alpha^*,\beta^*\right)\geq0 G=f(w)θ(α,β)0
G则被称作原问题与对偶问题的间距,对于某些特定的优化问题,我们可以证明: G = 0 G=0 G=0

强对偶定理:
f ( w ) f\left(w\right) f(w) 为凸函数: 凸 函 数 定 义 为 : 对 ∀ w 1 , w 2 , 凸函数定义为:对 \forall w_1,w_2, w1,w2, f ( λ w 1 + ( 1 − λ ) w 2 ) ≤ λ f ( w 1 ) + ( 1 − λ ) f ( w 2 ) ( λ ∈ [ 0 , 1 ] ) f\left(\lambda w_1+\left(1-\lambda\right)w_2\right)\leq\lambda f\left(w_1\right)+\left(1-\lambda\right)f\left(w_2\right) (\lambda\in\lbrack0,1\rbrack) f(λw1+(1λ)w2)λf(w1)+(1λ)f(w2)λ[0,1]
g ( w ) = A w + b , h ( w ) = C w + d g\left(w\right)=Aw+b,h\left(w\right)=Cw+d g(w)=Aw+bh(w)=Cw+d
则此优化问题的原问题和对偶问题间距为 0 0 0 ,即: f ( w ∗ ) = θ ( α ∗ , β ∗ ) f\left(w^*\right)=\theta\left(\alpha^*,\beta^*\right) f(w)=θ(α,β)

KKT条件:
在满足强对偶关系时,即满足 f ( w ∗ ) = θ ( α ∗ , β ∗ ) f\left(w^*\right)=\theta\left(\alpha^*,\beta^*\right) f(w)=θ(α,β) 时,结合 L ( w ∗ , α ∗ , β ∗ ) = f ( w ∗ ) + α ∗ T ⏟ ≥ 0 g ( w ∗ ) ⏟ ≤ 0 + β ∗ T h ( w ∗ ) ⏟ = 0 ≤ f ( w ∗ ) L\left(w^*,\alpha^*,\beta^*\right)=f\left(w^*\right)+\underbrace{\alpha^{\ast T}}_{\geq0}\underbrace{g\left(w^\ast\right)}_{\leq0}+\beta^{\ast T}\underbrace{h\left(w^\ast\right)}_{=0} \leq f\left(w^*\right) L(w,α,β)=f(w)+0 αT0 g(w)+βT=0 h(w)f(w)
可以得知,对于 ∀ i = 1 ∼ K \forall i=1 \sim K i=1K,要么 α i ∗ = 0 \alpha^*_i=0 αi=0 ,要么 g i ∗ = 0 g^*_i=0 gi=0


4、原问题转化为对偶问题

  • 我们需要求解的原问题:

最小化 Minimize 1 2 ∥ W ∥ 2 + C ∑ i = 1 N ξ i \frac12\left\|W\right\|^2+C{\textstyle\sum_{i=1}^N}\xi_i 21W2+Ci=1Nξi ξ i \xi_i ξi为松弛变量)
限制条件 Subject to
a . y i ( W T ⋅ φ ( X i ) + b ) ≥ 1 − ξ i a.y_i\left(W^T·\varphi\left(X_i\right)+b\right)\geq1-\xi_i a.yi(WTφ(Xi)+b)1ξi     i = 1 ∼ N i=1 \sim N i=1N
b . ξ i ≥ 0 b.\xi_i\geq0 b.ξi0     i = 1 ∼ N i=1 \sim N i=1N

  • 对照标准原问题定义:

最小化 Minimize f ( w ) f\left(w\right) f(w)
限制条件 Subject to: g i ( w ) ≤ 0 ( i = 1 ∼ K ) g_i\left(w\right)\leq0 (i=1\sim K) gi(w)0i=1K h i ( w ) = 0 ( i = 1 ∼ M ) h_i\left(w\right)=0 (i=1\sim M) hi(w)=0i=1M

  • 我们可以得到:
    f ( w ) = 1 2 ∥ W ∥ 2 + C ∑ i = 1 N ξ i f\left(w\right)=\frac12\left\|W\right\|^2+C{\textstyle\sum_{i=1}^N}\xi_i f(w)=21W2+Ci=1Nξi
    g 1 ( w ) g_1\left(w\right) g1(w) 对应 y i ( W T ⋅ φ ( X i ) + b ) ≥ 1 − ξ i y_i\left(W^T·\varphi\left(X_i\right)+b\right)\geq1-\xi_i yi(WTφ(Xi)+b)1ξi
    g 2 ( w ) g_2\left(w\right) g2(w) 对应 ξ i ≥ 0 \xi_i\geq0 ξi0

  • 我们的 f ( w ) f\left(w\right) f(w) 可以证明为凸函数,但是对比限制条件发现符号不一致,我们稍微进行修改:
    ①对所有的 ξ i \xi_i ξi 取反,使得 ξ i ≤ 0 \xi_i \leq 0 ξi0
    ②为了保证优化问题不发生改变,对 f ( w ) f\left(w\right) f(w) 也要变号: f ( w ) = 1 2 ∥ W ∥ 2 − C ∑ i = 1 N ξ i f\left(w\right)=\frac12\left\|W\right\|^2-C{\textstyle\sum_{i=1}^N}\xi_i f(w)=21W2Ci=1Nξi
    ③同时限制条件 a a a 经过变号移项后得到: 1 + ξ i − y i ( W T ⋅ φ ( X i ) + b ) ≤ 0 1+\xi_i-y_i\left(W^T·\varphi\left(X_i\right)+b\right)\leq0 1+ξiyi(WTφ(Xi)+b)0

  • 此时我们再次与原问题标准定义对比, g ( w ) g\left(w\right) g(w) 对应着两个限制条件,没有 h ( w ) h\left(w\right) h(w)
    f ( w ) = 1 2 ∥ W ∥ 2 − C ∑ i = 1 N ξ i f\left(w\right)=\frac12\left\|W\right\|^2-C{\textstyle\sum_{i=1}^N}\xi_i f(w)=21W2Ci=1Nξi
    g 1 ( w ) ≤ 0 g_1\left(w\right)\leq0 g1(w)0 对应 1 + ξ i − y i ( W T ⋅ φ ( X i ) + b ) ≤ 0 1+\xi_i-y_i\left(W^T·\varphi\left(X_i\right)+b\right)\leq0 1+ξiyi(WTφ(Xi)+b)0
    g 2 ( w ) ≤ 0 g_2\left(w\right)\leq0 g2(w)0 对应 ξ i ≤ 0 \xi_i \leq 0 ξi0

  • 将原问题代入对偶问题的表达式中展开:
    最 大 化 : θ ( α , β ) = i n f 所 有 定 义 域 内 的 w L ( w , α , β ) 最大化 :\theta\left(\alpha,\beta\right)=\underset{\mathrm{所有定义域内的}w}{inf}L\left(w,\alpha,\beta\right) θ(α,β)=winfL(w,α,β) L ( w , α , β ) = f ( w ) + ∑ i = 1 K α i g i ( w ) + ∑ i = 1 M β i h i ( w ) L\left(w,\alpha,\beta\right)=f\left(w\right)+\sum_{i=1}^K\alpha_ig_i\left(w\right)+\sum_{i=1}^M\beta_ih_i\left(w\right) L(w,α,β)=f(w)+i=1Kαigi(w)+i=1Mβihi(w) { f ( w ) = 1 2 ∥ W ∥ 2 − C ∑ i = 1 N ξ i { g 1 ( w ) = 1 + ξ i − y i ( W T ⋅ φ ( X i ) + b ) g 2 ( w ) = ξ i \left\{\begin{array}{l}{f\left(w\right)=\frac12\left\|W\right\|^2-C{\textstyle\sum_{i=1}^N}\xi_i}\\\left\{\begin{array}{l}{g_1\left(w\right)=1+\xi_i-y_i\left(W^T·\varphi\left(X_i\right)+b\right)}\\{g_2\left(w\right)=\xi_i }\end{array}\right.\end{array}\right. f(w)=21W2Ci=1Nξi{ g1(w)=1+ξiyi(WTφ(Xi)+b)g2(w)=ξi

  • 我们得到的是:
    最 大 化 : θ ( α , β ) = i n f { 1 2 ∥ W ∥ 2 − C ∑ i = 1 N ξ i + ∑ i = 1 N α i [ 1 + ξ i − y i ⋅ ( W T ⋅ φ ( x i ) + b ) ] + ∑ i = 1 N β i ξ i } 最大化:\theta\left(\alpha,\beta\right)=inf\left\{\frac12\left\|W\right\|^2-C{\textstyle\sum_{i=1}^N}\xi_i+{\textstyle\sum_{i=1}^N}\alpha_i\left[1+\xi_i-y_i\cdot\left(W^T\cdot\varphi\left(x_i\right)+b\right)\right]+{\textstyle\sum_{i=1}^N}\beta_i\xi_i\right\} θ(α,β)=inf{ 21W2Ci=1Nξi+i=1Nαi[1+ξiyi(WTφ(xi)+b)]+i=1Nβiξi} 限 制 条 件 为 : α i ≥ 0 , β i ≥ 0 ( i = 1 ∼ N ) 限制条件为:\alpha_i \geq0,\beta_i \geq0(i=1\sim N) αi0βi0i=1N
    遍历所有的 w , ξ i , b w,\xi_i,b w,ξi,b L ( w , α , β ) L\left(w,\alpha,\beta\right) L(w,α,β)中的 α \alpha α 对应这里面的 α \alpha α β \beta β,这是因为 α \alpha α L L L 中对应着不等式的部分, β \beta β L L L 中对应着等式的部分,在这个优化问题中没有出现。

  • 对原方程求偏导,偏导都为 0 0 0 的点即为极值点:
    对于向量求导: ∂ f ∂ W = [ ∂ f ∂ W i ] = [ ∂ f ∂ W 1 ⋮ ∂ f ∂ W N ] ( i = 1 ∼ N ) \frac{\partial f}{\partial W}=\left[\frac{\partial f}{\partial W_i}\right]=\begin{bmatrix}\frac{\partial f}{\partial W_1}\\\vdots\\\frac{\partial f}{\partial W_N}\end{bmatrix}(i=1\sim N) Wf=[Wif]=W1fWNfi=1N
    w , ξ i , b w,\xi_i,b w,ξi,b 三个参数求偏导: ∂ L ∂ w = 0 ⇒ w − ∑ i = 1 N α i y i φ ( X i ) ⇒ w = ∑ i = 1 N α i y i φ ( X i ) \frac{\partial L}{\partial w}=0\Rightarrow w-{\textstyle\sum_{i=1}^N}\alpha_iy_i\varphi\left(X_i\right)\Rightarrow w={\textstyle\sum_{i=1}^N}{\textstyle{\scriptstyle\alpha}_i}{\textstyle{\scriptstyle y}_i}{\textstyle\varphi}{\textstyle\left(X_i\right)} wL=0wi=1Nαiyiφ(Xi)w=i=1Nαiyiφ(Xi) ∂ L ∂ b = 0 ⇒ − ∑ i = 1 N α i y i = 0 ⇒ ∑ i = 1 N α i y i = 0 \frac{\partial L}{\partial b}=0\Rightarrow-{\textstyle\sum_{i=1}^N}{\textstyle{\scriptstyle\alpha}_i}{\textstyle{\scriptstyle y}_i}=0\Rightarrow{\textstyle\sum_{i=1}^N}{\textstyle{\scriptstyle\alpha}_i}{\textstyle{\scriptstyle y}_i}{\textstyle=}{\textstyle0} bL=0i=1Nαiyi=0i=1Nαiyi=0 ∂ L ∂ ξ i = 0 ⇒ ∑ i = 1 N C = ∑ i = 1 N α i + ∑ i = 1 N β i ⇒ C − α i − β i = 0 ( i = 1 ∼ N ) \frac{\partial L}{\partial\xi_i}=0\Rightarrow{\textstyle\sum_{i=1}^N}C={\textstyle\sum_{i=1}^N}\alpha_i+{\textstyle\sum_{i=1}^N}{\textstyle\beta_i}\Rightarrow C-\alpha_i-\beta_i=0(i=1\sim N) ξiL=0i=1NC=i=1Nαi+i=1NβiCαiβi=0i=1N

  • 将其得到的偏导为 0 0 0 的表达式代入 θ ( α , β ) \theta\left(\alpha,\beta\right) θ(α,β) 中化简得到:
    θ ( α , β ) = ∑ i = 1 N α i + 1 2 ∥ W ∥ 2 − ∑ i = 1 N α i y i W T φ ( X i ) \theta\left(\alpha,\beta\right)={\textstyle\sum_{i=1}^N}\alpha_i+\frac12\left\|W\right\|^2-{\textstyle\sum_{i=1}^N}\alpha_iy_iW^T\varphi\left(X_i\right) θ(α,β)=i=1Nαi+21W2i=1NαiyiWTφ(Xi)其中:
    1 2 ∥ W ∥ 2 = 1 2 W T W = 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j φ T ( X i ) φ ( X j ) \frac12\left\|W\right\|^2=\frac12W^TW=\frac12{\textstyle\sum_{i=1}^N}{\textstyle\sum_{j=1}^N}\alpha_i\alpha_jy_iy_j\varphi^T\left(X_i\right)\varphi\left(X_j\right) 21W2=21WTW=21i=1Nj=1NαiαjyiyjφT(Xi)φ(Xj) φ T ( X i ) φ ( X j ) \varphi^T\left(X_i\right)\varphi\left(X_j\right) φT(Xi)φ(Xj)正好是核函数 K ( X i , X j ) K\left(X_i,X_j\right) K(Xi,Xj),消掉了 φ \varphi φ
    对于另一项:
    ∑ i = 1 N α i y i W T φ ( X i ) = ∑ i = 1 N ∑ j = 1 N α i α j y i y j φ T ( X i ) φ ( X j ) {\textstyle\sum_{i=1}^N}\alpha_iy_iW^T\varphi\left(X_i\right)={\textstyle\sum_{i=1}^N}{\textstyle\sum_{j=1}^N}\alpha_i\alpha_jy_iy_j\varphi^T\left(X_i\right)\varphi\left(X_j\right) i=1NαiyiWTφ(Xi)=i=1Nj=1NαiαjyiyjφT(Xi)φ(Xj)这里恰好又一次出现核函数 K ( X i , X j ) K\left(X_i,X_j\right) K(Xi,Xj),消掉了 φ T ( X i ) φ ( X j ) \varphi^T\left(X_i\right)\varphi\left(X_j\right) φT(Xi)φ(Xj)

  • 整理后代入 θ ( α , β ) \theta\left(\alpha,\beta\right) θ(α,β) 得到:
    最 大 化 : θ ( α ) = ∑ i = 1 N α i + 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j K ( X i , X j ) 最大化:\theta\left(\alpha\right)={\textstyle\sum_{i=1}^N}\alpha_i+\frac12{\textstyle\sum_{i=1}^N}{\textstyle\sum_{j=1}^N}\alpha_i\alpha_jy_iy_jK\left(X_i,X_j\right) θ(α)=i=1Nαi+21i=1Nj=1NαiαjyiyjK(Xi,Xj) 限 制 条 件 : ① 0 ≤ α ≤ C , ② ∑ i = 1 N α i y i = 0 限制条件:①0\leq \alpha\leq C,②{\textstyle\sum_{i=1}^N}\alpha_iy_i=0 0αCi=1Nαiyi=0
    其中第一个限制条件结合了 α i ≥ 0 \alpha_i \geq0 αi0 β i ≥ 0 \beta_i \geq0 βi0 以及 C − α i − β i = 0 C-\alpha_i-\beta_i=0 Cαiβi=0,第二个限制条件就是 ∂ L ∂ b = 0 \frac{\partial L}{\partial b}=0 bL=0 的结果。

  • 将原问题整理到这个表达式之后,即可使用 S M O SMO SMO 算法求解优化后的 α \alpha α 参数,最终我们可以利用这个优化后的 α \alpha α 结合核函数对新的样本进行分类。


  • 巧妙避开求 W W W 的过程:
    若 样 本 线 性 可 分 , 则 对 于 ∀ i = 1 ∼ N 都 有 : 若样本线性可分,则对于 \forall i=1 \sim N都有: 线i=1N: a . 若 y i = + 1 , 则 W T ⋅ X + b ≥ 0 a. 若 y_i =+1,则W^T·X+b\geq0 a.yi=+1,WTX+b0 b . 若 y i = − 1 , 则 W T ⋅ X + b ≤ 0 b. 若 y_i =-1,则W^T·X+b\leq0 b.yi=1,WTX+b0
    这里将 X X X 替换成 φ ( X ) \varphi\left(X\right) φ(X),则可得到:
    W T ⋅ φ ( X ) = ∑ i = 1 N [ α i y i φ ( X i ) ] T φ ( X ) = ∑ i = 1 N α i y i K ( X i , X ) W^T\cdot\varphi\left(X\right)={\textstyle\sum_{i=1}^N}\left[\alpha_iy_i\varphi\left(X_i\right)\right]^T\varphi\left(X\right)={\textstyle\sum_{i=1}^N}\alpha_iy_iK\left(X_i,X\right) WTφ(X)=i=1N[αiyiφ(Xi)]Tφ(X)=i=1NαiyiK(Xi,X)
    此时即完成了避开对 W W W 求解也能得到答案。

  • 使用KKT条件求解 b b b

对于 ∀ i = 1 ∼ K \forall i=1 \sim K i=1K,要么 α i ∗ = 0 \alpha^*_i=0 αi=0 ,要么 g i ∗ = 0 g^*_i=0 gi=0

在这个优化问题中: θ ( α , β ) = i n f { 1 2 ∥ W ∥ 2 − C ∑ i = 1 N ξ i + ∑ i = 1 N α i [ 1 + ξ i − y i ⋅ ( W T ⋅ φ ( x i ) + b ) ] + ∑ i = 1 N β i ξ i } \theta\left(\alpha,\beta\right)=inf\left\{\frac12\left\|W\right\|^2-C{\textstyle\sum_{i=1}^N}\xi_i+{\textstyle\sum_{i=1}^N}\alpha_i\left[1+\xi_i-y_i\cdot\left(W^T\cdot\varphi\left(x_i\right)+b\right)\right]+{\textstyle\sum_{i=1}^N}\beta_i\xi_i\right\} θ(α,β)=inf{ 21W2Ci=1Nξi+i=1Nαi[1+ξiyi(WTφ(xi)+b)]+i=1Nβiξi}遍历所有的 w , ξ i , b w,\xi_i,b w,ξi,b L ( w , α , β ) L\left(w,\alpha,\beta\right) L(w,α,β)中的 α \alpha α 对应这里面的 α \alpha α β \beta β
我们可以得到:
①要么 β i = 0 \beta_i=0 βi=0 ,要么 ξ i = 0 \xi_i =0 ξi=0
②要么 α i = 0 \alpha_i=0 αi=0,要么 1 + ξ i − y i ⋅ ( W T ⋅ φ ( x i ) + b ) = 0 1+\xi_i-y_i\cdot\left(W^T\cdot\varphi\left(x_i\right)+b\right)=0 1+ξiyi(WTφ(xi)+b)=0

任取一个 0 < α i < C 0<\alpha_i0<αi<C,得到一个 β i > 0 \beta_i>0 βi>0(也可以取所有最后求 b b b 平均值,这样更准确)
此时 ξ i = 0 \xi_i =0 ξi=0 1 + ξ i − y i ⋅ ( W T ⋅ φ ( x i ) + b ) = 0 1+\xi_i-y_i\cdot\left(W^T\cdot\varphi\left(x_i\right)+b\right)=0 1+ξiyi(WTφ(xi)+b)=0
同时我们推导出来了 W T ⋅ φ ( X ) = ∑ i = 1 N [ α i y i φ ( X i ) ] T φ ( X ) = ∑ i = 1 N α i y i K ( X i , X ) W^T\cdot\varphi\left(X\right)={\textstyle\sum_{i=1}^N}\left[\alpha_iy_i\varphi\left(X_i\right)\right]^T\varphi\left(X\right)={\textstyle\sum_{i=1}^N}\alpha_iy_iK\left(X_i,X\right) WTφ(X)=i=1N[αiyiφ(Xi)]Tφ(X)=i=1NαiyiK(Xi,X)
代入其中,求解 b b b,得到 b = 1 − y i ∑ i = 1 N α i y i K ( X i , X ) y i b=\frac{1-y_i\sum_{i=1}^N\alpha_iy_iK\left(X_i,X\right)}{y_i} b=yi1yii=1NαiyiK(Xi,X)
至此,推导结束。

  • 在拿到一个新的测试样本 X X X 时,我们通过计算核函数,进而可以计算出 W W W b b b,判决标准为 { X ∈ C 1    ,    W T + b ⩾ 0 ( ∑ i = 1 N α i y i K ( X i , X ) + b ⩾ 0 ) X ∈ C 2    ,    W T + b < 0 ( ∑ i = 1 N α i y i K ( X i , X ) + b < 0 ) \left\{\begin{array}{l}X\in C_1\;,\;W^T+b\geqslant0({\textstyle\sum_{i=1}^N}\alpha^iy^iK\left(X_i,X\right)+b\geqslant0)\\X\in C_2\;,\;W^T+b<0({\textstyle\sum_{i=1}^N}\alpha^iy^iK\left(X_i,X\right)+b<0)\end{array}\right. { XC1,WT+b0i=1NαiyiK(Xi,X)+b0XC2,WT+b<0i=1NαiyiK(Xi,X)+b<0

后记

支持向量机在深度学习大热之前,乃至于现在都是一种稳健的监督学习手段,在数据集大小适中的情况下可以达到非常优秀的分类效果,其背后的原因正是这一套复杂但漂亮的数学理论支撑。本人在浙江大学胡浩基老师的课程指导下,结合各大论坛博客的贴文,最终对SVM有了非常深刻的理解,所以特意整理出详细地推导过程,意图帮助更多的人深入理解这一监督学习手段。

参考资料和博客

参考笔记:机器学习笔记:支持向量机(SVM)详细推导以及sklearn.svm.SVC的简单简介
图片来源:支持向量机通俗导论(理解SVM的三层境界)
浙江大学-研究生机器学习课程-胡浩基-https://www.bilibili.com/video/BV1dJ411B7gh
Demo MathType 在线公式编辑器-Latex

你可能感兴趣的:(#,监督学习,svm,机器学习,支持向量机,监督学习,人工智能)