SVM原理详解

Step 1: 求解支持平面的最大距离

只考虑线性可分的情况,分割超平面一边的数据点所对应的y全是-1 ,另一边所对应的y全是1:
分割超平面
这个超平面可以用分类函数 f ( x ) = w T x + b f(x)=w^Tx+b f(x)=wTx+b表示,当f(x) 等于0的时候,x便是位于超平面上的点,而f(x)大于0的点对应 y=1 的数据点,f(x)小于0的点对应y=-1的点,如下图所示(虚线间隔边界上的点就是支持向量):
fx
在超平面f(x)确定的情况下,|w*x+b|能够表示点x到距离超平面的远近,而通过观察w*x+b的符号与类标记y的符号是否一致可判断分类是否正确,所以,可以用(y*(w*x+b))的正负性来判定或表示分类的正确性。于此,我们便引出了函数间隔的概念。
函数间隔(functional margin) γ ^ = y f ( x ) = y ( w T x + b ) \hat \gamma=yf(x)=y(w^Tx+b) γ^=yf(x)=y(wTx+b)

但这样定义的函数间隔有问题,即如果成比例的改变w和b(如将它们改成2w和2b),则函数间隔的值f(x)却变成了原来的2倍(虽然此时超平面没有改变),所以只有函数间隔还远远不够。由此引出了几何间隔的概念。
几何间隔(geometrical margin) γ ^ = y f ( x ) ∣ ∣ w ∣ ∣ = y w T x + b ∣ ∣ w ∣ ∣ \hat \gamma=y\frac{f(x)}{||w||}=y\frac{w^Tx+b}{||w||} γ^=ywf(x)=ywwTx+b

几何间隔就是函数间隔除以||w||,而且函数间隔y*(wx+b) = y*f(x)实际上就是|f(x)|,只是人为定义的一个间隔度量,而几何间隔|f(x)|/||w||才是直观上的点到超平面的距离。

在这里,数据集所有样本点(xi,yi)到超平面的几何间隔最小值则是超平面关于训练数据集的几何间隔 γ ^ = m i n   γ i , ( i = 1 , 2 , . . . n ) \hat \gamma=min \ \gamma_i, (i=1,2,...n) γ^=min γi,(i=1,2,...n),我们要做的就是找到两个超平面,使得这两个超平面之间的距离最大。

假设目前还未引入“Kernel”,只考虑线性可分的情况。存在两个支持平面 γ 1 \gamma_1 γ1 γ 2 \gamma_2 γ2
{ γ 1 : w T x + b = 1 γ 2 : w T x + b = − 1 \begin{cases} \gamma_1 : w^Tx+b=1\\ \gamma_2 : w^Tx+b=-1 \end{cases} {γ1:wTx+b=1γ2:wTx+b=1

那么就是要求解支持平面的最大距离为:

m a x ( d = 2 ∣ ∣ w ∣ ∣ ) max(d=\frac{2}{||w||}) max(d=w2),并且受限于: { γ 1 : w T x ( i ) + b ≥ 1 , i f   y ( i ) = 1 γ 2 : w T x ( i ) + b ≤ − 1 , i f   y ( i ) = − 1 \begin{cases}\gamma_1 : w^Tx^{(i)}+b \geq 1, & if \ y^{(i)}=1\\ \gamma_2 : w^Tx^{(i)}+b \leq -1, & if \ y^{(i)}=-1\end{cases} {γ1:wTx(i)+b1,γ2:wTx(i)+b1,if y(i)=1if y(i)=1

注意这里的1和-1其实是为了化简而这样和分类类别对应取值的,不影响最终的结果。

Step 2: 将Step 1中求解支持平面最大距离的问题转化为凸优化问题

非凸函数,我们无法获得全局最优解的,只能获得局部最优解。

于是上面的求解问题转化为:

m i n w , b ( ∣ ∣ w ∣ ∣ 2 2 ) \mathop{min}\limits_{w,b} (\frac{||w||^2}{2}) w,bmin(2w2),并且受限于 y ( i ) ( w T x ( i ) + b ) ≥ 1 , i = 1 , 2 , . . . n y^{(i)}(w^Tx^{(i)}+b) \geq 1,i=1,2,...n y(i)(wTx(i)+b)1,i=1,2,...n

Step 3: 转化为拉格朗日函数

求Step 2中的凸优化问题时,可以利用拉格朗日(Lagrange)乘子法将有约束优化问题转换为无约束优化问题。转换为如下式子(必须满足KKT条件):

L ( w , b , α ) = 1 2 ∣ ∣ w ∣ ∣ 2 + ∑ i = 1 n α i ( 1 − y ( i ) ( w T x ( i ) + b ) ) ,   α i > 0   ( 3.1 ) L(w,b,\alpha)=\frac{1}{2}||w||^2+\sum_{i=1}^n \alpha_i(1-y^{(i)}(w^Tx^{(i)}+b)), \ \alpha_i>0 \ (3.1) L(w,b,α)=21w2+i=1nαi(1y(i)(wTx(i)+b)), αi>0 (3.1)

说一下KKT条件:
设目标函数f(x),不等式约束为g(x),有的教程还会添加上等式约束条件h(x)。此时的约束优化问题描述如下:
st
则我们定义不等式约束下的拉格朗日函数L,则L表达式为:
在这里插入图片描述
求解上面的问题,我们同样可以使用等式约束条件的求解思路,对所有的参数进行求导,但是对于求解出的最优解,必须满足KKT条件(Karush-Kuhn-Tucker ):

(1) L(x, λ \lambda λ, v v v)对x求导为零;
(2)h(x) =0;
(3) λ \lambda λ*f(x) = 0;

求取这些等式之后就能得到候选最优值。其中第三个式子非常有趣,因为f(x)<=0,如果要满足这个等式,必须 λ = 0 \lambda=0 λ=0或者f(x)=0。KKT介绍完毕。

继续说我们之前要求的是 m i n w , b ( 1 2 ∣ ∣ w ∣ ∣ 2 ) \mathop{min}\limits_{w,b}(\frac{1}{2}||w||^2) w,bmin(21w2),实际就是要求 m i n w , b ( m a x α   L ( w , b , α ) ) \mathop{min}\limits_{w,b}(\mathop{max}\limits_{\alpha} \ L(w,b,\alpha)) w,bmin(αmax L(w,b,α)),为什么呢?

重点】首先考虑如下两种情况:

  • 满足受限条件,也就是 1 − y ( i ) ( w T x ( i ) + b ) ≤ 0 1-y^{(i)}(w^Tx^{(i)}+b) \leq 0 1y(i)(wTx(i)+b)0,此时 α i ( 1 − y ( i ) ( w T x ( i ) + b ) ) ≤ 0 \alpha_i(1-y^{(i)}(w^Tx^{(i)}+b)) \leq0 αi(1y(i)(wTx(i)+b))0,于是 m a x   L ( w , b , α ) = 1 2 ∣ ∣ w ∣ ∣ 2 max \ L(w,b,\alpha)=\frac{1}{2}||w||^2 max L(w,b,α)=21w2
  • 不满足受限条件,也就是 1 − y ( i ) ( w T x ( i ) + b ) ≥ 0 1-y^{(i)}(w^Tx^{(i)}+b) \geq 0 1y(i)(wTx(i)+b)0,此时 α i ( 1 − y ( i ) ( w T x ( i ) + b ) ) ≥ 0 \alpha_i(1-y^{(i)}(w^Tx^{(i)}+b)) \geq0 αi(1y(i)(wTx(i)+b))0,于是 m a x   L ( w , b , α ) = ∞ max \ L(w,b,\alpha)=\infty max L(w,b,α)=

也就是 m a x   L ( w , b , α ) max \ L(w,b,\alpha) max L(w,b,α)只有 ∞ \infty 1 2 ∣ ∣ w ∣ ∣ 2 \frac{1}{2}||w||^2 21w2这两种情况,于是 m i n ( m a x   L ( w , b , α ) ) = m i n ( ∞ , 1 2 ∣ ∣ w ∣ ∣ 2 ) = m i n ( 1 2 ∣ ∣ w ∣ ∣ 2 ) min(max \ L(w,b,\alpha))=min(\infty,\frac{1}{2}||w||^2)=min(\frac{1}{2}||w||^2) min(max L(w,b,α))=min(,21w2)=min(21w2)

Step 4: 将Step 3中问题化为其对偶问题

m i n w , b ( m a x α   L ( w , b , α ) ) = m a x α ( m i n w , b   L ( w , b , α ) ) \mathop{min}\limits_{w,b}(\mathop{max}\limits_{\alpha} \ L(w,b,\alpha))=\mathop{max}\limits_{\alpha} (\mathop{min}\limits_{w,b} \ L(w,b,\alpha)) w,bmin(αmax L(w,b,α))=αmax(w,bmin L(w,b,α))

于是就是要求:

m a x α ( m i n w , b   1 2 ∣ ∣ w ∣ ∣ 2 + ∑ i = 1 n α i ( 1 − y ( i ) ( w T x ( i ) + b ) ) ) ,   s . t .   α i > 0   ( 4.1 ) \mathop{max}\limits_{\alpha} (\mathop{min}\limits_{w,b} \ \frac{1}{2}||w||^2+\sum_{i=1}^n \alpha_i(1-y^{(i)}(w^Tx^{(i)}+b))),\ s.t.\ \alpha_i>0 \ (4.1) αmax(w,bmin 21w2+i=1nαi(1y(i)(wTx(i)+b))), s.t. αi>0 (4.1)

(1)这里需要先求min,再求max,
w , b w,b w,b 分别求偏导可得: { ∂ L ∂ w = 0 ⇒ w = ∑ i = 1 n α i y ( i ) x ( i ) ∂ L ∂ b = 0 ⇒ ∑ i = 1 n α i y ( i ) = 0 \begin{cases} \frac{\partial L}{\partial w}=0 \Rightarrow w=\sum\limits_{i=1}^n \alpha_iy^{(i)}x^{(i)}\\ \frac{\partial L}{\partial b}=0 \Rightarrow \sum\limits_{i=1}^n \alpha_iy^{(i)}=0 \\ \end{cases} wL=0w=i=1nαiy(i)x(i)bL=0i=1nαiy(i)=0 (4.2)

这样就求到了 w , b w,b w,b的极值的情况。再带回公式(3.1),并公式(4.1),可以得到:
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 L(w,b,\alpha)=-\frac{1}{2}\sum_{i=1}^n \sum_{j=1}^n \alpha_i \alpha_j y_i y_j (x_i \cdot x_j)+\sum_{i=1}^n \alpha_i L(w,b,α)=21i=1nj=1nαiαjyiyj(xixj)+i=1nαi

也就是 m i n 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 \mathop{min}\limits_{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 (x_i \cdot x_j)+\sum_{i=1}^n \alpha_i w,bmin L(w,b,α)=21i=1nj=1nαiαjyiyj(xixj)+i=1nαi

(2)求 m i n w , b   L ( w , b , α ) \mathop{min}\limits_{w,b} \ L(w,b,\alpha) w,bmin L(w,b,α)关于 α \alpha α的极大值,就是我们要求的对偶问题:
m a x α   − 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 \begin{array}{ll} & \mathop{max}\limits_{\alpha} \ -\frac{1}{2}\sum_{i=1}^n \sum_{j=1}^n \alpha_i \alpha_j y_i y_j (x_i \cdot x_j)+\sum_{i=1}^n \alpha_i \\ & s.t. \ \sum\limits_{i=1}^n \alpha_iy^{(i)}=0 \\ & \alpha_i\geq0, i=1,2,...,n\\ \end{array} αmax 21i=1nj=1nαiαjyiyj(xixj)+i=1nαis.t. i=1nαiy(i)=0αi0,i=1,2,...,n

Step 5: 利用Sequential Minimal Optimization (SMO)算法求解 Step 4中的方程

上面这个不等式约束问题可以用二次规划的方法解决。也可以用
SMO算法进行求解。

SMO(Sequential Minimal Optimization),序列最小优化算法,其核心思想非常简单:每次只优化一个参数,其他参数先固定住,仅求当前这个优化参数的极值

假设求得了最优解 α ∗ \alpha^* α,再通过公式(4.2)求出 w ∗ w^* w,然后任意选择一个支持向量代入 y ( w T x + b ) = 1 y(w^Tx+b)=1 y(wTx+b)=1求出 b ∗ b^* b,或者使用全部支持向量求出b再累加再求平均。

于是可以得到SVM的分类决策函数:
f ( x ) = s i g n ( w T + b ) = { − 1 i f ( w T + b ) < 0 0 i f ( w T + b ) = 0 1 i f ( w T + b ) > 0 f(x)=sign(w^T+b)= \begin{cases} & -1&if(w^T+b)<0\\ & 0 &if(w^T+b)=0\\ & 1 &if(w^T+b)>0\\ \end{cases} f(x)=sign(wT+b)=101if(wT+b)<0if(wT+b)=0if(wT+b)>0

Step 6: 将松弛变量和惩罚函数引入Step 2中得到的凸优化问题

在实际应用中,完全线性可分的样本是很少的,为了使SVM仍能生效,引入了软间隔,也就是允许部分样本点不满足约束条件: 1 − y ( i ) ( w T x ( i ) + b ) ≤ 0 , i = 1 , 2 , . . . n 1-y^{(i)}(w^Tx^{(i)}+b) \leq 0,i=1,2,...n 1y(i)(wTx(i)+b)0,i=1,2,...n

为了度量这个间隔软到何种程度,我们为每个样本引入一个松弛变量 ξ i \xi_i ξi
,令 x i i ≥ 0 xi_i \geq 0 xii0,且 1 − y ( i ) ( w T x ( i ) + b ) − ξ i ≤ 0 1-y^{(i)}(w^Tx^{(i)}+b) - \xi_i \leq 0 1y(i)(wTx(i)+b)ξi0。增加软间隔后我们的优化目标变成了:
soft
还是和之前的解决方法一样。转化后的对偶问题为:
m a x α   − 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 C ≥ α i ≥ 0 , i = 1 , 2 , . . . , n \begin{array}{ll} & \mathop{max}\limits_{\alpha} \ -\frac{1}{2}\sum_{i=1}^n \sum_{j=1}^n \alpha_i \alpha_j y_i y_j (x_i \cdot x_j)+\sum_{i=1}^n \alpha_i \\ & s.t. \ \sum\limits_{i=1}^n \alpha_iy^{(i)}=0 \\ & C\geq\alpha_i\geq0, i=1,2,...,n\\ \end{array} αmax 21i=1nj=1nαiαjyiyj(xixj)+i=1nαis.t. i=1nαiy(i)=0Cαi0,i=1,2,...,n
C为预设的一个常数,可以理解为错误样本的惩罚程度。

Step 7: 将“核函数(Kernel)”引入Step 6的方程中

有时候样本点是完全线性不可分的,可以将二维线性不可分样本映射到高维空间中,让样本点在高维空间线性可分。

我们用 x 表示原来的样本点,用 ϕ ( x ) \phi(x) ϕ(x) 表示 x 映射到特征新的特征空间后到新向量。那么分割超平面可以表示为: f ( x ) = w T ϕ ( x ) + b f(x)=w^T \phi(x)+b f(x)=wTϕ(x)+b

同理,优化问题变为:
m a x α   − 1 2 ∑ i = 1 n ∑ j = 1 n α i α j y i y j ( ϕ ( x i ) T ⋅ ϕ ( x j ) ) + ∑ i = 1 n α i s . t .   ∑ i = 1 n α i y ( i ) = 0 C ≥ α i ≥ 0 , i = 1 , 2 , . . . , n \begin{array}{ll} & \mathop{max}\limits_{\alpha} \ -\frac{1}{2}\sum_{i=1}^n \sum_{j=1}^n \alpha_i \alpha_j y_i y_j ( \phi(x_i)^T \cdot \phi(x_j))+\sum_{i=1}^n \alpha_i \\ & s.t. \ \sum\limits_{i=1}^n \alpha_iy^{(i)}=0 \\ & C\geq\alpha_i\geq0, i=1,2,...,n\\ \end{array} αmax 21i=1nj=1nαiαjyiyj(ϕ(xi)Tϕ(xj))+i=1nαis.t. i=1nαiy(i)=0Cαi0,i=1,2,...,n

基于Mercer定理,存在核函数 K K K,高维空间的内积可用核函数的结果来代替。也就是:
K ( x i , y i ) = ( ϕ ( x i ) ) T ϕ ( y i ) K(x_i , y_i)=(\phi(x_i))^T \phi(y_i) K(xi,yi)=(ϕ(xi))Tϕ(yi)

即将低维空间的数据代入核函数 K 中计算的值,可以代替数据映射到高维空间后的内积。

于是引入核函数之后的对偶问题变为:
m a x α   − 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 C ≥ α i ≥ 0 , i = 1 , 2 , . . . , n \begin{array}{ll} & \mathop{max}\limits_{\alpha} \ -\frac{1}{2}\sum_{i=1}^n \sum_{j=1}^n \alpha_i \alpha_j y_i y_j K( x_i, x_j)+\sum_{i=1}^n \alpha_i \\ & s.t. \ \sum\limits_{i=1}^n \alpha_iy^{(i)}=0 \\ & C\geq\alpha_i\geq0, i=1,2,...,n\\ \end{array} αmax 21i=1nj=1nαiαjyiyjK(xi,xj)+i=1nαis.t. i=1nαiy(i)=0Cαi0,i=1,2,...,n

常用的核函数:
核函数


参考:
【1】从零推导支持向量机(SVM)
【2】支持向量机 SVM(非常详细)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值