• 【李航统计学习笔记】第七章:支持向量机


    7.1支持向量机

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

    如何去找到一个最优的超平面?

    找到一个超平面,这个超平面可以使得与它最近的样本点的距离必须大于其他所有超平面划分时与最近的样本点的距离。在SVM中,这叫间隔最大化。

    基本思路:如果我们的样本点,是它在高维空间到低维空间的一个投影,总会从某一个维度开始,它变得线性可分了。

    我们发现,高维中的超平面,映射到低维空间中时,可能会变成曲线或其他形式的划分形式。这也就是为什么,在svm中我们同样使用超平面来划分,但SVM可以划分非线形的数据集。它本质上仍然是线形超平面,不过是高维中的线形超平面。

    那么升维一定线性可分吗?会不会升到无穷维了仍然线性不可分?不会!首先因为,我们的数据集一定是基于真实的某种分布,分为A类的样本和B类的样本一定在本质上有区别。只要有区别,就一定可以区分开来,一定在某个高维度上线性可分。

    支持向量机

    函数间隔:
    γ i ~ = y i ( w x i + b ) \widetilde{\gamma_{i}}=y_{i}\left(w x_{i}+b\right) γi =yi(wxi+b)
    几何间隔:
    γ i = y i ( w ∥ w ∥ x i + b ∥ w ∥ ) = γ i ~ ∥ w ∥ \gamma_{i}=y_{i}\left(\frac{w}{\|w\|} x_{i}+\frac{b}{\|w\|}\right)=\frac{\widetilde{\gamma_{i}}}{\|w\|} γi=yi(wwxi+wb)=wγi
    最大间隔分离超平面:
    $$
    \max _{w, b} \gamma\

    \text { s.t. } \quad y_{i}\left(\frac{w}{|w|} \cdot x_{i}+\frac{b}{|w|}\right) \geqslant \gamma, \quad i=1,2, \cdots, N
    $$

    max ⁡ w , b γ ^ ∥ w ∥ s.t. y i ( w ⋅ x i + b ) ⩾ γ ^ , i = 1 , 2 , ⋯   , N \max _{w, b} \frac{\hat{\gamma}}{\|w\|}\\ \text{s.t.}\quad y_{i}\left(w \cdot x_{i}+b\right) \geqslant \hat{\gamma}, \quad i=1,2, \cdots, N w,bmaxwγ^s.t.yi(wxi+b)γ^,i=1,2,,N

    由于函数间隔可以任意缩放,我们令其为1:
    max ⁡ w , b 1 ∥ w ∥  s.t.  y i ( w ⋅ x i + b ) ⩾ 1 , i = 1 , 2 , ⋯   , N \max _{w, b} \frac{1}{\|w\|}\\ \text { s.t. } \quad y_{i}\left(w \cdot x_{i}+b\right) \geqslant 1, \quad i=1,2, \cdots, N w,bmaxw1 s.t. yi(wxi+b)1,i=1,2,,N
    因为最大化 1 ∥ w ∥ \dfrac{1}{\|w\|} w1等价于最小化 1 2 ∥ w ∥ 2 \frac{1}{2}\|w\|^{2} 21w2,式子可以改写为
    min ⁡ w , b 1 2 ∥ w ∥ 2  s.t.  y i ( w ⋅ x i + b ) − 1 ⩾ 0 , i = 1 , 2 , ⋯   , N \min _{w, b} \frac{1}{2}\|w\|^{2}\\ \text { s.t. } \quad y_{i}\left(w \cdot x_{i}+b\right)-1 \geqslant 0, \quad i=1,2, \cdots, N w,bmin21w2 s.t. yi(wxi+b)10,i=1,2,,N
    导入拉格朗日
    min ⁡ w , b 1 2 ∥ w ∥ 2  s.t.  y i ( w ⋅ x i + b ) − 1 ⩾ 0 , i = 1 , 2 , ⋯   , N L ( w , b , α ) = 1 2 ∥ w ∥ 2 − ∑ i = 1 N α i y i ( w ⋅ x i + b ) + ∑ i = 1 N α i \min _{w, b} \frac{1}{2}\|w\|^{2}\\ \text { s.t. } \quad y_{i}\left(w \cdot x_{i}+b\right)-1 \geqslant 0, \quad i=1,2, \cdots, N\\ L(w, b, \alpha)=\frac{1}{2}\|w\|^{2}-\sum_{i=1}^{N} \alpha_{i} y_{i}\left(w \cdot x_{i}+b\right)+\sum_{i=1}^{N} \alpha_{i} w,bmin21w2 s.t. yi(wxi+b)10,i=1,2,,NL(w,b,α)=21w2i=1Nαiyi(wxi+b)+i=1Nαi
    目标从:
    min ⁡ w , b max ⁡ α L ( w , b , α ) \min _{w, b} \max _{\alpha} L(w, b, \alpha) w,bminαmaxL(w,b,α)
    转化为
    max ⁡ α min ⁡ w , b L ( w , b , α ) \max _{\alpha} \min _{w, b} L(w, b, \alpha) αmaxw,bminL(w,b,α)

    先求 min ⁡ w , b L ( w , b , a ) \min _{w, b} L(w, b, a) minw,bL(w,b,a)

    将拉格朗日函数 L ( w , b , α ) L(w, b, \alpha) L(w,b,α)分别对 w , b w, b w,b求偏导数并令其等于0.
    ∇ w L ( w , b , α ) = w − ∑ i = 1 N α i y i x i = 0 ∇ b L ( w , b , α ) = ∑ i = 1 N α i y i = 0

    wL(w,b,α)=wi=1Nαiyixi=0bL(w,b,α)=i=1Nαiyi=0" role="presentation" style="position: relative;">wL(w,b,α)=wi=1Nαiyixi=0bL(w,b,α)=i=1Nαiyi=0
    wL(w,b,α)=wi=1Nαiyixi=0bL(w,b,α)=i=1Nαiyi=0

    w = ∑ i = 1 N α i y i x i ∑ i = 1 N α i y i = 0
    w=i=1Nαiyixii=1Nαiyi=0" role="presentation" style="position: relative;">w=i=1Nαiyixii=1Nαiyi=0
    w=i=1Nαiyixii=1Nαiyi=0

    w w w代入拉格朗日函数并利用 ∑ i = 1 N α i y i = 0 \sum_{i=1}^{N} \alpha_{i} y_{i}=0 i=1Nαiyi=0, 得到
    L ( w , b , α ) = 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j ( x i ⋅ x j ) − ∑ i = 1 N α i y i ( ( ∑ j = 1 N α j y j x j ) ⋅ x i + b ) + ∑ i = 1 N α i = − 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j ( x i ⋅ x j ) + ∑ i = 1 N α i
    L(w,b,α)=12i=1Nj=1Nαiαjyiyj(xixj)i=1Nαiyi((j=1Nαjyjxj)xi+b)+i=1Nαi=12i=1Nj=1Nαiαjyiyj(xixj)+i=1Nαi" role="presentation" style="position: relative;">L(w,b,α)=12i=1Nj=1Nαiαjyiyj(xixj)i=1Nαiyi((j=1Nαjyjxj)xi+b)+i=1Nαi=12i=1Nj=1Nαiαjyiyj(xixj)+i=1Nαi
    L(w,b,α)=21i=1Nj=1Nαiαjyiyj(xixj)i=1Nαiyi((j=1Nαjyjxj)xi+b)+i=1Nαi=21i=1Nj=1Nαiαjyiyj(xixj)+i=1Nαi


    min ⁡ w , b L ( w , b , α ) = − 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j ( x i ⋅ x j ) + ∑ i = 1 N α i \min _{w, b} L(w, b, \alpha)=-\frac{1}{2} \sum_{i=1}^{N} \sum_{j=1}^{N} \alpha_{i} \alpha_{j} y_{i} y_{j}\left(x_{i} \cdot x_{j}\right)+\sum_{i=1}^{N} \alpha_{i} w,bminL(w,b,α)=21i=1Nj=1Nαiαjyiyj(xixj)+i=1Nαi

    再求 max ⁡ α L ( w , b , α ) \max _{\alpha} L(w, b, \alpha) maxαL(w,b,α)

    min ⁡ w , b L ( w , b , α ) \min _{w, b} L(w, b, \alpha) minw,bL(w,b,α) α \alpha α的极大,即是对偶问题
    max ⁡ α − 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j ( x i ⋅ x j ) + ∑ i = 1 N α i s.t. ∑ i = 1 N α i y i = 0 α i ⩾ 0 , i = 1 , 2 , ⋯   , N \max _{\alpha}-\frac{1}{2} \sum_{i=1}^{N} \sum_{j=1}^{N} \alpha_{i} \alpha_{j} y_{i} y_{j}\left(x_{i} \cdot x_{j}\right)+\sum_{i=1}^{N} \alpha_{i}\\ \text{s.t.} \quad \sum_{i=1}^{N} \alpha_{i} y_{i}=0\\ \alpha_{i} \geqslant 0, \quad i=1,2, \cdots, N αmax21i=1Nj=1Nαiαjyiyj(xixj)+i=1Nαis.t.i=1Nαiyi=0αi0,i=1,2,,N
    然后将max转化为min
    min ⁡ α 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j ( x i ⋅ x j ) − ∑ i = 1 N α i s.t. ∑ i = 1 N α i y i = 0 α i ⩾ 0 , i = 1 , 2 , ⋯   , N \min _{\alpha} \frac{1}{2} \sum_{i=1}^{N} \sum_{j=1}^{N} \alpha_{i} \alpha_{j} y_{i} y_{j}\left(x_{i} \cdot x_{j}\right)-\sum_{i=1}^{N} \alpha_{i}\\ \text{s.t.} \quad \sum_{i=1}^{N} \alpha_{i} y_{i}=0\\ \alpha_{i} \geqslant 0, \quad i=1,2, \cdots, N αmin21i=1Nj=1Nαiαjyiyj(xixj)i=1Nαis.t.i=1Nαiyi=0αi0,i=1,2,,N

    接下来求解 α \alpha α

    软间隔最大化(maximum soft interval)

    引入松弛变量
    y i ( w ⋅ x i + b ) ⩾ 1 − ξ i y_{i}\left(w \cdot x_{i}+b\right) \geqslant 1-\xi_{i} yi(wxi+b)1ξi
    约束和目标也要修改
    min ⁡ w , b , ξ 1 2 ∥ w ∥ 2 + C ∑ i = 1 N ξ i  s.t.  y i ( w ⋅ x i + b ) ⩾ 1 − ξ i , i = 1 , 2 , ⋯   , N ξ i ⩾ 0 , i = 1 , 2 , ⋯   , N \min _{w, b, \xi} \frac{1}{2}\|w\|^{2}+C \sum_{i=1}^{N} \xi_{i}\\ \text { s.t. } \quad y_{i}\left(w \cdot x_{i}+b\right) \geqslant 1-\xi_{i}, \quad i=1,2, \cdots, N\\ \xi_{i} \geqslant 0, \quad i=1,2, \cdots, N w,b,ξmin21w2+Ci=1Nξi s.t. yi(wxi+b)1ξi,i=1,2,,Nξi0,i=1,2,,N
    最终结果为
    min ⁡ α 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j ( x i ⋅ x j ) − ∑ i = 1 N α i  s.t.  ∑ i = 1 N α i y i = 0 0 ⩽ α i ⩽ C , i = 1 , 2 , ⋯   , N \min _{\alpha} \frac{1}{2} \sum_{i=1}^{N} \sum_{j=1}^{N} \alpha_{i} \alpha_{j} y_{i} y_{j}\left(x_{i} \cdot x_{j}\right)-\sum_{i=1}^{N} \alpha_{i}\\ \text { s.t. } \quad \sum_{i=1}^{N} \alpha_{i} y_{i}=0\\ 0 \leqslant \alpha_{i} \leqslant C, \quad i=1,2, \cdots, N αmin21i=1Nj=1Nαiαjyiyj(xixj)i=1Nαi s.t. i=1Nαiyi=00αiC,i=1,2,,N
    和上一个section不使用软间隔的情况一样一样,我们这里也面临求解 α \alpha α的问题。

    核函数

    目前的问题:式子中间有 x i x_{i} xi x j x_{j} xj 的点积,这个让人难受。例如在手写数字数据集Mnist中,训练集有6万个样本,6万乘6万勉强能接受。但每个样本时784维的,6万个样本两两做点积,是非常慢的。如果x是更高维度的呢?

    1. 由于公式的需要,我们需要计算 x i x_{i} xi x j x_{j} xj 的点积。
    2. 此外,我们需要将样本映射到高维去,加入映射函数为 ϕ ( x ) \phi(x) ϕ(x) , 那么 ϕ ( x i ) \phi\left(x_{i}\right) ϕ(xi) ϕ ( x j ) \phi\left(x_{j}\right) ϕ(xj) 的维度数目进一步扩大,它们的点积会让运算变得及其复杂。 (因为维度太高了)
    3. 我们希望存在一个函数 K ( x i , x j ) = ϕ ( x i ) ⋅ ϕ ( x j ) K\left(x_{i}, x_{j}\right)=\phi\left(x_{i}\right) \cdot \phi\left(x_{j}\right) K(xi,xj)=ϕ(xi)ϕ(xj) ,但函数 K K K 的计算方式更简单。也就是说,我将样本通过函数升维得到 ϕ ( x i ) \phi\left(x_{i}\right) ϕ(xi) ϕ ( x j ) \phi\left(x_{j}\right) ϕ(xj) ,接下来要计算它们的点积,能不能有个很简单的计算公式,计算出来的结果和 ϕ ( x i ) \phi\left(x_{i}\right) ϕ(xi). ϕ ( x j ) \phi\left(x_{j}\right) ϕ(xj) 一样? 那样我就不用再去算 ϕ ( x i ) ⋅ ϕ ( x j ) \phi\left(x_{i}\right) \cdot \phi\left(x_{j}\right) ϕ(xi)ϕ(xj) 的结果了,直接用简单方式计算不是更好吗?

    这个简便方式,就是核函数

    在SVM中,我们通常使用高斯核
    K ( x , z ) = exp ⁡ ( − ∥ x − z ∥ 2 2 σ 2 ) K(x, z)=\exp \left(-\frac{\|x-z\|^{2}}{2 \sigma^{2}}\right) K(x,z)=exp(2σ2xz2)
    在计算 x x x z z z的点积时,直接用这个公式替代就行了。

    所以我们有
    min ⁡ α 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j K ( x i , x j ) − ∑ i = 1 N α i s.t. ∑ i = 1 N α i y i = 0 0 ⩽ α i ⩽ C , i = 1 , 2 , ⋯   , N \min _{\alpha} \frac{1}{2} \sum_{i=1}^{N} \sum_{j=1}^{N} \alpha_{i} \alpha_{j} y_{i} y_{j} K\left(x_{i}, x_{j}\right)-\sum_{i=1}^{N} \alpha_{i}\\ \text{s.t.} \quad \sum_{i=1}^{N} \alpha_{i} y_{i}=0\\ 0 \leqslant \alpha_{i} \leqslant C, \quad i=1,2, \cdots, N αmin21i=1Nj=1NαiαjyiyjK(xi,xj)i=1Nαis.t.i=1Nαiyi=00αiC,i=1,2,,N

    序列最小最优化算法

    现在我们只剩下 α \alpha α需要求解。而且我们求解出来的 α \alpha α一定要让整个结果满足KKT条件。如果不满足,那一定不是最优解。所以我们可以每次不断调整 α \alpha α的值,直到所有 α \alpha α都满足KKT条件,这时候我们一定得到了最优解。如何调整呢?可以用序列最小最优化算法,也就是SMO。

    假设整个式子有N个 α = ( α 1 , α 2 , α 3 , ⋯   , α N ) \alpha = (\alpha_1, \alpha_2, \alpha_3, \cdots, \alpha_N) α=(α1,α2,α3,,αN),先固定了其他 α i \alpha_i αi,找 α 1 \alpha_1 α1。先让 α 1 \alpha_1 α1满足KKT条件。但是如果固定除 α 1 \alpha_1 α1以外的所有 α i \alpha_i αi,等于也固定了 α 1 \alpha_1 α1
    α 1 = − y 1 ∑ i = 2 N α i y i \alpha_{1}=-y_{1} \sum_{i=2}^{N} \alpha_{i} y_{i} α1=y1i=2Nαiyi
    所以我们每次选择优化两个 α i \alpha_i αi
    α 1 y 1 + α 2 y 2 = − ∑ i = 3 N y i α i \alpha_{1} y_{1}+\alpha_{2} y_{2}=-\sum_{i=3}^{N} y_{i} \alpha_{i} α1y1+α2y2=i=3Nyiαi
    进一步,因为原式中目前只有 α 1 \alpha_1 α1 α 2 \alpha_2 α2两个变量,我们将其他作为常数去除。
    min ⁡ α 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j K ( x i , x j ) − ∑ i = 1 N α i  s.t.  ∑ i = 1 N α i y i = 0 0 ⩽ α i ⩽ C , i = 1 , 2 , ⋯   , N \min _{\alpha} \frac{1}{2} \sum_{i=1}^{N} \sum_{j=1}^{N} \alpha_{i} \alpha_{j} y_{i} y_{j} K\left(x_{i}, x_{j}\right)-\sum_{i=1}^{N} \alpha_{i}\\ \text { s.t. } \quad \sum_{i=1}^{N} \alpha_{i} y_{i}=0\\ 0 \leqslant \alpha_{i} \leqslant C, \quad i=1,2, \cdots, N αmin21i=1Nj=1NαiαjyiyjK(xi,xj)i=1Nαi s.t. i=1Nαiyi=00αiC,i=1,2,,N

    整理一下
    min ⁡ α 1 , α 2 W ( α 1 , α 2 ) = 1 2 K 11 α 1 2 + 1 2 K 22 α 2 2 + y 1 y 2 K 12 α 1 α 2 − ( α 1 + α 2 ) + y 1 α 1 ∑ i = 3 N y i α i K i 1 + y 2 α 2 ∑ i = 3 N y i α i K i 2  s.t.  α 1 y 1 + α 2 y 2 = − ∑ i = 3 N y i α i = ζ 0 ⩽ α i ⩽ C , i = 1 , 2

    minα1,α2W(α1,α2)=12K11α12+12K22α22+y1y2K12α1α2(α1+α2)+y1α1i=3NyiαiKi1+y2α2i=3NyiαiKi2 s.t. α1y1+α2y2=i=3Nyiαi=ζ0αiC,i=1,2" role="presentation" style="position: relative;">minα1,α2W(α1,α2)=12K11α12+12K22α22+y1y2K12α1α2(α1+α2)+y1α1i=3NyiαiKi1+y2α2i=3NyiαiKi2 s.t. α1y1+α2y2=i=3Nyiαi=ζ0αiC,i=1,2
    α1,α2minW(α1,α2)=21K11α12+21K22α22+y1y2K12α1α2(α1+α2)+y1α1i=3NyiαiKi1+y2α2i=3NyiαiKi2 s.t. α1y1+α2y2=i=3Nyiαi=ζ0αiC,i=1,2
    目前可知, α i \alpha_i αi一定在0到C之间。我们已知:
    ∑ α i y i = 0 \sum \alpha_{i} y_{i}=0 αiyi=0

    α 1 y 1 + α 1 y 2 = − ∑ i = 3 m α i y i = ζ \alpha_{1} y_{1}+\alpha_{1} y_{2}=-\sum_{i=3}^{m} \alpha_{i} y_{i}= \zeta α1y1+α1y2=i=3mαiyi=ζ
    (to be continued)

    总结

    1. SVM让人头秀。
    2. SVM首先从最大间隔出发,设计了可构造最优超平面的线形模型。
    3. 考虑到存在噪音或有部分点让人很为难,添加了软间隔。 变成了具有软间隔功能的线形模型。
    4. 通过对数据的升维,使得模型变成了非线形。可以用于非线形数据集。
    5. 升维后无穷维的点积运算难以实现,引入了核函数简化运算。

    7.2 间隔分离最大化的存在唯一性

    证明存在性

    由于训练数据集线性可分,所以算法一定存在可行解。又由于目标函数又下界, 所以最优化问题必有解。吕于训练数据中既有正类点又有负类点,所以 ( w , b ) = ( 0 , b ) (w, b)=(0, b) (w,b)=(0,b) 不是最优化的可行解,因此最优解必定满足w不等于 0 ,由此可知分离超平面的存在性。

    证明唯一性

    (To be continued)

  • 相关阅读:
    matlab中的mapminmax函数初步理解和应用
    6.qml中js的object,array数据更新不通知页面刷新问题解析
    Selenium3.0基础 — 自动化测试概述
    【C++ STL】string类-----迭代器(什么是迭代器?迭代器分哪几类?迭代器的接口如何使用?)
    大数据、小数据、都要从养数据开始
    三维模型3DTile格式轻量化压缩处理的数据质量提升方法分析
    Java 8中的map和flatMap方法的区别
    pytorch环境搭建(GPU)+Anaconda+CUDA+离线安装
    基于 Vue 和 SpringBoot 的医院门诊预约挂号系统源代码+数据库
    最大公约数的四种方法
  • 原文地址:https://blog.csdn.net/weixin_39236489/article/details/126289137