令人头秃的支持向量机SVM(一)SVM分类

令人头秃的支持向量机SVM(一)SVM分类

任务

  • 有一天老师分配给我们一项任务:给定训练样本集,样本集包含不同类别,可能是二分类,可能是多分类,这里我们以二分类为例,训练集如下:
    ( x 1 , y 1 ) , ( x 2 , y 2 ) , … ( x n , y n ) (x_1,y_1),(x_2,y_2),\ldots(x_n,y_n) (x1​,y1​),(x2​,y2​),…(xn​,yn​)
    这里 x 1 , … , x n x_1,\ldots ,x_n x1​,…,xn​为向量, y 1 , … , y n y_1,\ldots ,y_n y1​,…,yn​为标签
    令人头秃的支持向量机SVM(一)SVM分类
    上图是40个样本经过SVM分类的结果。
  • 从图中我们看到这样几个关键信息:两条虚线一条实线蓝色点棕色点虚线上的点

概念

对于线性可分训练集来说,我们想将样本分成两类,在平面坐标系上是找一条直线将样本分开,但我们样本向量 x n x_n xn​的维度即特征数目可能有很多个,这时我们需要找到一个超平面(图中的实线)将样本分开,

1.超平面

超平面的表达式为:
w T x + b = 0 w^Tx+b=0 wTx+b=0
w \bf{w} w为向量, x \bf{x} x也为向量, w T x w^Tx wTx为一个数,b也为数。

仅仅只是为了将样本分开肯定是不行的,我们应该找到泛化能力最强的超平面,即对训练样本的局部扰动的容忍性最好,所以我们得使用评估指标来去定量分析模型好坏。

2.距离

  • 首先,先回顾下点到平面的距离:
    平面: w 1 x + w 2 y + b = 0 w_1x+w_2y+b=0 w1​x+w2​y+b=0,则( x 0 , y 0 x_0,y_0 x0​,y0​)到平面的距离:
    d = ∣ w 1 x + w 2 y + b ∣ w 1 2 + w 2 2 d=\frac{\lvert w_1x+w_2y+b\rvert}{\sqrt{w_1^2+w_2^2}} d=w12​+w22​ ​∣w1​x+w2​y+b∣​

训练样本上任意一个点到超平面的距离我们都能够计算出来:

  • 点 x 0 x_0 x0​到超平面距离(几何间隔):
    d = ∣ w T x 0 + b ∣ w 1 2 + w 2 2 + … + x n 2 = ∣ w T x 0 + b ∣ ∥ w ∥ d=\frac{\lvert w^Tx_0+b\rvert}{\sqrt{w_1^2+w_2^2+\ldots+x_n^2}}=\frac{\lvert w^Tx_0+b\rvert}{\lVert w\lVert} d=w12​+w22​+…+xn2​ ​∣wTx0​+b∣​=∥w∥∣wTx0​+b∣​

距离(几何间隔)有大有小,几何间隔肯定是有一个最大值,怎么让几何间隔最大化呢?

3.支持向量

我们将图中的实线像两边“平移”得到两条虚线,当虚线碰到样本点时,该点就为支持向量,从图中我们可以看到有一个蓝色的支持向量和两个棕色的支持向量。
两个异类支持向量到超平面的距离之和:
r = 2 ∥ w ∥ r=\frac{2}{\lVert w\lVert} r=∥w∥2​

  • 最大化间隔 r r r是我们的优化目标

4.优化目标

  • 将最大化 r r r变为最小化 ∥ w ∥ \lVert w\lVert ∥w∥,

  • 满足最大化间隔的前提是要满足将样本分类的要求,即对 w w w和 b b b要有约束,

  • 具体优化目标和限制条件如下:

m i n w , b    1 2 ∥ w ∥ 2 min_w,_b \ \ \frac{1}{2}{\lVert w\lVert}^2 minw​,b​  21​∥w∥2 s . t .   y i ( w T x i + b ) ≥ 1 (公式1) s.t. \ y_i(w^Tx_i+b)\geq 1\tag{公式1} s.t. yi​(wTxi​+b)≥1(公式1)

解得w,b

对于公式1我们想要去求得约束条件w和b的值,由于目标函数 1 2 ∥ w ∥ 2 \frac{1}{2}{\lVert w\lVert}^2 21​∥w∥2是涉及到二次项,而限制条件是一次项,这是一个二次规划问题。我们可以使用更高效,更聪明的方法,就是对于公式1使用拉格朗日乘子法将其变成对偶问题。
关于原始问题和对偶问题的数学关系其实理解比较复杂,包括一些疑问:
原始问题和对偶问题的关系
原始问题的解是否一定等于对偶问题的解?
关于这部分不懂的可以看看:
视频课浙江大学胡浩基(机器学习-原问题与对偶问题)
李航-统计学习方法-附录C

对偶问题

首先建立拉格朗日函数,引入拉格朗日乘子 α i ≥ 0 , i = 1 , 2 , … , N , \alpha_i\geq 0,i=1,2,\ldots,N, αi​≥0,i=1,2,…,N,,定义拉格朗日函数:
L ( w , b , α ) = 1 2 ∥ w ∥ 2 + ∑ i = 1 N α i ( 1 − y i ( w T x i + b ) (公式2) L(w,b,\alpha)=\frac{1}{2}{\lVert w\lVert}^2+\sum_{i=1}^N\alpha_i(1-y_i(w^Tx_i+b)\tag{公式2} L(w,b,α)=21​∥w∥2+i=1∑N​αi​(1−yi​(wTxi​+b)(公式2)
**原始问题的对偶问题是极大极小问题:,即先求 L ( w , b , α ) L(w,b,\alpha) L(w,b,α)对 w , b w,b w,b的极小,再求对 α \alpha α的极大值: m a x α m i n w , b L ( w , b , α ) max_\alpha min_w,_bL(w,b,\alpha) maxα​minw​,b​L(w,b,α)

  1. 求 m i n w , b L ( w , b , α ) min_w,_bL(w,b,\alpha) minw​,b​L(w,b,α)
    令 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 \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 ∇ b   L ( w , b , α ) = − ∑ i = 1 N α i y i = 0 (公式3) \nabla_b\ L(w,b,\alpha)=-\sum_{i=1}^N\alpha_iy_i=0\tag{公式3} ∇b​ L(w,b,α)=−i=1∑N​αi​yi​=0(公式3)
    得:
    w = ∑ i = 1 N α i y i x i w=\sum_{i=1}^N\alpha_iy_ix_i w=i=1∑N​αi​yi​xi​ ∑ i = 1 N α i y i = 0 (公式4) \sum_{i=1}^N\alpha_iy_i=0\tag{公式4} i=1∑N​αi​yi​=0(公式4)
    将公式4代入拉格朗日函数(公式2)中,即得:
    L ( w , b , α ) = ∑ i = 1 N α i − 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i u j x i T x j (公式5) L(w,b,\alpha)=\sum_{i=1}^N\alpha_i-\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iu_jx_i^Tx_j\tag{公式5} L(w,b,α)=i=1∑N​αi​−21​i=1∑N​j=1∑N​αi​αj​yi​uj​xiT​xj​(公式5)
    公式5表示将 w , b w,b w,b代入公式消掉后得到 L ( w , b , α ) L(w,b,\alpha) L(w,b,α)与 α \alpha α的关系式,即转化为:
    m i n w , b L ( w , b , α ) = ∑ i = 1 N α i − 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i u j x i T x j (公式6) min_w,_bL(w,b,\alpha)=\sum_{i=1}^N\alpha_i-\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iu_jx_i^Tx_j\tag{公式6} minw​,b​L(w,b,α)=i=1∑N​αi​−21​i=1∑N​j=1∑N​αi​αj​yi​uj​xiT​xj​(公式6)
    注:我们直接解 w , b w,b w,b是不好解的,必须通过先解出 α \alpha α再得到 w , b w,b w,b。
  2. 再求 m i n w , b L ( w , b , α ) min_w,_bL(w,b,\alpha) minw​,b​L(w,b,α)对 α \alpha α的极大:
    m a x α L ( w , b , α ) = ∑ i = 1 N α i − 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i u j x i T x j max_\alpha L(w,b,\alpha)=\sum_{i=1}^N\alpha_i-\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iu_jx_i^Tx_j maxα​L(w,b,α)=i=1∑N​αi​−21​i=1∑N​j=1∑N​αi​αj​yi​uj​xiT​xj​ s . t . ∑ i = 1 N α i y i = 0 s.t.\sum_{i=1}^N\alpha_iy_i=0 s.t.i=1∑N​αi​yi​=0 α i ≥ 0 , i = 1 , 2 , … , N (公式7) \alpha_i\geq 0,i=1,2,\ldots,N\tag{公式7} αi​≥0,i=1,2,…,N(公式7)
    下面仔细看!!!最妙的部分来了!!!
    对公式7中的目标函数乘个负号,将 m a x α L ( w , b , α ) = ∑ i = 1 N α i − 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i u j x i T x j max_\alpha L(w,b,\alpha)=\sum_{i=1}^N\alpha_i-\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iu_jx_i^Tx_j maxα​L(w,b,α)=i=1∑N​αi​−21​i=1∑N​j=1∑N​αi​αj​yi​uj​xiT​xj​
    变为:
    m i n α L ( w , b , α ) = 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i u j x i T x j − ∑ i = 1 N α i min_\alpha L(w,b,\alpha)=\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iu_jx_i^Tx_j-\sum_{i=1}^N\alpha_i minα​L(w,b,α)=21​i=1∑N​j=1∑N​αi​αj​yi​uj​xiT​xj​−i=1∑N​αi​
    这样问题就变为:
    m i n α 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i u j x i T x j − ∑ i = 1 N α i min_\alpha\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iu_jx_i^Tx_j-\sum_{i=1}^N\alpha_i minα​21​i=1∑N​j=1∑N​αi​αj​yi​uj​xiT​xj​−i=1∑N​αi​ s . t . ∑ i = 1 N α i y i = 0 s.t.\sum_{i=1}^N\alpha_iy_i=0 s.t.i=1∑N​αi​yi​=0 α i ≥ 0 , i = 1 , 2 , … , N (公式8) \alpha_i\geq 0,i=1,2,\ldots,N\tag{公式8} αi​≥0,i=1,2,…,N(公式8)
    将公式8与公式1对比会发现,我们将求解原始问题转化为对偶问题,完美的将求解 w , b w,b w,b的问题转变为先求解 α \alpha α再根据 w , b w,b w,b α \alpha α的关系求解 w , b w,b w,b。当时看到这里真的豁然开朗,不知道你有没有类似的感觉。
  3. 例:训练数据有三个点:正例点 x 1 = ( 3 , 3 ) T , x 2 = ( 4 , 3 ) T , x_1=(3,3)^T,x_2=(4,3)^T, x1​=(3,3)T,x2​=(4,3)T,负例点是 x 3 = ( 1 , 1 ) T x_3=(1,1)^T x3​=(1,1)T,求线性可分支持向量机。
    根据所给数据,对偶问题是:
    m i n α 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i u j x i T x j − ∑ i = 1 N α i min_\alpha\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iu_jx_i^Tx_j-\sum_{i=1}^N\alpha_i minα​21​i=1∑N​j=1∑N​αi​αj​yi​uj​xiT​xj​−i=1∑N​αi​ = 1 2 ( α 1 ∗ α 1 ∗ 1 ∗ 1 ∗ 18 + α 2 ∗ α 2 ∗ 1 ∗ 1 ∗ 25 + α 3 ∗ α 3 ∗ ( − 1 ) ∗ ( − 1 ) ∗ 2 =\frac{1}{2}(\alpha_1* \alpha_1*1*1*18+\alpha_2* \alpha_2*1*1*25+\alpha_3* \alpha_3*(-1)*(-1)*2 =21​(α1​∗α1​∗1∗1∗18+α2​∗α2​∗1∗1∗25+α3​∗α3​∗(−1)∗(−1)∗2 + α 1 ∗ α 2 ∗ 1 ∗ 1 ∗ 21 ∗ 2 + α 1 ∗ α 3 ∗ 1 ∗ ( − 1 ) ∗ 6 ∗ 2 + α 2 ∗ α 3 ∗ 1 ∗ ( − 1 ) ∗ 7 ∗ 2 ) +\alpha_1* \alpha_2*1*1*21*2+\alpha_1* \alpha_3*1*(-1)*6*2+\alpha_2* \alpha_3*1*(-1)*7*2) +α1​∗α2​∗1∗1∗21∗2+α1​∗α3​∗1∗(−1)∗6∗2+α2​∗α3​∗1∗(−1)∗7∗2) − ( α 1 + α 2 + α 3 ) -(\alpha_1+\alpha_2+\alpha_3) −(α1​+α2​+α3​) = 1 2 ( 18 α 1 2 + 25 α 2 2 + 2 α 3 2 + 42 α 1 α 2 − 12 α 1 α 2 − 14 α 2 α 3 ) − ( α 1 + α 2 + α 3 ) =\frac{1}{2}(18\alpha_1^2+25\alpha_2^2+2\alpha_3^2+42\alpha_1\alpha_2-12\alpha_1\alpha_2-14\alpha_2\alpha_3)-(\alpha_1+\alpha_2+\alpha_3) =21​(18α12​+25α22​+2α32​+42α1​α2​−12α1​α2​−14α2​α3​)−(α1​+α2​+α3​) s t .   α 1 + α 2 − α 3 = 0 st.\ \alpha_1+\alpha_2-\alpha_3=0 st. α1​+α2​−α3​=0 α i ≥ 0 , i = 1 , 2 , 3 \alpha_i\geq 0,i=1,2,3 αi​≥0,i=1,2,3
    从现在这个目标函数和限制条件我们可以看出目标函数是关于未知量 α \alpha α的表达式,限制条件也是关于 α \alpha α的表达式。
    所以要解决这个最优化问题,将 α 3 = α 1 + α 2 \alpha_3=\alpha_1+\alpha_2 α3​=α1​+α2​代入目标函数得到:
    s ( α 1 , α 2 ) = 4 α 1 2 + 13 2 α 2 2 + 10 α 1 α 2 − 2 α 1 − 2 α 2 s(\alpha_1,\alpha_2)=4\alpha_1^2+\frac{13}{2}\alpha_2^2+10\alpha_1\alpha_2-2\alpha_1-2\alpha_2 s(α1​,α2​)=4α12​+213​α22​+10α1​α2​−2α1​−2α2​
    有两个未知量 α 1 \alpha_1 α1​, α 2 \alpha_2 α2​,分别对其求偏导数令导数为0,得到极值点 ( 3 2 , − 1 ) (\frac{3}{2},-1) (23​,−1),但我们要求 α i ≥ 0 \alpha_i\geq 0 αi​≥0,所以最小值应该在边界上取到。
    当 α 1 = 0 \alpha_1=0 α1​=0时, s ( α 1 , α 2 ) = 13 2 α 2 2 − 2 α 2 s(\alpha_1,\alpha_2)=\frac{13}{2}\alpha_2^2-2\alpha_2 s(α1​,α2​)=213​α22​−2α2​,最小值为 s ( 0 , 2 13 ) = − 2 13 s(0,\frac{2}{13})=-\frac{2}{13} s(0,132​)=−132​
    当 α 2 = 0 \alpha_2=0 α2​=0时, s ( α 1 , α 2 ) = 4 α 1 2 − 2 α 1 s(\alpha_1,\alpha_2)=4\alpha_1^2-2\alpha_1 s(α1​,α2​)=4α12​−2α1​,最小值 s ( 1 4 , 0 ) = − 1 4 s(\frac{1}{4},0)=-\frac{1}{4} s(41​,0)=−41​
    综上所述 α 1 = 1 4 , α 2 = 0 \alpha_1=\frac{1}{4},\alpha_2=0 α1​=41​,α2​=0达到最小,此时 α 3 = α 1 + α 2 = 1 4 \alpha_3=\alpha_1+\alpha_2=\frac{1}{4} α3​=α1​+α2​=41​
    解得所有的 α 1 , α 2 , α 3 \alpha_1,\alpha_2,\alpha_3 α1​,α2​,α3​后求 w , b w,b w,b,
    公式4我们可以得到:
    w = α 1 y 1 x 1 + α 2 y 2 x 2 + α 3 y 3 x 3 w=\alpha_1y_1x_1+\alpha_2 y_2 x_2+\alpha_3y_3x_3 w=α1​y1​x1​+α2​y2​x2​+α3​y3​x3​ = 1 4 × 1 × x 1 + 0 + 1 4 × ( − 1 ) × x 3 = ( 1 2 , 1 2 ) T =\frac{1}{4}×1×x_1+0+\frac{1}{4}×(-1)×x_3=(\frac{1}{2},\frac{1}{2})^T =41​×1×x1​+0+41​×(−1)×x3​=(21​,21​)T
    b = 1 − 1 2 ( 3 + 3 ) = − 2 b=1-\frac{1}{2}(3+3)=-2 b=1−21​(3+3)=−2
    分离超平面为:
    1 2 x 1 + 1 2 x 2 − 2 = 0 \frac{1}{2}x^1+\frac{1}{2}x^2-2=0 21​x1+21​x2−2=0
    分类决策函数为:
    f ( x ) = s i g n ( 1 2 x 1 + 1 2 x 2 − 2 ) f(x)=sign(\frac{1}{2}x^1+\frac{1}{2}x^2-2) f(x)=sign(21​x1+21​x2−2)

总结

上一篇:支持向量机(support vector machine)(SVM)


下一篇:吴恩达机器学习系列四(SVM)