SVM算法的总结--从原理理解SVM算法

SVM算法总结

本文是看了几个博客后,写的总结笔记。

SVM由线性分类开始

给定一个训练样本集 D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x n , y m ) } , y ∈ { − 1 , 1 } D=\{(x_1,y_1),(x_2,y_2),...,(x_n,y_m)\}, y \in \{-1,1\} D={ (x1,y1),(x2,y2),...,(xn,ym)},y{ 1,1}.
线性分类器基于训练样本 D D D在二维空间中找到一个超平面来分开二类样本,显然这样的超平面会有很多。
在这里插入图片描述

我们可以直观的看到,这更红色线代表的超平面抗扰动性最好。这个超平面离直线两边的数据的间隔最大,对训练集的数据的局限性或噪声有最大的容忍能力。

在这里,这个超平面可以用函数 f ( x ) = w T x + b f(x)=w^Tx+b f(x)=wTx+b来表示。当 f ( x ) f(x) f(x)等于0的时候, x x x便是位于超平面上的点,而 f ( x ) f(x) f(x)大于0的点对应 y = 1 y=1 y=1的类别点, f ( x ) f(x) f(x)小于0的点对应 y = − 1 y=-1 y=1的类别点。

为了计算的方便,我们不妨令:
{ w T x i + b ≥ 1 , y i = + 1 ; w T x i + b ≤ − 1 , y i = − 1 ; \begin{cases} w^Tx_i + b \geq 1, \qquad &y_i =+1; \\ w^Tx_i + b \leq -1, \qquad &y_i =-1; \end{cases} { wTxi+b1,wTxi+b1,yi=+1;yi=1;

接下来,我们可以计算平面外的一个点到平面的距离,假设 x ′ x' x是平面 w T x + b = 0 w^Tx+b=0 wTx+b=0上的一个点, x x x是平面外的一个点, w w w是平面的法向量,那么点 x x x到平面的距离就是点 x x x与平面上的任意一点的连线,在法向量 w w w上的投影的长度:
d = ∣ ( x − x ′ ) cos ⁡ ( θ ) ∣ = ∣ ∣ ∣ x − x ′ ∣ ∣ ⋅ ( x − x ′ ) w ∣ ∣ x − x ′ ∣ ∣ ⋅ ∣ ∣ w ∣ ∣ ∣ = 1 ∣ ∣ w ∣ ∣ ∣ w T x − w T x ′ ∣ d = |(x-x')\cos(\theta)| = | ||x-x'||\cdot \frac{(x-x')w}{||x-x'||\cdot ||w||}| = \frac{1}{||w||}|w^Tx - w^Tx'| d=(xx)cos(θ)=xxxxw(xx)w=w1wTxwTx

其中,点 x ′ x' x在平面上,所以可以得到 w T x ′ + b = 0 w^Tx' +b =0 wTx+b=0,点 x x x是正类中距离平面最近的点,即满足 w T x + b = 1 w^Tx+b=1 wTx+b=1,代入上式可得:
d = 1 ∣ ∣ w ∣ ∣ 1 − b − ( − b ) = 1 ∣ ∣ w ∣ ∣ d=\frac{1}{||w||}1-b-(-b) = \frac{1}{||w||} d=w11b(b)=w1
这只是正类中距离超平面的最短距离,在负类中,同样存在着一个最短距离,所以最后的间隔就是:
d = 2 ∣ ∣ w ∣ ∣ d=\frac{2}{||w||} d=w2

至此,我们求到了间隔,SVM的思想就是使得间隔最大化,也就是:
m a x w , b 2 ∣ ∣ w ∣ ∣ s . t . y y i ( w T x i + b ) ≥ 1 ( i = 1 , 2 , . . . , m ) \begin{aligned} &max_{w,b} \frac{2}{||w||} \\ &s.t.y \quad y_i(w^Tx_i +b) \geq 1 \quad(i=1,2,...,m) \end{aligned} maxw,bw2s.t.yyi(wTxi+b)1(i=1,2,...,m)
显然最大化 2 ∣ ∣ w ∣ ∣ \frac{2}{||w||} w2,也就是最小化 ∣ ∣ w ∣ ∣ ||w|| w,为了计算方便,可以将上式转换我:
m i n w , b 1 2 ∣ ∣ w ∣ ∣ 2 , s . t . y y i ( w T x i + b ) ≥ 1 ( i = 1 , 2 , . . . , m ) \begin{aligned} &min_{w,b} \frac{1}{2}||w||^2,\\ &s.t.y \quad y_i(w^Tx_i +b) \geq 1 \quad (i=1,2,...,m) \end{aligned} minw,b21w2,s.t.yyi(wTxi+b)1(i=1,2,...,m)
这也就是支持向量机的基本型。

对偶问题

我们已经得到了支持向量机的基本形式了:
m i n w , b 1 2 ∣ ∣ w ∣ ∣ 2 , s . t . y y i ( w T x i + b ) ≥ 1 ( i = 1 , 2 , . . . , m ) \begin{aligned} &min_{w,b} \frac{1}{2}||w||^2,\\ &s.t.y \quad y_i(w^Tx_i +b) \geq 1 \quad (i=1,2,...,m) \end{aligned} minw,b21w2,s.t.yyi(wTxi+b)1(i=1,2,...,m)
这个公式其实就是一个凸二次规划问题.

  • 目标函数和约束条件都是变量的线性函数,叫做线性规划问题。
  • 目标函数为变量的二次函数,约束条件为变量的线性函数,叫做二次规划问题。
  • 目标函数和约束条件都为非线性函数,叫做非线性规划问题。
  • 凸优化: x ∈ R n x \in R^n xRn为一凸集, f : X → R f:X \rightarrow R f:XR为一凸函数,凸优化就是要找出一点 x ∗ ∈ X x^* \in X xX,使得任意 x ∈ X x \in X xX,都满足 f ( x ∗ ) ≤ f ( x ) f(x^*) \leq f(x) f(x)f(x)。可以想象成给我一个凸函数,我要去找到最低点。

我们可以对上式使用拉格朗日乘子法,得到它的对偶问题。

  • 这就是拉格朗日对偶性,也就是通过使用拉格朗日乘子法,把约束条件写入目标函数中。

具体的拉格朗日函数为:
L ( w , b , α ) = 1 2 ∣ ∣ w ∣ ∣ 2 + ∑ i = 1 m α i ( 1 − y i ( w T x i + b ) ) L(w,b,\alpha) = \frac{1}{2}||w||^2 + \sum_{i=1}^m \alpha_i(1-y_i(w^Tx_i + b)) L(w,b,α)=21w2+i=1mαi(1yi(wTxi+b))

其中 α i ≥ 0 \alpha_i \geq 0 αi0,这样设置 α i \alpha_i αi的原因是因为我们的目标函数是不等式约束,那么要想解这样的二次规划问题,我们选用KKT条件,而KKT条件的一个约束之一就是 α i ≥ 0 \alpha_i \geq 0 αi0,最终我们希望能够通过KKT条件产生原问题的对偶问题。
那么我们现在的目标就是最小化 L ( w , b , α ) L(w,b,\alpha) L(w,b,α)

在这之前,我们先介绍以下拉格朗日对偶以及KKT条件。

拉格朗日对偶以及KKT

拉格朗日等式约束:
m a x f ( x ) s . t . g ( x ) = 0 ⇓ L ( x , λ ) = f ( x ) + λ g ( x ) ⇓ 求 导 : { ∂ L ∂ x = 0 g ( x ) = 0 \begin{aligned} max \quad &f(x) \\ s.t.\quad &g(x) = 0 \\ \dArr \\ L(x,\lambda) &= f(x) + \lambda g(x) \\ \dArr \\ 求导:& \begin{cases} \frac{\partial L}{\partial x} = 0\\ g(x) = 0 \end{cases} \end{aligned} maxs.t.L(x,λ)f(x)g(x)=0=f(x)+λg(x){ xL=0g(x)=0

所以对于等式约束 g ( x ) = 0 g(x)=0 g(x)=0的具体处理方法就是:给约束乘以一个系数加到原命题上,然后求导求出结果。

拉格朗日不等式约束:
m a x f ( x ) s . t . g ( x ) ≥ 0 ⇓ L ( x , λ ) = f ( x ) + λ g ( x ) ⇓ 分 两 种 情 况 : { ∂ L ∂ x = 0 g ( x ) = 0 λ > 0 和 { ∂ L ∂ x = 0 g ( x ) > 0 λ = 0 , 合 并 两 种 情 况 ⇒ { ∂ L ∂ x = 0 g ( x ) ≥ 0 λ ≥ 0 λ g ( x ) = 0 \begin{aligned} max \quad &f(x) \\ s.t. \quad &g(x) \geq 0 \\ \dArr \\ L(x,\lambda) &=f(x) + \lambda g(x) \\ \dArr \\ 分两种情况:\begin{cases} \frac{\partial L}{\partial x} = 0\\ g(x) = 0\\ \lambda > 0 \\ \end{cases} 和\begin{cases} \frac{\partial L}{\partial x} = 0 \\ g(x) > 0\\ \lambda = 0 \\ \end{cases} ,&合并两种情况\rArr \begin{cases} \frac{\partial L}{\partial x} = 0\\ g(x) \geq 0 \\ \lambda \geq 0 \\ \lambda g(x) = 0 \\ \end{cases} \end{aligned} maxs.t.L(x,λ)xL=0g(x)=0λ>0xL=0g(x)>0λ=0,f(x)g(x)0=f(x)+λg(x)xL=0g(x)0λ0λg(x)=0
这个就是不等式约束的情况。

拉格朗日同时出现等式和不等式约束:
m a x f ( x ) s . t . { h i ( x ) = 0 g j ( x ) ≥ 0 ⇓ L ( x , λ ) = f ( x ) + ∑ i λ i h i ( x ) + ∑ j μ j g ( x ) 需 要 满 足 的 条 件 为 ( 也 就 是 K K T 条 件 ) : { ∂ L ∂ x = 0 h i ( x ) = 0 g j ( x ) ≥ 0 μ j ≥ 0 μ j g j ( x ) = 0 \begin{aligned} max \quad &f(x) \\ s.t. \quad &\begin{cases} h_i(x)=0\\ g_j(x) \geq 0 \\ \end{cases} \\ \dArr \\ L(x,\lambda) &= f(x) + \sum_i \lambda_ih_i(x) + \sum_j \mu_j g(x) \\ 需要满足的条件为(也就是KKT条件):&\begin{cases} \frac{\partial L}{\partial x} = 0\\ h_i(x) = 0 \\ g_j(x) \geq 0 \\ \mu_j \geq 0 \\ \mu_j g_j(x) = 0\\ \end{cases} \end{aligned} maxs.t.L(x,

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值