机器学习基础专题:支持向量机SVM

支持向量机

全称Support Vector Machine (SVM)。可以分为硬间隔(hard margin SVM),软间隔(soft margin SVM),和核支持向量机(kernel margin SVM)。

原理

输入

训练集数据 D = ( x 1 , y 1 ) . . . ( x M , y M ) D = {(x_1,y_1) ... (x_M,y_M)} D=(x1,y1)...(xM,yM) x i ∈ X ⊆ R p x_i \in \mathcal{X} \subseteq R^p xiXRp y i ∈ R y_i \in R yiR

X = ( x 1   x 2   . . .   x M ) T ∈ R M ∗ p X = (x_1\ x_2\ ...\ x_M)^T \in R^{M*p} X=(x1 x2 ... xM)TRMp

f ( x ) = s i g n ( w T x + b ) f(x) = sign(w^Tx+b) f(x)=sign(wTx+b)

正则化参数 λ 1 \lambda_1 λ1 λ 2 \lambda_2 λ2

输出

线性回归模型 f ^ ( x ) \hat f(x) f^(x)

损失函数

硬间隔SVM也称为最大间隔分类器。

m a r g i n ( w , b ) = m i n   d i s t a n c e ( w , b , x i ) margin(w, b) = min\ distance(w, b, x_i) margin(w,b)=min distance(w,b,xi)

为了简化运算,我们指定最小的margin为1(可以通过缩放实现)。我们希望达成以下目标。

m a x   m a r g i n ( w , b )   s . t .   y i ( w T x i + b ) > 0   ∀   i = 1 ∼ M max\ margin(w, b)\ s.t.\ y_i(w^Tx_i+b) > 0 \ \forall \ i =1 \sim M max margin(w,b) s.t. yi(wTxi+b)>0  i=1M

进行数学推导,
m a x   m a r g i n ( w , b ) = m a x w , b m i n x i 1 ∣ ∣ w ∣ ∣ y i ( w T x i + b ) = m a x w , b 1 ∣ ∣ w ∣ ∣ m i n x i y i ( w T x i + b ) max\ margin(w, b) = max_{w, b} min_{x_i} \frac{1} {||w||} y_i(w^T x_i + b) \\\\ = max_{w, b} \frac{1} {||w||} min_{x_i} y_i(w^T x_i + b) \\\\ max margin(w,b)=maxw,bminxiw1yi(wTxi+b)=maxw,bw1minxiyi(wTxi+b)
可以简化成
m a x   m a r g i n ( w , b ) = m a x w , b 1 ∣ ∣ w ∣ ∣ s . t .   y i ( w T x i + b ) > = 1   ∀   i = 1 ∼ M max \ margin(w, b) = max_{w, b} \frac{1} {||w||} \\\\ s.t. \ y_i(w^Tx_i + b) >= 1 \ \forall \ i =1 \sim M max margin(w,b)=maxw,bw1s.t. yi(wTxi+b)>=1  i=1M
或者
m a x   m a r g i n ( w , b ) = m i n w , b ∣ ∣ w ∣ ∣ s . t .   y i ( w T x i + b ) > = 1   ∀   i = 1 ∼ M max \ margin(w, b) = min_{w, b} {||w||} \\\\ s.t. \ y_i(w^Tx_i + b) >= 1 \ \forall \ i =1 \sim M max margin(w,b)=minw,bws.t. yi(wTxi+b)>=1  i=1M
从而我们很容易得到损失函数( λ ≥ 0 \lambda \ge 0 λ0),
L ( w , b , λ ) = 1 2 w T w + ∑ i = 1 M λ i ( 1 − y i ( w T x i + b ) ) m i n w , b   m a x λ L ( w , b , λ )   s . t .   λ i ≥ 0 L(w, b, \lambda) = \frac 1 2 w^Tw + \sum_{i=1}^M \lambda_i(1 - y_i(w^Tx_i+b)) \\\\ min_{w, b} \ max_{\lambda} L(w,b,\lambda) \ s.t. \ \lambda_i \ge 0 L(w,b,λ)=21wTw+i=1Mλi(1yi(wTxi+b))minw,b maxλL(w,b,λ) s.t. λi0
y i ( w T x i + b ) > 0 y_i(w^Tx_i+b) > 0 yi(wTxi+b)>0时,很容易证明 L L L的最大值是正无穷。当 y i ( w T x i + b ) ≤ 0 y_i(w^Tx_i+b) \le 0 yi(wTxi+b)0时, L L L的最大值是在 λ \lambda λ取0时,整体等于$\frac 1 2 w^Tw $。

我们可以证明 m i n   m a x   L = m a x   m i n   L min \ max \ L = max \ min \ L min max L=max min L,此处省略。这个被称为强对偶关系。

我们将上面的原问题转化成对偶问题如下,
m a x λ   m i n w , b   L ( w , b , λ )   s . t .   λ i ≥ 0 max_{\lambda}\ min_{w, b} \ L(w,b,\lambda) \ s.t. \ \lambda_i \ge 0 maxλ minw,b L(w,b,λ) s.t. λi0
进行求导,
m i n w , b   L ( w , b , λ ) ∂ L ∂ b = ∂ [ ∑ i = 1 M λ i − ∑ i = 1 M λ i y i ( w T x i + b ) ] ∂ b = 0 解 得 ∑ i = 1 M λ i y i = 0 将 其 代 入 L L ( w , b , λ ) = 1 2 w T w + ∑ i = 1 M λ i − ∑ i = 1 M λ i y i w T x i ∂ L ∂ w = 0 w ∗ = ∑ i = 1 M λ i y i w T x i 将 其 代 入 L L ( w , b , λ ) = 1 2 ( ∑ j = 1 M λ j y j w T x j ) T ( ∑ j = 1 M λ j y j w T x j ) + ∑ i = 1 M λ i − ∑ i = 1 M λ i y i ( ∑ j = 1 M λ j y j w T x j ) T x i = − 1 2 ( ∑ i = 1 M ∑ j = 1 M λ i λ j y i y j x i x j ) + ∑ i = 1 M λ i min_{w, b} \ L(w,b,\lambda) \\\\ \frac{\partial L} {\partial b} = \frac{\partial [\sum_{i=1}^M \lambda_i - \sum_{i=1}^M \lambda_i y_i(w^Tx_i+b)]} {\partial b} = 0\\\\ 解得\sum_{i=1}^M \lambda_i y_i= 0 \\\\ 将其代入 L \\\\ L(w, b, \lambda) = \frac 1 2 w^Tw + \sum_{i=1}^M \lambda_i - \sum_{i=1}^M \lambda_i y_i w^T x_i \\\\ \frac{\partial L} {\partial w} = 0 \\\\ w^* = \sum_{i=1}^M \lambda_i y_i w^T x_i \\\\ 将其代入 L \\\\ L(w, b, \lambda) \\\\ = \frac 1 2 (\sum_{j=1}^M \lambda_j y_j w^T x_j)^T(\sum_{j=1}^M \lambda_j y_j w^T x_j) + \sum_{i=1}^M \lambda_i - \sum_{i=1}^M \lambda_i y_i (\sum_{j=1}^M \lambda_j y_j w^T x_j)^T x_i \\\\ = -\frac 1 2 (\sum_{i=1}^M \sum_{j=1}^M \lambda_i \lambda_j y_i y_j x_i x_j) + \sum_{i=1}^M \lambda_i minw,b L(w,b,λ)bL=b[i=1Mλii=1Mλiyi(wTxi+b)]=0i=1Mλiyi=0LL(w,b,λ)=21wTw+i=1Mλii=1MλiyiwTxiwL=0w=i=1MλiyiwTxiLL(w,b,λ)=21(j=1MλjyjwTxj)T(j=1MλjyjwTxj)+i=1Mλii=1Mλiyi(j=1MλjyjwTxj)Txi=21(i=1Mj=1Mλiλjyiyjxixj)+i=1Mλi

从而,我们将问题再次进行了转换,我的目标是
m i n λ   1 2 ( ∑ i = 1 M ∑ j = 1 M λ i λ j y i y j x i x j ) − ∑ i = 1 M λ i λ i ≥ 0 ∑ i = 1 M λ i y i = 0 min_{\lambda} \ \frac 1 2 (\sum_{i=1}^M \sum_{j=1}^M \lambda_i \lambda_j y_i y_j x_i x_j) - \sum_{i=1}^M \lambda_i \\\\ \lambda_i \ge 0 \\\\ \sum_{i=1}^M \lambda_i y_i = 0 minλ 21(i=1Mj=1Mλiλjyiyjxixj)i=1Mλiλi0i=1Mλiyi=0
因为我们的原问题和对偶问题具有强对偶关系,我们通过KKT条件
∂ L ∂ w = 0 ∂ L ∂ b = 0 ∂ L ∂ λ = 0 λ i ( 1 − y i ( w T x i + b ) ) = 0 λ i ≥ 0 1 − y i ( w T x i + b ) ≤ 0 \frac {\partial L} {\partial w} = 0 \\\\ \frac {\partial L} {\partial b} = 0 \\\\ \frac {\partial L} {\partial \lambda} = 0 \\\\ \lambda_i(1-y_i(w^Tx_i+b)) = 0 \\\\ \lambda_i \ge 0 \\\\ 1-y_i(w^Tx_i+b) \le 0 wL=0bL=0λL=0λi(1yi(wTxi+b))=0λi01yi(wTxi+b)0
可以得到最优解,

w ∗ = ∑ i = 1 M λ i y i x i w^* = \sum_{i=1}^M \lambda_i y_i x_i w=i=1Mλiyixi

我们还需要代入一个处于边界上的点 ( x k , y k ) (x_k, y_k) (xk,yk)满足$ 1-y_k(w^Tx_k+b) = 0$,再求解偏置
1 − y k ( w T x k + b ) = 0 y k ( w T x k + b ) = 1 y k 2 ( w T x k + b ) = y k ( w T x k + b ) = y k b ∗ = y k − w T x k b ∗ = y k − ∑ i = 1 M λ i y i x i T x k 1 - y_k(w^Tx_k+b) = 0 \\\\ y_k(w^Tx_k+b) = 1 \\\\ y_k^2(w^Tx_k+b) = y_k \\\\ (w^Tx_k+b) = y_k \\\\ b^* = y_k - w^Tx_k \\\\ b^* = y_k - \sum_{i=1}^M \lambda_i y_i x_i^T x_k 1yk(wTxk+b)=0yk(wTxk+b)=1yk2(wTxk+b)=yk(wTxk+b)=ykb=ykwTxkb=yki=1MλiyixiTxk
软间隔SVM允许少量错误。

L ( w , b ) = m i n 1 2 w T w + l o s s L(w, b) = min \frac 1 2 w^Tw + loss L(w,b)=min21wTw+loss

我们可以将后面额外的损失定义为0-1 loss,更常用的是hinge loss。

那么,我们可以重新定义损失函数为
L ( w , b ) = m i n w , b 1 2 w T w + C ∗ ∑ i = 1 M m a x ( 0 , 1 − y i ( w T x i + b ) ) 1 − y i ( w T x i + b ) ≤ 0 L(w,b) = min_{w,b} \frac 1 2 w^Tw + C*\sum_{i=1}^M max(0, 1-y_i(w^Tx_i+b)) \\\\ 1-y_i(w^Tx_i+b) \le 0 L(w,b)=minw,b21wTw+Ci=1Mmax(0,1yi(wTxi+b))1yi(wTxi+b)0
C C C起到了一个正则化的作用。

适用场景

普遍适用。

优点

  1. 边界只由少数的支持向量所决定,避免维度灾难
  2. 可解释性好
  3. 对离群数据敏感度较小,鲁棒性高

缺点

  1. 对大规模训练样本而言,消耗大量内存和运算时间
  2. 解决多分类问题时,需要多组SVM模型

核方法

对应英文是Kernel Method。核方法用于解决有数据集类别之间的边界压根不是线性的。对于原始的输入空间 X \mathcal X X,使用 ϕ ( x ) \phi(x) ϕ(x)进行非线性转换成为特征空间 Z \mathcal Z Z,从而达到线性可分的状态。理论基础是Cover Theorem,即高维空间比低维空间更易线性可分。

ϕ ( x ) \phi(x) ϕ(x)维度非常高的情况下,求 ϕ ( x i ) \phi(x_i) ϕ(xi)非常困难。我们发现有一种核技巧(kernel trick),可以在不需要单独计算 ϕ ( x i ) \phi(x_i) ϕ(xi) ϕ ( x j ) \phi(x_j) ϕ(xj)的前提下得到 ϕ ( x i ) T ϕ ( x j ) \phi(x_i)^T\phi(x_j) ϕ(xi)Tϕ(xj)。毕竟后者才是我们 L L L中需要得到的值。

K ( x i , x j ) = ϕ ( x i ) T ϕ ( x j ) K(x_i, x_j) = \phi(x_i)^T\phi(x_j) K(xi,xj)=ϕ(xi)Tϕ(xj)

一般情况下,我们的核函数 K K K指的是正定核函数。有函数 K K K可以做到从 X ∗ X \mathcal X * \mathcal X XX R R R的映射, ∃ Φ ∈ H \exist \Phi \in \mathcal H ΦH,使得 K ( x i , x j ) = ϕ ( x i ) T ϕ ( x j ) K(x_i, x_j) = \phi(x_i)^T\phi(x_j) K(xi,xj)=ϕ(xi)Tϕ(xj),那么称 K K K为正定核函数。我们再介绍一下希尔伯特空间 H \mathcal H H。它是完备的(对极限是封闭的),可能是无限维的,被赋予内积运算的一个线性空间。

正定核函数性质

  1. 对称性,即 K ( x i , x j ) = K ( x j , x i ) K(x_i, x_j) = K(x_j, x_i) K(xi,xj)=K(xj,xi)
  2. 正定性,即任取 X \mathcal X X中的M个元素,从 x 1 x_1 x1 x M x_M xM,对应的Gram matrix是半正定的

我们来证明正定核函数的性质。先证明必要性。

已知 K ( x i , x j ) = < ϕ ( x i ) , ϕ ( x j ) > K(x_i, x_j) = <\phi(x_i),\phi(x_j)> K(xi,xj)=<ϕ(xi),ϕ(xj)>,要证明其对称性和正定性。

对称性可以由内积的对称性证明。我们现在想要证明对应的Gram matrix是半正定的。令Gram matrix是 G = [ K ( x i , x j ) ] G = [K(x_i, x_j)] G=[K(xi,xj)]。所以需要证明对于任意 α ∈ R M \alpha \in R^M αRM,有 α T G α ≥ 0 \alpha^T G \alpha \ge 0 αTGα0
α T G α = ∑ i = 1 M ∑ j = 1 M α i α j K ( x i , x j ) = ∑ i = 1 M ∑ j = 1 M α i α j ϕ ( x i ) T ϕ ( x j ) = ∑ i = 1 M α i ϕ ( x i ) T ∑ j = 1 M α j ϕ ( x j ) = [ ∑ i = 1 M α i ϕ ( x i ) ] T [ ∑ j = 1 M α j ϕ ( x j ) ] = ∣ ∣ ∑ i = 1 M α i ϕ ( x i ) ∣ ∣ 2 ≥ 0 \alpha^T G \alpha \\\\ = \sum_{i=1}^M \sum_{j=1}^M \alpha_i \alpha_j K(x_i, x_j) \\\\ = \sum_{i=1}^M \sum_{j=1}^M \alpha_i \alpha_j \phi(x_i)^T\phi(x_j) \\\\ = \sum_{i=1}^M \alpha_i \phi(x_i)^T \sum_{j=1}^M \alpha_j \phi(x_j) \\\\ = [\sum_{i=1}^M \alpha_i \phi(x_i)]^T [\sum_{j=1}^M \alpha_j \phi(x_j)] \\\\ = ||\sum_{i=1}^M \alpha_i \phi(x_i)||^2 \ge 0 αTGα=i=1Mj=1MαiαjK(xi,xj)=i=1Mj=1Mαiαjϕ(xi)Tϕ(xj)=i=1Mαiϕ(xi)Tj=1Mαjϕ(xj)=[i=1Mαiϕ(xi)]T[j=1Mαjϕ(xj)]=i=1Mαiϕ(xi)20
我们就证明了Gram Matrix是半正定的。

约束优化

我们定义原问题的最优解为 d ∗ d^* d,对偶问题的最优解是 p ∗ p^* p

定义原问题 m i n x f ( x ) min_x f(x) minxf(x),有N个不等式约束, n i ( x ) ≤ 0 n_i(x) \le 0 ni(x)0,有M个等式约束, m i ( x ) = 0 m_i(x) = 0 mi(x)=0

转换后的原问题的无约束形式为 m i n x   m a x λ , η = L ( x , λ , η ) min_x \ max_{\lambda, \eta} = L(x, \lambda, \eta) minx maxλ,η=L(x,λ,η) λ i ≥ 0 \lambda_i \ge 0 λi0

下面是转换的说明。

拉格朗日函数:

L ( x , λ , η ) = f ( x ) + ∑ j = 1 N λ j n j + ∑ i = 1 M m i η i L(x, \lambda, \eta) = f(x) + \sum_{j=1}^N \lambda_j n_j + \sum_{i=1}^M m_i \eta_i L(x,λ,η)=f(x)+j=1Nλjnj+i=1Mmiηi

如果 x x x违反了不等式约束,那么 m a x λ L max_\lambda L maxλL一定会趋近于正无穷。所以在其前面加上一个 m i n min min相当于进行了一次过滤,将所有不满足不等式约束的 x x x都过滤掉了。

弱对偶

我们接着证明原问题和对偶问题是相等的。对偶问题是 m a x x   m i n λ , η = L ( x , λ , η ) max_x \ min_{\lambda, \eta} = L(x, \lambda, \eta) maxx minλ,η=L(x,λ,η) λ i ≥ 0 \lambda_i \ge 0 λi0

我们先证明弱对偶性,原问题的值会大于等于对偶问题,即 m i n   m a x   L ≥ m a x   m i n   L min \ max \ L \ge max \ min \ L min max Lmax min L
m i n x   L ( x , λ , η ) ≤ L ( x , λ , η ) ≤ m a x λ , η   L ( x , λ , η ) A ( λ , η ) ≤ B ( x ) A ( λ , η ) ≤ m i n   B ( x ) m a x   A ( λ , η ) ≤ m i n   B ( x ) min_x \ L(x, \lambda, \eta) \le L(x, \lambda, \eta) \le max_{\lambda, \eta} \ L(x, \lambda, \eta) \\\\ A(\lambda, \eta) \le B(x) \\\\ A(\lambda, \eta) \le min \ B(x) \\\\ max \ A(\lambda, \eta) \le min \ B(x) \\\\ minx L(x,λ,η)L(x,λ,η)maxλ,η L(x,λ,η)A(λ,η)B(x)A(λ,η)min B(x)max A(λ,η)min B(x)

Slater Condition

存在一点 x ∈ r e l i n t   D x \in relint \ D xrelint D,使得对于所有的 n i ( x ) < 0 n_i(x) < 0 ni(x)<0。relint代表相对内部。

对于大多数凸优化问题,slater条件成立。

放松的slater条件是指,如果N中有K个仿射函数,那么只需要校验其余的函数满足slater条件即可。

通过弱对偶和Slater Condition可以推出强对偶关系。强对偶关系是下面的KKT条件的充要条件。

库恩塔克条件

通常被称为KKT条件。

可行条件

有N个不等式约束, n i ( x ∗ ) ≤ 0 n_i(x^*) \le 0 ni(x)0,有M个等式约束, m i ( x ∗ ) = 0 m_i(x^*) = 0 mi(x)=0 λ ∗ = 0 \lambda^* = 0 λ=0

互补松弛条件

λ j ∗ n j = 0 \lambda_j^* n_j = 0 λjnj=0
d ∗ = m a x λ , η g ( λ , η ) = g ( λ ∗ , η ∗ ) = m i n x L ( x , λ ∗ , η ∗ ) = L ( x ∗ , λ ∗ , η ∗ ) = f ( x ∗ ) + ∑ j = 1 N λ j ∗ n j + ∑ i = 1 M m i ∗ η i = f ( x ∗ ) + ∑ j = 1 N λ j ∗ n j = f ( x ∗ ) = p ∗ d^* = max_{\lambda, \eta} g(\lambda, \eta) \\\\ = g(\lambda^*, \eta^*) \\\\ = min_x L(x, \lambda^*, \eta^*) \\\\ = L(x^*, \lambda^*, \eta^*) \\\\ = f(x^*) + \sum_{j=1}^N \lambda_j^* n_j + \sum_{i=1}^M m_i^* \eta_i \\\\ = f(x^*) + \sum_{j=1}^N \lambda_j^* n_j \\\\ = f(x^*) \\\\ = p^* d=maxλ,ηg(λ,η)=g(λ,η)=minxL(x,λ,η)=L(x,λ,η)=f(x)+j=1Nλjnj+i=1Mmiηi=f(x)+j=1Nλjnj=f(x)=p

梯度为0

m i n x L ( x , λ ∗ , η ∗ ) = L ( x ∗ , λ ∗ , η ∗ ) min_x L(x, \lambda^*, \eta^*) \\\\ = L(x^*, \lambda^*, \eta^*) \\\\ minxL(x,λ,η)=L(x,λ,η)

Reference

猜你喜欢

转载自blog.csdn.net/qq_40136685/article/details/109141883