【机器学习】SVM推导

1.相关知识

1.1感知机

感知机由 Rosenlatt 在 1957 年提出,它用来模拟神经细胞的动作和行为。单个神经元细胞可以被视为两种状态:激活为”是”,未激活为“否”。
其学习机是如下函数:
f ( x ) = sign ( w T x ) f(x)=\text{sign}(\mathbf{w}^T\mathbf{x}) f(x)=sign(wTx)

然而,感知机所得到的最终的超平面不一定是唯一的,这往往依赖于其初值和迭代次序的设置,从本质上来讲是因为,感知机仅仅寻求将数据完全正确划分的超平面,而不考虑其他的准则。此外,感知机算法只能处理线性可分的数据,对于线性不可分的问题,算法会反复跌宕无法收敛到准确解。

支持向量机算法的提出,对这两个问题进行了解决。Cortes 与 Vapnik 提出线性支持向量机,通过最大化硬间隔的方式解决最终平面不唯一的问题。而 Boser、Guyon 与 Vapnik通过引入核技巧,提出了非线性的支持向量机,来处理非线性可分数据。

1.2 对偶理论

对于一个约束优化问题
min ⁡ x f ( x ) s.t. g ( x ) ≤ 0 h ( x ) = 0 \begin{aligned} \min_{x} \quad &f(x)\\ \text{s.t.}\quad &g(x)\le0\\ &h(x)=0 \end{aligned} xmins.t.f(x)g(x)0h(x)=0

其对应的拉格朗日函数为:
L ( x , α , β ) = f ( x ) + α g ( x ) + β h ( x ) , α ≥ 0 \mathcal{L} (x,\alpha,\beta) = f(x) +\alpha g(x) +\beta h(x),\quad \alpha\ge0 L(x,α,β)=f(x)+αg(x)+βh(x),α0

容易验证:
max ⁡ α ≥ 0 , β L ( x , α , β ) = { f ( x ) , x ∈ D + ∞ , x ∉ D \max_{\alpha\ge0, \beta}\mathcal{L} (x,\alpha,\beta)= \left\{\begin{matrix} f(x), \quad x\in D \\ +\infty,\quad x\notin D \end{matrix}\right. α0,βmaxL(x,α,β)={f(x),xD+,x/D其中 D = { x : g ( x ) ≤ 0 , h ( x ) = 0 } D=\left \{x:g(x)\le0, h(x)=0\right\} D={x:g(x)0,h(x)=0}是问题的可行域。

于是原约束优化问题等价于:
min ⁡ x max ⁡ α ≥ 0 , β L ( x , α , β ) \min_{x}\max_{\alpha\ge0, \beta}\mathcal{L} (x,\alpha,\beta) xminα0,βmaxL(x,α,β)

对偶问题是指,交换式中极大和极小的位置,即: max ⁡ x min ⁡ α ≥ 0 , β L ( x , α , β ) \max_{x}\min_{\alpha\ge0, \beta}\mathcal{L} (x,\alpha,\beta) xmaxα0,βminL(x,α,β)

弱对偶总成立:
max ⁡ x min ⁡ α ≥ 0 , β L ( x , α , β ) ≤ min ⁡ x max ⁡ α ≥ 0 , β L ( x , α , β ) \max_{x}\min_{\alpha\ge0, \beta}\mathcal{L} (x,\alpha,\beta) \le \min_{x}\max_{\alpha\ge0, \beta}\mathcal{L} (x,\alpha,\beta) xmaxα0,βminL(x,α,β)xminα0,βmaxL(x,α,β)

强对偶是指上不等式取等号,即:
max ⁡ x min ⁡ α ≥ 0 , β L ( x , α , β ) = min ⁡ x max ⁡ α ≥ 0 , β L ( x , α , β ) \max_{x}\min_{\alpha\ge0, \beta}\mathcal{L} (x,\alpha,\beta) =\min_{x}\max_{\alpha\ge0, \beta}\mathcal{L} (x,\alpha,\beta) xmaxα0,βminL(x,α,β)=xminα0,βmaxL(x,α,β)

强对偶的成立需要满足KKT条件:
∇ L ( x ∗ , α ∗ , β ∗ ) = 0 α ∗ ≥ 0 g ( x ∗ ) ≤ 0 h ( x ∗ ) = 0 α ∗ g ( x ∗ ) = 0 \begin{aligned} \nabla \mathcal{L}(x^*, \alpha^*,\beta^*)&=0\\ \alpha^*&\ge0\\ g(x^*)&\le 0\\ h(x^*)&=0\\ \alpha^* g(x^*) &=0 \end{aligned} L(x,α,β)αg(x)h(x)αg(x)=000=0=0
特别地,对于凸优化问题,KKT条件总成立,这也为求解支持向量机提供了理论支撑。

2.线性支持向量机

在感知机中,同样是寻找超平面将数据进行分离,然而这样的超平面往往是不唯一的。
如下图,哪个分类超平面是最好的?
从直觉上来讲,黑色的超平面是最好的。因为蓝色超平面对于左侧的一个正类样本分类容易分错,而红色的超平面对于右侧的一个负分类样本容易分错。
在这里插入图片描述
那如何度量分类器的好坏?支持向量机提出了最大间隔的思想(Large Margin)。

2.1最大间隔

在这里插入图片描述
空间中的超平面方程可以表示为:
w T x + b = 0 \mathbf{w}^T\mathbf{x}+b=0 wTx+b=0
若超平面能够将训练样本 ( x i , y i ) (\mathbf{x}_i,y_i) (xi,yi)分类正确,即:若 y i = + 1 y_i=+1 yi=+1 w T x + b > 0 \mathbf{w}^T\mathbf{x}+b>0 wTx+b>0;若 y i = − 1 y_i=-1 yi=1 w T x + b < 0 \mathbf{w}^T\mathbf{x}+b<0 wTx+b<0. 令
w T x + b ≥ 1 , y i = + 1 ; w T x + b ≤ 1 , y i = − 1. \mathbf{w}^T\mathbf{x}+b\ge1,\quad y_i=+1;\\ \mathbf{w}^T\mathbf{x}+b\le1,\quad y_i=-1. wTx+b1,yi=+1;wTx+b1,yi=1.
上式总能成立,是由于对一个超平面 ( w , b ) (\mathbf{w},b) (w,b),将其进行缩放,所对应的超平面不改变。

于是就得到了空间中三个平面,最大间隔定义为两个支撑平面之间的距离,也即:
2 ∣ ∣ w ∣ ∣ \frac{2}{||\mathbf{w}||} w2

支持向量机的思想就是最大化间隔(Large Margin),即
max ⁡ w , b 2 ∣ ∣ w ∣ ∣ s.t. y i ( w T x i + b ) ≥ 1 \begin{aligned} \max_{\mathbf{w},b} \quad&\frac{2}{||\mathbf{w}||}\\ \text{s.t.}\quad &y_i(\mathbf{w}^T\mathbf{x}_i+b)\ge1 \end{aligned} w,bmaxs.t.w2yi(wTxi+b)1
问题等价于
min ⁡ w , b 1 2 w T w s.t. y i ( w T x i + b ) ≥ 1 \begin{aligned} \min_{\mathbf{w},b} \quad& \frac{1}{2}\mathbf{w}^T\mathbf{w}\\ \text{s.t.}\quad& y_i(\mathbf{w}^T\mathbf{x}_i+b)\ge1 \end{aligned} w,bmins.t.21wTwyi(wTxi+b)1这个问题是标准的二次规划问题,其对应的拉格朗日函数为:
L ( w , b , α ) = 1 2 w T w − ∑ i α i [ y i ( w T x i + b ) − 1 ] \mathcal{L}(\mathbf{w},b,\alpha)=\frac{1}{2}\mathbf{w}^T\mathbf{w}-\sum_{i}\alpha_i[ y_i(\mathbf{w}^T\mathbf{x}_i+b)-1] L(w,b,α)=21wTwiαi[yi(wTxi+b)1]由KKT条件可得
∂ L ∂ w = 0 ⇒ w = ∑ i α i y i x i ∂ L ∂ b = 0 ⇒ ∑ i α i y i = 0 \begin{aligned} \frac{\partial {\mathcal{L}}}{\partial {\mathbf{w}}}=0 \quad &\Rightarrow \quad\mathbf{w} =\sum_i\alpha_iy_i\mathbf{x}_i\\ \frac{\partial {\mathcal{L}}}{\partial {b}}=0 \quad &\Rightarrow \quad \sum_i\alpha_iy_i=0 \end{aligned} wL=0bL=0w=iαiyixiiαiyi=0带入到拉格朗日函数中,可以得到对偶问题为:
max ⁡ α ∑ i α i − 1 2 ∑ i ∑ j α i α j y i y j x i x j s.t. ∑ i α i y i = 0 α i ≥ 0 \begin{aligned} \max_{\alpha} \quad &\sum_i\alpha_i-\frac{1}{2}\sum_i\sum_j\alpha_i\alpha_j y_i y_j \mathbf{x}_i \mathbf{x}_j\\ \text{s.t.} \quad & \sum_i \alpha_iy_i=0\\ &\alpha_i\ge0 \end{aligned} αmaxs.t.iαi21ijαiαjyiyjxixjiαiyi=0αi0对偶问题同样是二次规划问题。假设对偶问题最优解为 α ∗ \alpha^* α,则原始问题的最优解 w ∗ 、 b ∗ \mathbf{w}^*、b^* wb为:
w ∗ = ∑ i α i ∗ y i x i b = y k − w ∗ ⋅ x k \mathbf{w}^*=\sum_i\alpha_i^*y_i\mathbf{x}_i\\ b = y_k-\mathbf{w}^* \cdot \mathbf{x_k} w=iαiyixib=ykwxk这里 k k k是满足 α k ∗ > 0 \alpha^*_k>0 αk>0的任意一个取值。

根据KKT条件,我们知道 α i ∗ [ y i ( w ∗ ⋅ x i + b ) − 1 ] ≥ 0 \alpha_i^*[y_i(\mathbf{w}^*\cdot \mathbf{x_i}+b)-1]\ge0 αi[yi(wxi+b)1]0成立。若 α i ∗ > 0 \alpha_i^*>0 αi>0,则必有 y i ( w ∗ ⋅ x i + b ) = 1 y_i(\mathbf{w}^*\cdot \mathbf{x_i}+b)=1 yi(wxi+b)=1,即 x ∗ \mathbf{x}^* x是支撑向量;若 α i ∗ = 0 \alpha_i^*=0 αi=0,则 x ∗ \mathbf{x}^* x不是支撑向量。

换言之, w ∗ = ∑ i α i ∗ y i x i \mathbf{w}^*=\sum_i\alpha_i^*y_i\mathbf{x}_i w=iαiyixi,意味着最终的分类平面的法向量,可以由有限个支撑向量加权组合表示,支撑向量的数量不超过 m + 1 m+1 m+1个( m m m是数据的维度)。

2.2软间隔和正则化

上文所有的讨论,都是在一个前提下:数据是线性可分的,支持向量机总能够找到一个唯一的超平面将正负样本完全划分开。然而当数据线性不可分时。
一个解决的方法是容忍一些分类错误的样本,为此引入变量 ξ i \xi_i ξi,并且构造如下的优化问题:
min ⁡ w , b 1 2 w T w + C ∑ i n ξ i s.t. y i ( w T x i + b ) ≥ 1 − ξ i ξ i ≥ 0 \begin{aligned} \min_{\mathbf{w},b} \quad& \frac{1}{2}\mathbf{w}^T\mathbf{w}+C\sum_i^n\xi_i\\ \text{s.t.}\quad& y_i(\mathbf{w}^T\mathbf{x}_i+b)\ge1-\xi_i\\ &\xi_i\ge0 \end{aligned} w,bmins.t.21wTw+Cinξiyi(wTxi+b)1ξiξi0
同样地,我们能够得到其对偶问题:
max ⁡ α ∑ i α i − 1 2 ∑ i ∑ j α i α j y i y j x i x j s.t. ∑ i α i y i = 0 0 ≤ α i ≤ C \begin{aligned} \max_{\alpha} \quad &\sum_i\alpha_i-\frac{1}{2}\sum_i\sum_j\alpha_i\alpha_j y_i y_j \mathbf{x}_i \mathbf{x}_j\\ \text{s.t.} \quad & \sum_i \alpha_iy_i=0\\ &0\le\alpha_i\le C \end{aligned} αmaxs.t.iαi21ijαiαjyiyjxixjiαiyi=00αiC
可以看到同2.1中的唯一的差别是,对偶变量约束的不同,一个是 0 ≤ α i ≤ C 0\le\alpha_i\le C 0αiC,一个是 α ≥ 0 \alpha \ge0 α0.
类似地我们也能够求得原问题的最优解 w ∗ , b ∗ \mathbf{w^*},b^* w,b.

2.3核技巧

在实际的工作中,即使用2.2中的方法容许某些分类错误的样本,也很难找到一个好的平面将数据分开。

自然而然的想法是,通过一个映射 ϕ ( x ) \phi(x) ϕ(x)将非线性的数据从原始空间映射到一个更高维的空间,使得其在高维空间中线性可分。然而直接取寻找这样的映射通常是很困难的,因为特征空间的维数可能很高甚至无穷维。

但是,注意到在2.1和2.2构造对偶问题求解的过程中,数据点 x \mathbf{x} x总是以内积 x T x \mathbf{x}^T\mathbf{x} xTx的形式出现。因此,我们无需构造 ϕ ( x ) \phi(\mathbf{x}) ϕ(x),只要设想这样一个二元函数:
K ( x i , x j ) = ⟨ ϕ ( x i ) , ϕ ( x j ) ⟩ = ϕ ( x i ) T ϕ ( x j ) K(\mathbf{x}_i,\mathbf{x}_j) = \left \langle \phi(\mathbf{x}_i),\phi(\mathbf{x}_j) \right \rangle =\phi(\mathbf{x}_i)^T\phi(\mathbf{x}_j) K(xi,xj)=ϕ(xi),ϕ(xj)=ϕ(xi)Tϕ(xj)

这样的函数就是核函数

引入核函数后,优化问题可描述成:
max ⁡ α ∑ i α i − 1 2 ∑ i ∑ j α i α j y i y j K ( x i , x j ) s.t. ∑ i α i y i = 0 0 ≤ α i ≤ C \begin{aligned} \max_{\alpha} \quad &\sum_i\alpha_i-\frac{1}{2}\sum_i\sum_j\alpha_i\alpha_j y_i y_j K(\mathbf{x}_i,\mathbf{x}_j)\\ \text{s.t.} \quad & \sum_i \alpha_iy_i=0\\ &0\le\alpha_i\le C \end{aligned} αmaxs.t.iαi21ijαiαjyiyjK(xi,xj)iαiyi=00αiC
通过核函数,我们隐式地定义了一个映射,将数据映射到一个高维空间。但是,我们不知道这个特征空间是否合适。因此和函数的选择很大程度上决定了分类器的性能。

下表列出了常用的核函数:

核函数表达式
线性核 K ( x i , x j ) = x i T x j K(\mathbf{x}_i, \mathbf{x}_j)=\mathbf{x}_i^T\mathbf{x}_j K(xi,xj)=xiTxj
多项式核 K ( x i , x j ) = ( x i T x j ) d K(\mathbf{x}_i, \mathbf{x}_j)=(\mathbf{x}_i^T\mathbf{x}_j)^d K(xi,xj)=(xiTxj)d
高斯核 K ( x i , x j ) = exp ⁡ ( − 1 2 σ 2 ∥ x i − x j ∥ ) K(\mathbf{x}_i, \mathbf{x}_j) =\exp(- \frac{1}{2\sigma^2}\left \| \mathbf{x}_i-\mathbf{x}_j \right \|) K(xi,xj)=exp(2σ21xixj)
Sigmoid核 K ( x i , x j ) = tanh ⁡ ( β x i T x j + θ ) K(\mathbf{x}_i, \mathbf{x}_j) = \tanh(\beta \mathbf{x}_i^T \mathbf{x}_j+\theta) K(xi,xj)=tanh(βxiTxj+θ)

3.代码和试验

项目Value
电脑$1600
手机$12
导管$1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值