Support Vector Machine

重看SVM时,同事过来看了一眼:“还看SVM呢?SVM已经被淘汰了”,有点伤感,上学那会SVM还算是主流的分类器,所有机器学习课也逃不过SVM。随着ensemble tree以及神经网络等方法的普及,svm在模型精确度上也丧失了优势地位,SVM应当是少数的从几何出发建立的模型,似乎拓展性不是很强,但是它仍然是我们不能避过去的模型,我们基本上是从SVM中开始学习机器学习中的一些概念,比如:结构经验风险最小化,拉格朗日乘子和对偶,核函数,VC维等。

回想logistic regression(LR)模型,它将特征值x进行线性组合,然后通过sigmoid函数,将线性拟合值压缩到(0,1)之间:
p ( Y = 1 ∣ x ; θ ) = 1 1 + e − θ T x p(Y=1|x;\theta) = \frac{1}{1+e^{-\theta^Tx}} p(Y=1x;θ)=1+eθTx1
在这里插入图片描述
θ T x > 0 \theta^Tx > 0 θTx>0 y = 1 y=1 y=1, θ T x < 0 \theta^Tx <0 θTx<0 y = 0 y=0 y=0, 这其实是寻找了一个超平面 θ T X = 0 \theta^TX=0 θTX=0, 将数据点分开,而 θ T x \theta^Tx θTx为数据的置信度, θ T x \theta^Tx θTx越高,表示数据点离超平面越远,然后LR通过一个sigmoid函数,将 θ T x \theta^Tx θTx转换为了概率的形式,以最大似然函数作为优化目标,等同于最大化所有数据点的置信度。

我们会看到,SVM也是寻找一个数据的分离超平面,与LR不同的是,SVM是通过最大化分离间隔来寻找这个超平面。

在这里插入图片描述
如上图,如果要找一个超平面分离方块和圆圈数据点,除了超平面 H H H之外,还可以有很多其他的超平面。那么怎么去唯一确定这个 H H H呢?从LR上我们知道,离超平面越远的点,我们越有把握确定其类别,而正是在超平面附近的点,容易被超平面划分错误。和LR要求所有数据点都远离分离超平面不同,SVM更侧重分离超平面的附近的点,因此最大化离超平面最近的点的距离,上图中的平面 H 1 H1 H1 H 2 H2 H2之间的距离越远,那么超平面 H H H越能更健壮的划分数据。因此SVM就是要找一个超平面能够使得 H 1 H1 H1 H 2 H2 H2的间隔最大。

H 1 H1 H1 H 2 H2 H2这两个平面分别由超平面 H H H决定方向,由两侧离超平面 H H H最近的点确定截距,如图上 H 1 H1 H1 H 2 H2 H2分别有两个红色数据点和蓝色数据点,这两个数据点就叫做支持向量,支持向量机的名字也从这里而来。

下面我们就来看看SVM是怎么表示间隔,确定这三个平面的,首先引入函数间隔和几何间隔的概念。

函数间隔和几何间隔

给定一个训练样本 ( x ( i ) , y ( i ) ) (x^{(i)},y^{(i)}) (x(i),y(i)) x x x是特征, y y y是类别标签。 i i i表示第 i i i个样本。我们定义函数间隔如下:
γ ^ ( i ) = y ( i ) ( w T x ( i ) + b ) \hat\gamma^{(i)}= y^{(i)}(w^Tx^{(i)}+b) γ^(i)=y(i)(wTx(i)+b)
y ( i ) y^{(i)} y(i) w T x ( i ) + b w^Tx^{(i)}+b wTx(i)+b同号时, γ ^ ( i ) = ∣ w T x ( i ) + b ∣ \hat\gamma^{(i)}=|w^Tx^{(i)}+b| γ^(i)=wTx(i)+b
在这里插入图片描述
上图中点 A A A到分离超平面的距离为点 A A A与其在平面上映射的点 B B B的距离,从几何的知识我们可以知道:
γ ^ ( i ) = w T x ( i ) + b ∥ w ∥ \hat\gamma^{(i)}= \frac{w^Tx^{(i)}+b}{\|w\|} γ^(i)=wwTx(i)+b
∥ w ∥ = 1 \|w\|=1 w=1时,有几何间隔=函数间隔。
随着 w w w的收缩,我们可以找到很多超平面,为了解的唯一性,我们可以提前设定 ∥ w ∥ = 1 \|w\|=1 w=1

我们的目标是要最大化 H 1 H1 H1 H 2 H2 H2之间的间隔。那么这个间隔是什么呢?从全局角度看,这看间隔为所有数据点离超平面 H H H最近的点,即:
γ ^ = min ⁡ i = 1 , . . . , m γ ^ i \hat \gamma = \min_{i=1,...,m}\hat\gamma_i γ^=mini=1,...,mγ^i
则全局优化目标为:
max ⁡ w , b , γ γ \max_{w,b,\gamma} \gamma maxw,b,γγ
s . t . y i ( w i x + b ) ≥ γ s.t. y_i(w_ix+b)\geq \gamma s.t.yi(wix+b)γ
∥ w ∥ = 1 \|w\|=1 w=1
因为 ∥ w ∥ = 1 \|w\|=1 w=1不是凸函数,所以事先要处理一下,考虑函数间隔和几何间隔之间的关系, γ = γ ^ ∥ w ∥ \gamma = \frac{\hat \gamma}{\|w\|} γ=wγ^,缩放w,b不会影响最终的结果,原优化目标等同于:
max ⁡ w , b , γ γ ∥ w ∥ \max_{w,b,\gamma} \frac{\gamma}{\|w\|} maxw,b,γwγ
s . t . y i ( w i x + b ) ≥ γ s.t. y_i(w_ix+b)\geq \gamma s.t.yi(wix+b)γ
为了简便,假设 γ = 1 \gamma=1 γ=1,并且 1 / ∥ w ∥ 1/\|w\| 1/w也不是凸函数,最大化 1 / ∥ w ∥ 1/\|w\| 1/w就是最小化 ∥ w ∥ 2 \|w\|^2 w2,则最终的优化目标为:
max ⁡ w , b ∥ w ∥ 2 \max_{w,b} \|w\|^2 w,bmaxw2
s . t . y i ( w i x + b ) ≥ 1 s.t. y_i(w_ix+b)\geq 1 s.t.yi(wix+b)1

优化方法

目标函数是一个有约束的凸优化优化方法,改写约束函数,加入拉格朗日乘子之后的优化目标为:
L ( w , b , α ) = 1 2 ∥ w ∥ 2 + ∑ i α i ( 1 − y i ( w i x i + b ) ) L(w,b,\alpha)=\frac{1}{2}\|w\|^2+\sum_i\alpha_i(1-y_i(w_ix_i+b)) L(w,b,α)=21w2+iαi(1yi(wixi+b))
然后按照对偶问题的求解步骤来一步步进行:
d ∗ = max ⁡ α , β : α i ≥ 0 min ⁡ w L ( w , α , β ) d^*=\max_{\alpha,\beta:\alpha_i\geq0} \min_wL(w,\alpha,\beta) d=maxα,β:αi0minwL(w,α,β)
首先固定 α \alpha α,求解 L ( w , α , β ) L(w,\alpha,\beta) L(w,α,β)的最小值。
∇ w L ( w , b , α ) = \nabla_wL(w,b,\alpha)= wL(w,b,α)=

待续…

参考:

  1. 解读机器学习基础概念:VC维的来龙去脉(转)
  2. 机器学习可行性与VC dimension
  3. jerrylead:支持向量机
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值