零基础入门SVM——核心思想和基本数学表达式的理解

it2026-01-24  2

作为小白的我几乎零基础,看了几天的SVM,终于搞清楚了目标函数推导的细节,这里总结一下,避免遗忘,同时也分享给同样作为小白的你。

核心思路

SVM的核心思想其实十分朴素,简单讲就是划一条线将分属两类的样本分开达到分类的目的。 具体而言,对于线性可分问题,在样本所在的多维空间中找到一个超平面,使得不同类别的样本分属于这个超平面的两侧;对于线性不可分问题,采用核方法,将样本空间升维,把线性不可分问题转为线性可分问题,再在升维后的空间中找到那个分割样本的超平面。对于N维空间,过于抽象,受脑容量所限,画面太美,不可描述,可以在二维空间感性认识。 图中所示的三根线就是三个可以分类样本的超平面,很容易就能发现满足这一要求的超平面有无穷多个,而SVM的目标就是在这些中找到距离两类样本间隔最大的那个超平面。为了找到这个超平面,引入了支持向量的概念,即距离这个超平面最近的样本,下图(b)、(c)中穿过虚线的点就是支持向量,最终我们会发现影响学习结果的因素也正是这些样本,所以这一方法就被称为支持向量机(support vector machines, SVM)。 使用SVM找超平面的方法,就是找到一个超平面,使得两类样本与这个超平面之间的最小距离最大。 对于上面这一段话,绕口又晦涩,可以通过一些辅助理解上面这一表达,如下图,距离超平面最近的样本一定是经过与目标超平面平行的超平面的,图中的两条虚线分别了两个经过这两个样本的超平面,为了使得分类效果最好,可以平移目标超平面到中线位置。然而通过上图我们也发现,满足这一条件的超平面实际上有很多,旋转超平面可以得到不同的结果,而SVM则是在这些结果中找到间隔最大的那个超平面即可。用文字来表达总是无法做到精确和无二意,下面用数学语言描述这一方法,除去碍眼的数学符号,只要有一些基础的数学知识也能够理解。 总结一下SVM的本质其实就是找到将已标记类别的样本分开间隔最大的决策面,很显然这属于有监督学习二分类问题的范畴。

数学表达

数学公式还有十秒进入战场,请做好准备! 首先对于超平面的描述,我们使用最简单的线性方程来描述,即: ω T x + b = 0 (1) \omega ^{T}x+b=0 \tag{1} ωTx+b=0(1)

这里的 x x x实质为 { x 0 , x 1 , x 2 , . . . , x n } T \left \{ x_{0},x_{1},x_{2},...,x_{n}\right \}^{T} {x0,x1,x2,...,xn}T样本特征向量, ω \omega ω { ω 0 , ω 1 , ω 2 , . . . , ω n } T \left \{ \omega _{0},\omega_{1},\omega_{2},...,\omega_{n}\right \}^{T} {ω0,ω1,ω2,...,ωn}T系数向量, b b b为偏移,我们的目的就是通过样本来找到式(1)所描述的超平面。当然如果不好理解,就简单用二维情形来理解,直线即为超平面,其方程为 A x 0 + B x 1 + C = 0 Ax_{0}+Bx_{1}+C=0 Ax0+Bx1+C=0,其向量形式为 ( A , B ) ( x 0 x 1 ) + C = 0 \left ( A,B \right )\binom{x_{0}}{x_{1}}+C=0 (A,B)(x1x0)+C=0,也就是 ω T = ( A , B ) \omega ^{T}=\left ( A,B \right ) ωT=(A,B) x = ( x 0 x 1 ) x=\binom{x_{0}}{x_{1}} x=(x1x0) b = C b=C b=C

一切问题的求解都是有约束的,否则问题将不是问题。这里求得这个超平面的约束在上一节也已经给出,即使得两类样本与这个超平面之间的最小距离最大,如何用数学形式来表达这一约束条件呢? 现在我们手上已经有了这么一个超平面 ω T x + b = 0 \omega ^{T}x+b=0 ωTx+b=0,那么下面要做的其实有4件事:

用超平面对样本进行分割计算样本到这个超平面的距离 γ i \gamma _{i} γi。找到样本到超平面的最小距离 d d d。找到使得 d d d最大的超平面。

现在只要描述清楚四个概念即可表达出超平面的约束条件,即距离、最小距离和最大间隔,而我们手上目前有的除了式(1)描述的目标超平面外,还有样本集合 D = { ( x i , y i ) ∣ i = 1 , 2 , . . . , m } (2) D=\left \{ (x^{i},y^{i})|i=1,2,...,m \right \}\tag{2} D={(xi,yi)i=1,2,...,m}(2)

其中 x i x^{i} xi为某个样本的特征向量, y i y^{i} yi为这个特征向量的分类标签,事实上可以取任意值,仅仅是为了计算的方便,通常取 y i ϵ { − 1 , + 1 } y^{i}\epsilon \left \{ {-1,+1}\right \} yiϵ{1,+1}

问题1:用超平面对样本进行分割

已知超平面上的点满足 ω T x + b = 0 \omega ^{T}x+b=0 ωTx+b=0,超平面两侧的样本满足 { ω T x i + b > 0   ∀ y i = + 1 ω T x i + b < 0   ∀ y i = − 1 \begin{cases} \omega ^{T}x^{i}+b>0 & \text{ } \forall y^{i}=+1 \\ \omega ^{T}x^{i}+b<0 & \text{ } \forall y^{i}=-1 \end{cases} {ωTxi+b>0ωTxi+b<0 yi=+1 yi=1 y i = ± 1 y ^{i}=\pm 1 yi=±1的条件代入,整理可得 y i ( ω T x i + b ) > 0 (3) y ^{i}(\omega ^{T}x^{i}+b)>0 \tag{3} yi(ωTxi+b)>0(3) 故只要超平面能够将样本正确分类,则必然满足式(3)。 这里的 y i ( ω T x i + b ) y ^{i}(\omega ^{T}x^{i}+b) yi(ωTxi+b)也被定义为函数距离。

问题2:样本到超平面的距离的数学表达

在式(1)和式(2)的基础上,回到我们要解决的第一个问题,即样本到超平面的距离上。假设超平面上有一点 x ′ x' x,那么对于任意样本 x x x,它到超平面的距离 d d d实际上就是向量 x x ′ xx' xx在超平面单位法向量的投影,这一投影可以由向量内积表示。我们知道超平面的法向量为 ω T {\omega ^{T}} ωT,单位向量即向量除以向量的长度,所以单位法向量则为 ω T ∥ ω ∥ \frac{\omega ^{T}}{\left \| \omega \right \|} ωωT,向量 x x ′ xx' xx就是 ( x − x ′ ) (x-x') (xx),所以单位法向量上的投影即为 ω T ∥ ω ∥ \frac{\omega ^{T}}{\left \| \omega \right \|} ωωT ( x − x ′ ) (x-x') (xx),用绝对值去除符号的影响,m得到的就是样本到超平面的距离: γ = ∣ ω T ∥ ω ∥ ( x − x ′ ) ) ∣ (4) \gamma=\left | \frac{\omega ^{T}}{\left \| \omega \right \|}(x-x')) \right |\tag{4} γ=ωωT(xx))(4)

又因为 x ′ x' x在超平面上所以有 ω T x ′ + b = 0 \omega ^{T}x'+b=0 ωTx+b=0,即 ω T x ′ = − b (5) \omega ^{T}x'=-b\tag{5} ωTx=b(5)

将式(5)代入式(4),有 γ = ∣ ω T ∥ ω ∥ ( x − x ′ ) ) ∣ = ∣ ω T x − ω T x ′ ∥ ω ∥ ∣ = ∣ ω T x + b ∣ ∥ ω ∥ (6) \gamma=\left | \frac{\omega ^{T}}{\left \| \omega \right \|}(x-x')) \right|=\left | \frac{\omega ^{T}x-\omega ^{T}x'}{\left \| \omega \right \|} \right |=\frac{\left | \omega ^{T}x+b \right |}{\left \| \omega \right \|}\tag{6} γ=ωωT(xx))=ωωTxωTx=ωωTx+b(6) γ i \gamma _{i} γi表示样本 x i x ^{i} xi到超平面的距离,有

γ i = ∣ ω T x i + b ∣ ∥ ω ∥ (7) \gamma _{i}=\frac{\left | \omega ^{T}x^{i}+b \right |}{\left \| \omega \right \|}\tag{7} γi=ωωTxi+b(7)

式(6)即是问题1的答案,这里的 γ i \gamma _{i} γi也被定义为几何距离。

问题3:样本到超平面的最小距离 d d d的数学表达

下面我们来解决问题2,找到样本到超平面的最小距离 d d d,这是遍历所有样本,在其中找极值的问题。 由式(7)我们已经知道了样本到超平面的距离,那么这个最小距离d就是计算样本空间 D D D中的每一个样本的 γ i \gamma _{i} γi,从中找到最小值,即 d = min ⁡ i γ i = min ⁡ i ∣ ω T x i + b ∣ ∥ ω ∥ (8) d=\min_{i}\gamma ^{i}=\min_{i}\frac{\left | \omega ^{T}x^{i}+b \right |}{\left \| \omega \right \|}\tag{8} d=iminγi=iminωωTxi+b(8)

式(8)中 ∥ ω ∥ \left \| \omega \right \| ω是与 i i i无关的量,所以进一步可得 d = 1 ∥ ω ∥ min ⁡ i ∣ ω T x i + b ∣ (9) d=\frac{1}{\left \| \omega \right \|}\min_{i}\left | \omega ^{T}x^{i}+b \right |\tag{9} d=ω1iminωTxi+b(9) ∣ ω T x i + b ∣ \left | \omega ^{T}x^{i}+b \right | ωTxi+b ∣ ⋅ ∣ \left | \cdot \right | 去除,由于

∣ ω T x i + b ∣ = { ω T x i + b   ∀ y i = + 1 − ( ω T x i + b )   ∀ y i = − 1 \left | \omega ^{T}x^{i}+b \right |=\begin{cases} \omega ^{T}x^{i}+b & \text{ } \forall y^{i}=+1 \\ -(\omega ^{T}x^{i}+b) & \text{ } \forall y^{i}=-1 \end{cases} ωTxi+b={ωTxi+b(ωTxi+b) yi=+1 yi=1 将条件合并,即将 y i = ± 1 y^{i}=\pm 1 yi=±1条件分别代入结果,得 ∣ ω T x i + b ∣ = { ( + 1 ) ( ω T x i + b ) = y i ( ω T x i + b ) ( − 1 ) ( ω T x i + b ) = y i ( ω T x i + b ) = y i ( ω T x i + b ) (10) \left | \omega ^{T}x^{i}+b \right |=\begin{cases} (+1)(\omega ^{T}x^{i}+b)=y^{i}(\omega ^{T}x^{i}+b) & \\ (-1)(\omega ^{T}x^{i}+b)=y^{i}(\omega ^{T}x^{i}+b) & \end{cases}=y^{i}(\omega ^{T}x^{i}+b)\tag{10} ωTxi+b={(+1)(ωTxi+b)=yi(ωTxi+b)(1)(ωTxi+b)=yi(ωTxi+b)=yi(ωTxi+b)(10) 将式(10)代入式(9),这样即可回答问题2. d = 1 ∥ ω ∥ min ⁡ i y i ( ω T x i + b ) (11) d=\frac{1}{\left \| \omega \right \|}\min_{i}y^{i}(\omega ^{T}x^{i}+b)\tag{11} d=ω1iminyi(ωTxi+b)(11)

问题4:异类样本间的最大间隔的数学表达

在问题1和问题2的基础上,我们可以给出这一问题的回答。 首先依然从直观上解释这里的间隔是什么,如下图所示,假设上方粉色样本为正样本,下方蓝色样本为负样本,平行的粉色和蓝色的超平面的中线为目标超平面,粉色和蓝色超平面的距离即为间隔。改变 ω \omega ω b b b可以找到满足要求的多个超平面,而我们的目标是使得这一间隔最大。 通过问题3我们已经知道样本到超平面间的距离,这里又明确了间隔的概念,所以找最大间隔实质就是找到一组 ω \omega ω b b b,使得支持向量到这个超平面的距离最大,即 max ⁡ ω , b d = max ⁡ ω , b 1 ∥ ω ∥ min ⁡ i y i ( ω T x i + b ) \max_{\omega ,b}d=\max_{\omega ,b}\frac{1}{\left \| \omega \right \|}\min_{i}y^{i}(\omega ^{T}x^{i}+b) ω,bmaxd=ω,bmaxω1iminyi(ωTxi+b)

结合问题1超平面分割样本的约束,最终可以得出求得SVM超平面的完整数学表达: max ⁡ ω , b 1 ∥ ω ∥ min ⁡ i y i ( ω T x i + b ) subject to  y i ( ω T x i + b ) > 0 (12) \begin{aligned} \max_{\omega ,b}\frac{1}{\left \| \omega \right \|}\min_{i}y^{i}(\omega ^{T}x^{i}+b) \\ \text{subject to }y^{i}(\omega ^{T}x^{i}+b)>0 \end{aligned} \tag{12} ω,bmaxω1iminyi(ωTxi+b)subject to yi(ωTxi+b)>0(12)

公式简化

式(12)完整表达出了SVM的内核,看似简单,但是若要求解出( ω \omega ω, b b b)还是太过复杂,下面对这一公式进行简化。 首先对于超平面 ω T x + b = 0 \omega ^{T}x+b=0 ωTx+b=0具有这么一个性质,对于 ω \omega ω b b b同时扩大 λ \lambda λ倍,有 ( λ ω ) T x + λ b = λ ( ω T x + b ) = ω T x + b = 0 \begin{aligned} (\lambda \omega) ^{T}x+\lambda b &=\lambda (\omega ^{T}x+b) \\ &=\omega ^{T}x+b \\ &=0 \end{aligned} (λω)Tx+λb=λ(ωTx+b)=ωTx+b=0

也就是说: ω \omega ω b b b等比变化后,超平面不变,记住这个结论。

这时再回到式(12),就会发现,其最终的参数解会是一组等比例的 ( ω , b ) ( \omega,b) (ω,b)集合,因为参数的等比变化并不会影响最终的超平面,也就是说 ω T x + b = 0 \omega ^{T}x+b=0 ωTx+b=0 ( λ ω ) T x + λ b = 0 \left (\lambda \omega \right ) ^{T}x+\lambda b=0 (λω)Tx+λb=0是同一个超平面,而对于我们而言,只需要找到这一集合中的一个解就可以解决问题。

对于所有样本集合 D D D和一组等比例的 ( ω , b ) ( \omega,b) (ω,b)集合,式(12)中 min ⁡ i y i ( ω T x i + b ) \min_{i}y^{i}(\omega ^{T}x^{i}+b) miniyi(ωTxi+b)的含义就是在 ( ω , b ) ( \omega,b) (ω,b)固定的前提下,求得所有样本关于 y i ( ω T x i + b ) y^{i}(\omega ^{T}x^{i}+b) yi(ωTxi+b)的最小值,我们令 ι i = y i ( ω T x i + b ) (13) \iota ^{i}=y^{i}(\omega ^{T}x^{i}+b) \tag{13} ιi=yi(ωTxi+b)(13)

这个的 ι i \iota ^{i} ιi也就是所谓的函数间隔。那么对于另一组解 ( ω ′ , b ′ ) ( \omega',b') (ω,b)而言,与 ( ω , b ) ( \omega,b) (ω,b)是等比的即 ( ω ′ , b ′ ) = ( λ ω , λ b ) ( \omega',b')=(\lambda \omega,\lambda b) (ω,b)=(λω,λb),还记得上面那个结论么,等比变化后,超平面不变,也就距离超平面最近的样本也没变,换句话说就是支持向量不变,故这个解下的最小函数间隔为:

( ι i ) ′ = y i ( ( ω ′ ) T x i + b ′ ) = y i ( ( λ ω ) T + λ b ) = λ y i ( ω T x i + b ) = λ ι i \begin{aligned} \left (\iota ^{i} \right )' &= y^{i}\left (\left (\omega ' \right ) ^{T}x^{i}+b' \right ) \\ &=y^{i}\left (\left (\lambda \omega \right ) ^{T}+\lambda b \right ) \\ &=\lambda y^{i}\left (\omega ^{T}x^{i}+b \right ) \\ &=\lambda \iota ^{i} \end{aligned} (ιi)=yi((ω)Txi+b)=yi((λω)T+λb)=λyi(ωTxi+b)=λιi

这时可以得到第二个结论: ω \omega ω b b b等比变化后的函数间隔也跟随呈同比变化。 这就意味着函数间隔可以在实数域中任意取值,总会存在那么一组 ( ω ′ , b ′ ) ( \omega',b') (ω,b)满足SVM的条件,反过来讲也就是如果固定最小函数间隔,一定可以找到超平面对应的那组 ( ω , b ) ( \omega,b) (ω,b),那么为达到简化的目的,不妨就限定函数间隔为1,即 m i n i ι i = 1 min_{i}\iota ^{i}=1 miniιi=1 m i n i y i ( ω T x i + b ) = 1 (14) min_{i}y^{i}(\omega ^{T}x^{i}+b)=1\tag{14} miniyi(ωTxi+b)=1(14)

而对于任意样本 ( x i , y i ) ( x ^i,y ^i) (xi,yi)一定有 y i ( ω T x i + b ) ≥ 1 (15) y^{i}(\omega ^{T}x^{i}+b)\geq 1 \tag{15} yi(ωTxi+b)1(15)

将式(14)(15)代入公式(12)可简化为: max ⁡ ω , b 1 ∥ ω ∥ \max_{\omega ,b}\frac{1}{\left \| \omega \right \|} ω,bmaxω1 subject to  y i ( ω T x i + b ) ≥ 1 (16) \text{subject to }y^{i}(\omega ^{T}x^{i}+b)\geq 1 \tag{16} subject to yi(ωTxi+b)1(16)

进一步,求 1 ∥ ω ∥ \frac{1}{\left \| \omega \right \|} ω1的最大值也就是求 ∥ ω ∥ \left \| \omega \right \| ω的最小值,又因为 ∥ ω ∥ \left \| \omega \right \| ω非负,故求 ∥ ω ∥ 2 \left \| \omega \right \|^2 ω2的最小值不影响可以优化结果,式(12)最终优化成: min ⁡ ω , b 1 2 ∥ ω ∥ 2 \min_{\omega,b}\frac{1}{2}\left \| \omega \right \| ^{2} ω,bmin21ω2 s.t.  y i ( ω T x i + b ) ≥ 1 (15) \text{s.t. }y^{i}(\omega ^{T}x^{i}+b)\geq 1 \tag{15} s.t. yi(ωTxi+b)1(15) 这样的表达可以转换为凸优化问题,用现有的方法求解,显然这里的 1 2 \frac{1}{2} 21也是为了后面求导方便所加,然而以后的事以后再说,SVM核心思想和数学表达到此为止。

最新回复(0)