SVM支持向量机原理详解

SVM

考虑一个二分类问题。假设输入空间与特征空间为两个不同的空间。输入空间为欧式空间或离散集合,特征空间为欧式空间或希尔伯特空间。线性可分支持向量机、线性支持向量机假设这两个空间的元素一一对应,并将输入空间中的输入映射为特征空间中的特征向量。非线性支持向量机利用一个从输入空间到特征空间的非线性映射将输入映射为特征向量。所以,输入都由输入空间转换到特征空间,支持向量机的学习是在特征空间进行的。

希尔伯特空间:一个完备的内积空间。 R n R^n Rn就是一个完备的内积空间,即Hilbert空间。大部分时候我们的输入 x x x都在 R n R^n Rn中,因此即使不懂什么叫完备也没关系。

线性可分支持向量机

线性可分即存在一个超平面可以将数据点分为两类,分离超平面为:
w ∗ x + b ∗ = 0 (1) \begin{aligned} w^*x+b^*=0 \tag{1} \end{aligned} wx+b=0(1)

决策函数为:

f ( x ) = s i g n ( w ∗ x + b ∗ ) (2) f(x) = sign(w^*x+b^*) \tag{2} f(x)=sign(wx+b)(2)

SVM最大的特点就是使分离超平面与样本点的最小距离最大,即“最小间隔最大化”。因为距离分离平面越远的点,模型在预测其类别时的置信度就越高。距离最大就引出了SVM的优化目标函数,在这之前首先要介绍函数间隔和几何间隔。

函数间隔

r ^ = y ( w x + b ) (3) \hat{\mathop{r}} = y(wx+b) \tag{3} r^=y(wx+b)(3)

上式中 y y y为样本的类别标签。可以看出,当点 x i x_i xi被正确分类,则其函数间隔大于0,而与其类别无关;反之则一定小于0.对于给定的一组 w , b w, b w,b,函数间隔的大小也可以代表模型对于分类结果的确信程度。

几何间隔

w , b w, b w,b成比例变化时,函数间隔亦成比例变化,但是分隔超平面没有变化。比如在二维坐标系下 2 x 1 + 4 x 2 + 3 = 0 2x_1+4x_2+3=0 2x1+4x2+3=0 4 x 1 + 8 x 2 + 6 = 0 4x_1+8x_2+6=0 4x1+8x2+6=0显然为同一条直线,只是系数成比例的变化。这就启发我们可以对每个分离超平面除以它的 ∣ ∣ w ∣ ∣ ||w|| w, 由此得到几何间隔:
r = y w x + b ∣ ∣ w ∣ ∣ (4) r=y\frac{wx+b}{||w||} \tag{4} r=ywwx+b(4)

事实上,当分类正确时等号右边就是点到直线的距离公式。这样我们就能将SVM公式化为下面的优化问题:

max ⁡ w , b r s . t . y i ∣ ∣ w ∣ ∣ ( w x i + b ) ≥ r , i = 1 , 2 , … , N (5) \max_{w, b} \qquad r \\ \tag{5} s.t.\qquad \frac{y_i}{||w||}(wx_i+b)\ge{r}, i=1, 2, \dots, N w,bmaxrs.t.wyi(wxi+b)r,i=1,2,,N(5)

其中,限制条件体现了“最小间隔”,目标函数保证了“间隔最大化”。 但是这个最优化问题不好求解,我们需要想办法让问题的形式更简单一点。考虑函数间隔和几何间隔之间的关系,可以将上面的优化问题改写为:

max ⁡ w , b r ^ ∥ w ∥ s . t . y i ( w x i + b ) ≥ r ^ , i = 1 , 2 , … , N (6) \max_{w, b} \qquad \frac{\hat{r}}{\lVert w\rVert}\\ \tag{6} s.t.\qquad {y_i}(wx_i+b)\ge{\hat{r}}, i=1, 2, \dots, N w,bmaxwr^s.t.yi(wxi+b)r^,i=1,2,,N(6)
根据我们之前的讨论,函数间隔可以任意变化,我们总是可以通过成比例的改变 w , b w,b w,b来保证得到相同的分离超平面。

证明:假设 r 1 = k r 2 r_1=kr_2 r1=kr2, 当 r ^ = r 2 \hat{r}=r_2 r^=r2时解为 w ∗ , b ∗ w^*, b^* w,b,则对于任意的输入 x i x_i xi
k y i ( w ∗ x i + b ∗ ) ≥ k r 2 = r 1 , 满 足 限 制 条 件 r 1 k ∣ ∣ w ∗ ∣ ∣ = r 2 ∣ ∣ w ∗ ∣ ∣ ≥ r 2 ∣ ∣ w ∣ ∣ = r 1 k ∣ ∣ w ∣ ∣ , 满 足 最 优 的 要 求 \begin{aligned} &k{y_i}(w^*x_i+b^*)\ge kr_2=r_1, \qquad &满足限制条件\\ &\frac{r_1}{k||w^*||}=\frac{r_2}{||w^*||}\ge\frac{r_2}{||w||}=\frac{r_1}{k||w||},\qquad &满足最优的要求 \end{aligned} kyi(wxi+b)kr2=r1,kwr1=wr2wr2=kwr1
k w ∗ , k b ∗ kw^*, kb^* kw,kb r ^ = r 1 \hat{r}=r_1 r^=r1的解,显然它与 w ∗ , b ∗ w^*, b^* w,b是同一个解。又因为在线性可分的情形下分离超平面存在且唯一,所以 r ^ = r 1 \hat{r}=r_1 r^=r1 r ^ = r 2 \hat{r}=r_2 r^=r2同解。又因为任意两个实数 a , b a, b a,b都可以表示成 a = k b a = kb a=kb的形式,因此 r ^ \hat{r} r^的取值不影响最优化问题的解。

简便起见, 我们可令 r ^ = 1 \hat{r}=1 r^=1,然后做一些便于求导和表示的等价处理,可以得到下面的优化问题:
min ⁡ w , b 1 2 ∥ w ∥ 2 s . t . y i ( w x i + b ) − 1 ≥ 0 , i = 1 , 2 , … , N (7) \begin{aligned} &\min_{w, b} \qquad \frac{1}{2}\lVert w\rVert ^ 2 \\ \tag{7} &s.t.\qquad {y_i}(wx_i+b) - 1\ge0, i=1, 2, \dots, N \end{aligned} w,bmin21w2s.t.yi(wxi+b)10,i=1,2,,N(7)

事实上,这是一个凸二次优化问题,也就是说它的限制条件和目标函数都是连续可微的凸函数。

最大分离超平面的存在性和唯一性

证明:

存在性:由线性可分的假设,知优化问题一定存在可行解(也就是有解),又因为优化目标有下界(范数的平方一定是非负的有最小值0),故存在最优解。但是如果 1 2 ∣ ∣ w ∗ ∣ ∣ 2 = 0 \frac{1}{2}||w^{*}||^2=0 21w2=0,即取到下界0就有 w = 0 w=0 w=0此时分离超平面是不存在的。又因为输入数据中有正类和负类,所以 ( 0 , b ) (0,b) (0,b)不是最优化问题的解,否则的话分类决策函数 f ( x ) = s i g n ( b ∗ ) f(x)=sign(b^*) f(x)=sign(b)输出恒为1或-1。由此可知分离超平面的存在性。

唯一性:假设存在 w 1 ∗ , b 1 ∗ w_1^*, b_1^* w1,b1, w 2 ∗ , b 2 ∗ w_2^*, b_2^* w2,b2都是最优化问题的解。则 w = w 1 ∗ + w 2 ∗ 2 w=\frac{w_1^*+w_2^*}{2} w=2w1+w2, b = b 1 ∗ + b 2 ∗ 2 b=\frac{b_1^*+b_2^*}{2} b=2b1+b2也是最优化问题的可行解(即满足限制条件,但不一定满足最优化目标)。设 ∣ ∣ w 1 ∗ ∣ ∣ = ∣ ∣ w 2 ∗ ∣ ∣ = c ||w_1^*||=||w_2^*||=c w1=w2=c:
c ≤ ∣ ∣ w ∣ ∣ ≤ 1 2 ∣ ∣ w 1 ∗ ∣ ∣ + 1 2 ∣ ∣ w 2 ∗ ∣ ∣ = c (8) \begin{aligned} c \le ||w|| \le \frac{1}{2}||w_1^*||+\frac{1}{2}||w_2^*||=c \tag{8} \end{aligned} cw21w1+21w2=c(8)
上式中的不等号来自三角不等式。由此可以推出 ∣ ∣ w ∣ ∣ = c ||w||=c w=c,根据三角不等式等号成立的条件可知 w 1 ∗ w_1^* w1 w 2 ∗ w_2^* w2共线,又因为二者范数相等,则 w 1 ∗ = w 2 ∗ w_1^*= w_2^* w1=w2 w 1 ∗ = − w 2 ∗ w_1^*= -w_2^* w1=w2。当 w 1 ∗ = − w 2 ∗ w_1^*= -w_2^* w1=w2时, w = 0 w=0 w=0,所以 w 1 ∗ = w 2 ∗ w_1^*= w_2^* w1=w2

由上述结论可知,两个分离超平面是平行的,所以 x i x_i xi中使得不等式约束等号成立的点对于两个分离超平面是相同的(因为使得等号成立的点是到分隔超平面几何距离最小的点,而每个点到两个分离超平面的几何距离相差一个常数 ∣ b 1 ∗ − b 2 ∗ ∣ |b_1^* - b_2^*| b1b2)。又因为两个解都是最优解,所以最小的几何距离相等,故 ∣ b 1 ∗ − b 2 ∗ ∣ = 0 |b_1^* - b_2^*|=0 b1b2=0,推出 b 1 ∗ = b 2 ∗ b_1^* = b_2^* b1=b2。由此可知唯一性。

最优化问题的求解

在高等数学中我们求解带限制条件的极值问题时通常会使用拉格朗日极值法。考虑下面的拉格朗日函数:

max ⁡ α : α ≥ 0 L ( w , b , α ) = 1 2 ∥ w ∥ 2 − ∑ i = 1 N α i y i ( w x i + b ) + ∑ i = 1 N α i (9) \max_{\alpha:\alpha \ge 0} \qquad L(w, b, \alpha)=\frac{1}{2}\lVert w \rVert ^ 2 - \sum_{i=1}^N \tag{9}\alpha_iy_i(wx_i+b)+\sum_{i=1}^N\alpha_i αα0maxL(w,b,α)=21w2i=1Nαiyi(wxi+b)+i=1Nαi(9)

结合限制条件:
max ⁡ α : α ≥ 0 L ( w , b , α ) = { 1 2 ∥ w ∥ 2 , y i ( w x i + b ) − 1 ≥ 0 , i = 1 , 2 , … , N + ∞ , y i ( w x i + b ) − 1 < 0 , i = 1 , 2 , … , N (10) \max_{\alpha:\alpha \ge 0} \qquad L(w, b, \alpha)=\left\{ \begin{aligned} &\frac{1}{2}\lVert w \rVert ^ 2, \qquad&{y_i}(wx_i+b) - 1\ge0, i=1, 2, \dots, N\\ \tag{10} &+\infty , \qquad &{y_i}(wx_i+b) - 1<0, i=1, 2, \dots, N \end{aligned} \right. αα0maxL(w,b,α)=21w2,+,yi(wxi+b)10,i=1,2,,Nyi(wxi+b)1<0,i=1,2,,N(10)

所以当 x x x满足限制条件时,下述最优化问题与原始问题等价:
min ⁡ w , b max ⁡ α : α ≥ 0 L ( w , b , α ) (11) \begin{aligned} \min_{w,b}\max_{\alpha:\alpha \ge 0}L(w, b, \alpha) \tag{11} \end{aligned} w,bminα:α0maxL(w,b,α)(11)

这个问题不便于求解,因为根据拉格朗日极值法,我们首先需要求 L ( w , b , α ) L(w, b, \alpha) L(w,b,α) α \alpha α的导数,并令其为0:
∂ L ∂ α i = 1 − y i ( w x i + b ) = 0 → y i ( w x i + b ) = 1 (12) \frac{\partial L}{\partial \alpha_i} = 1 - y_i(wx_i+b)=0 \rightarrow y_i(wx_i+b) = 1 \tag{12} αiL=1yi(wxi+b)=0yi(wxi+b)=1(12)
将其代回(n)中有
min ⁡ w , b = 1 2 ∥ w ∥ 2 (13) \min_{w,b}=\frac{1}{2}\lVert w \rVert ^ 2 \tag{13} w,bmin=21w2(13)
这就回到了我们的原始问题。我们可以将上述问题转化为其对偶问题进行求解,又因为这个优化问题满足KKT条件(对偶问题和KKT条件),所以原问题和对偶问题有相同的解 w ∗ , b ∗ w^*, b^* w,b(拉格朗日对偶性):

max ⁡ α : α ≥ 0 min ⁡ w , b L ( w , b , α ) (14) \max_{\alpha:\alpha \ge 0}\min_{w,b}L(w, b, \alpha) \tag{14} α:α0maxw,bminL(w,b,α)(14)
类似于之前的求解方法:
∂ L ∂ w = w − ∑ i = 1 N α i y i x i = 0 ∂ L ∂ b = − ∑ i = 1 N α i y i = 0 (15) \begin{aligned} \frac{\partial L}{\partial w} &= w - \sum_{i=1}^{N}\alpha_iy_ix_i&=0 \\ \frac{\partial L}{\partial b} &= -\sum_{i=1}^{N}\alpha_iy_i&=0 \tag{15} \end{aligned} wLbL=wi=1Nαiyixi=i=1Nαiyi=0=0(15)
将式(15)带回式(14)中可以得到:
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 (16) \begin{aligned} &\min_{\alpha} \qquad\frac{1}{2} \sum_{i=1}^N \sum_{j=1}^N \alpha_i \alpha_j y_i y_j (x_i.x_j)-\sum_{i=1}^N\alpha_i \\ \tag{16} &s.t. \qquad \sum_{i=1}^N \alpha_iy_i=0 \\ &\qquad\qquad\alpha_i\ge{0} \end{aligned} αmin21i=1Nj=1Nαiαjyiyj(xi.xj)i=1Nαis.t.i=1Nαiyi=0αi0(16)

由式(15)有
w ∗ = ∑ i = 1 N α i ∗ y i x i (17) w^*=\sum_{i=1}^N \alpha_i^*y_ix_i \tag{17} w=i=1Nαiyixi(17)
其中 { α i ∗ } \{\alpha_i^*\} {αi}为对偶问题的最优解。若要求 b ∗ b^* b需要用到KKT条件:
∇ w L ( w ∗ , b ∗ , α ∗ ) = w ∗ − ∑ i = 1 N α i ∗ y i x i ∇ b L ( w ∗ , b ∗ , α ∗ ) = − ∑ i = 1 N α i ∗ y i = 0 α i ∗ ( y i ( w ∗ x i + b ∗ ) − 1 ) = 0 , i = 1 , 2 , … , N y i ( w ∗ x i + b ∗ ) − 1 ≥ 0 , i = 1 , 2 , … , N α i ∗ ≥ 0 , i = 1 , 2 , … , N (18) \begin{aligned} &\nabla_wL(w^*,b^*,\alpha^*)=w^*-\sum_{i=1}^{N}\alpha_i^*y_ix_i \\ &\nabla_bL(w^*,b^*,\alpha^*)=-\sum_{i=1}^{N}\alpha_i^*y_i=0 \\ &\alpha_i^*(y_i(w_*x_i+b^*)-1)=0, \qquad i=1,2,\dots,N \\ &y_i(w_*x_i+b^*)-1 \ge 0, \qquad i=1,2,\dots,N \\ &\alpha_i^* \ge 0, \qquad i=1,2,\dots,N \tag{18} \end{aligned} wL(w,b,α)=wi=1NαiyixibL(w,b,α)=i=1Nαiyi=0αi(yi(wxi+b)1)=0,i=1,2,,Nyi(wxi+b)10,i=1,2,,Nαi0,i=1,2,,N(18)
{ α i ∗ } \{\alpha_i^*\} {αi}中必有大于0的项,否则的话 w ∗ = 0 w^*=0 w=0,而0不是最优化问题的解。假设 α j ∗ > 0 \alpha_j^* > 0 αj>0,将 α j ∗ \alpha_j^* αj代入(18-3),可求得
b ∗ = y j − ∑ i = 1 N α i ∗ y i ( x i . x j ) (19) b^*=y_j-\sum_{i=1}^{N}\alpha_i^*y_i(x_i .x_j) \tag{19} b=yji=1Nαiyi(xi.xj)(19)

大于0的 α i \alpha_i αi对应的点 x i x_i xi即为特征向量由KKT条件, α i ∗ ( y i ( w ∗ x i + b ∗ ) − 1 ) = 0 \alpha_i^*(y_i(w^*x_i+b^*)-1)=0 αi(yi(wxi+b)1)=0,易知后面的括号内为0,则 x i x_i xi位于距离分离超平面函数距离为1的直线上。

线性支持向量机

​ 现实中线性可分的情况比较少见,大部分情况下我们无法找到这样的分隔超平面。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yE5a8hoQ-1627808631140)(https://raw.githubusercontent.com/LinRds/image_bed/main/myplot.png)]

比如这张图片就展示了线性不可分的情况。对于实际问题中的数据,我们通常可以通过删除一些离群点使得原始数据变得线性可分(但是这样模型就失去了泛化性)。比如我们可以把上图中的 ( 0 , 1 ) , ( 1 , 1 ) (0, 1), (1, 1) (0,1),(1,1)两个点删去,则数据变得线性可分。线性不可分意味着存在部分点无法满足函数间隔大于等于1的条件。为此我们只能够减弱最大间隔限制的条件,添加一个松弛变量 ξ i \xi_i ξi,则限制条件变为:
y i ( w x i + b ) ≥ 1 − ξ i ξ i ≥ 0 \begin{aligned} y_i(wx_i+b) \ge 1-\xi_i \qquad \xi_i \ge 0 \end{aligned} yi(wxi+b)1ξiξi0
ξ i \xi_i ξi的引入的代价会体现在目标函数中:
min ⁡ w , b 1 2 ∥ w ∥ 2 + C ∑ i = 1 N ξ i \min_{w, b}\frac{1}{2} \lVert w \rVert ^2 + C\sum_{i=1}^N \xi_i w,bmin21w2+Ci=1Nξi
其中 C > 0 C>0 C>0是惩罚系数, C C C越大误分类的惩罚就越大(当 ξ i > 1 \xi_i>1 ξi>1时SVM会出现分类错误)。所以添加正则项的目的就是为了让函数间隔可以比1小一点,但是又不希望太小,这个力度由 C C C来调节。

​ 类似于线性可分支持向量机中的情况,将原始优化问题转化为拉格朗日对偶问题后求解,可以推导出 w ∗ , b ∗ w^*, b^* w,b的推导公式:
w ∗ = ∑ i = 1 N α i ∗ y i x i w^*=\sum_{i=1}^N \alpha_i^*y_ix_i w=i=1Nαiyixi

b ∗ = y j − ∑ i = 1 N y i α i ∗ ( x i . x j ) 0 < α j ∗ < C b^*=y_j - \sum_{i=1}^N y_i \alpha_i^*(x_i.x_j) \qquad0 < \alpha_j^* < C b=yji=1Nyiαi(xi.xj)0<αj<C

选择的 j j j不同则计算出的 b ∗ b^* b通常也是不同的。

支持向量

  • α i ∗ < C \alpha_i^* < C αi<C,则 ξ i = 0 \xi_i=0 ξi=0(通过KKT条件可以推出),则 x i x_i xi正好位于间隔边界上;
  • α i ∗ = C , 0 < ξ i < 1 \alpha_i^*=C,0<\xi_i<1 αi=C,0<ξi<1此时 x i x_i xi位于间隔边界与分隔超平面之间,分类正确;
  • α i ∗ = C , ξ i > 1 \alpha_i^*=C,\xi_i>1 αi=C,ξi>1,此时 x i x_i xi位于误分类的一侧。

合页损失函数(hinge logg)

合页损失函数的定义如下:
∑ i = 1 N max ⁡ ( 0 , 1 − y i ( w x i + b ) ) + λ ∥ w ∥ 2 \sum_{i=1}^N\max(0, 1-y_i(wx_i+b))+\lambda \lVert w \rVert ^2 i=1Nmax(0,1yi(wxi+b))+λw2
下面证明最小化 ( 20 ) (20) (20)与最小化 ( 17 ) (17) (17)是等价的。设:
max ⁡ ( 0 , 1 − y i ( w x i + b ) ) = ξ i \max(0, 1-y_i(wx_i+b))=\xi_i max(0,1yi(wxi+b))=ξi
则当 1 − y i ( w x i + b ) > 0 1-y_i(wx_i+b) > 0 1yi(wxi+b)>0时, ξ i = 1 − y i ( w x i + b ) > 0 \xi_i=1-y_i(wx_i+b)>0 ξi=1yi(wxi+b)>0;当 1 − y i ( w x i + b ) ≤ 0 1-yi(wx_i+b) \le 0 1yi(wxi+b)0时, ξ i = 0 \xi_i=0 ξi=0。综上, ξ i ≥ 0 \xi_i \ge 0 ξi0 ( 16 ) (16) (16)中的限制条件成立。因此可以将 ( 20 ) (20) (20)写成与 ( 17 ) (17) (17)相同的形式,只需要令 C λ = 1 2 C \lambda=\frac{1}{2} Cλ=21。合页损失函数可以让我们用梯度下降来求解,而不用解析的方式。

核函数

如果不存在一个很好的分离超平面,那么这个时候分类问题就变成非线性的了。此时我们希望找到一个分离超曲面来解决这个问题。而核技巧(kernel trick) 则另辟蹊径,他将输入数据通过一个非线性变换映射到特征空间中,而在特征空间中,我们可以找到一个合适的分离超平面。

核函数可以表示成两个向量的内积,而核技巧的巧妙之处局在于我们不需要显示的求出非线性变换。事实上,非线性变换的求解是困难的,而且同一个核函数可以对应不同的特征空间和映射函数的取法。核函数帮我们回避了这个问题,这就是所谓的“技巧”(trick)。

我们所说的核函数通常都是正定核函数。正定是线性代数中的一个概念,英文中写作positive definite,翻译过来是“一定为正”,也就是对于任意非零向量 x x x x T A x > 0 x^TAx > 0 xTAx>0.如果半正定,则大于号变为大于等于号。关于正定矩阵有一种几何角度的理解方式,我们将 x T A x x^TAx xTAx看做向量 x x x A x Ax Ax的内积,这个值始终大于0,也就是说这两个向量的夹角一定在0和 π 2 \frac{\pi}{2} 2π之间,所以两个向量方向一致。

你可能感兴趣的:(机器学习,支持向量机)