SVM算法详解

Support Vector Machine

终于,我们来到了SVM。SVM是我个人感觉机器学习中最优美的算法,这次我们要来非常细致地介绍。SVM是一类有监督的分类算法,它的大致思想是:假设样本空间上有两类点,我们希望找到一个划分超平面,将这两类样本分开,而划分超平面应该选择泛化能力最好的,也就是能使得两类样本中距离它最近的样本点距离最大。

Hard Margin&Dual Problem

Hard Margin

在这里插入图片描述

如图所示,中间那条加粗的超平面就是我们所求的最优划分超平面。我们知道平面的方程可以用线性方程: w T x + b = 0 w^Tx+b=0 wTx+b=0来表示, w = ( w 1 , w 2 , … , w n ) w=(w_1,w_2,\dots,w_n) w=(w1,w2,,wn)表示的是平面的法矢量。现在,我们假设样本空间 D = { ( x i , y i ) ∣ i ∈ Z + } D=\{(x_i,y_i)|i\in Z^{+}\} D={(xi,yi)iZ+}中只有两个类别的样本,类别标记分别为 y i = 1 y_i=1 yi=1 y i = − 1 y_i=-1 yi=1。那么对于 ( x i , y i ) , y i = 1 (x_i,y_i),y_i=1 (xi,yi),yi=1,超平面得到的结果 w T x i + b ≥ 1 w^Tx_i+b\ge1 wTxi+b1;反之, w T x i + b ≤ − 1 w^Tx_i+b\le-1 wTxi+b1。因此我们有:
{ w T x i   +   b   ≥   1 ,       y i = 1 w T x i   +   b   ≤   − 1 ,       y i = − 1 \begin{cases} w^Tx_i \ + \ b \ \ge \ 1, \ \ \ \ \ y_i=1 \\ w^Tx_i \ + \ b \ \le \ -1, \ \ \ \ \ y_i=-1\end{cases} { wTxi + b  1,     yi=1wTxi + b  1,     yi=1
某一个样本点 ( x i ,   y i ) (x_i,\ y_i) (xi, yi)到划分超平面的距离公式为:
γ   =   ∣ w T x i + b ∣ ∣ ∣ w ∣ ∣ \gamma \ = \ \frac{|w^Tx_i+b|}{||w||} γ = ∣∣w∣∣wTxi+b
考虑两类样本点中距离划分超平面最近的样本,这类样本恰好能够使得上式中的等号成立,如图:

在这里插入图片描述

我们称这类距离划分超平面最近的样本点为“支持向量”,称 γ   =   2 ∣ ∣ w ∣ ∣ \gamma \ = \ \frac{2}{||w||} γ = ∣∣w∣∣2为“间隔”。

之前我们说到了,我们希望这个间隔能够最大化来使得模型泛化能力最强,因此我们的任务就是:
m a x i m i z e w           2 ∣ ∣ w ∣ ∣ s . t .      y i ( w T x i + b )   ≥   1 maximize_{w} \ \ \ \ \ \ \ \ \ \frac{2}{||w||} \\ s.t. \ \ \ \ y_i(w^Tx_i+b) \ \ge \ 1 maximizew         ∣∣w∣∣2s.t.    yi(wTxi+b)  1
这个任务等价于:
m i n i m i z e w           1 2 ∣ ∣ w ∣ ∣ 2 s . t       1 − y i ( w T x i + b ) ≤ 0 minimize_{w} \ \ \ \ \ \ \ \ \ \frac{1}{2}{||w||^2} \\ s.t \ \ \ \ \ 1 - y_i(w^Tx_i+b) \le 0 minimizew         21∣∣w2s.t     1yi(wTxi+b)0
这就变成了一个非常典型的凸优化问题。

Dual Problem

对于求条件极值,我们自然要先写出他的Lagrange乘子式:
L ( α , w , b )   =   1 2 ∣ ∣ w ∣ ∣ 2   −   ∑ i = 1 n α i ( 1 − y i ( w T x i + b ) ) L(\alpha,w,b) \ = \ \frac{1}{2}||w||^2 \ - \ \sum_{i=1}^{n}{\alpha_i}{(1-y_i(w^Tx_i+b))} L(α,w,b) = 21∣∣w2  i=1nαi(1yi(wTxi+b))
我们的任务是 m i n i m i z e    L ( α , w , b ) minimize \ \ L(\alpha,w,b) minimize  L(α,w,b)
下面考虑它的dual problem:
m i n w , b m a x α L ( α , w , b ) min_{w,b}max_{\alpha}L(\alpha,w,b) \\ minw,bmaxαL(α,w,b)
接下来求出 L L L w , b w,b w,b的偏导:
∇ w L = w − ∑ i = 1 n α i y i x i = 0           w = ∑ i = 1 n α i y i x i ∇ b L = − ∑ i = 1 n α i y i = 0             ∑ i = 1 n α i y i = 0 \nabla_{w}L = w-\sum_{i=1}^n{\alpha_iy_ix_i}=0 \ \ \ \ \ \ \ \ \ w = \sum_{i=1}^n{\alpha_iy_ix_i} \\ \nabla_{b}L = -\sum_{i=1}^n{\alpha_iy_i} = 0 \ \ \ \ \ \ \ \ \ \ \ \sum_{i=1}^n{\alpha_iy_i}=0 wL=wi=1nαiyixi=0         w=i=1nαiyixibL=i=1nαiyi=0           i=1nαiyi=0
代入 L ( α , w , b ) L(\alpha, w, b)

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值