机器学习之支持向量机

1. 间隔和支持向量

在数据集DD = \left \{ (x_1,y_1),(x_2,y_2),\cdots ,(x_m,y_m)\right \},y_i \in \left \{ -1,+1 \right \},基本思想是基于训练集D在样本空间中找到一个划分超平面,将不同类别的样本分开。

划分超平面可用:

\mathbf{w^Tx}+b = 0,其中w =\left ( w_1;w_2;\cdots ;w_d \right )为法向量,决定了超平面的方向;b为位移项,决定了超平面与原点之间的距离。记为(\mathbf{w},b)。样本空间中任意一点 x 到超平面的距离为

r = \frac{\left |\mathbf{ w^Tx}+b \right |}{\left \| \mathbf{w} \right \|}                              (1)

假设超平面能使训练样本正确分类,对于\left ( \mathbf{x}_i,y_i \right )\in D,若y_i = +1,则有\mathbf{w^Tx} +b \geq 0,若y_i = -1,则有\mathbf{w^Tx} +b \leq 0。令

\left\{\begin{matrix} \mathbf{w}^T\mathbf{x}_i +b\geqslant +1& & &y_i = +1 & \\ \mathbf{w}^T\mathbf{x}_i +b\leqslant -1 & & &y_i = -1 & \end{matrix}\right.                        (2)

距离超平面最近的这几个训练样本使得上式等号成立,它们被称为“支持向量”,两个异类样本到超平面的距离之和为;

\gamma = \frac{2}{\left \| \mathbf{w} \right \|}

它被称为“间隔”

想要找到最大间隔的划分超平面,就是要找到能满足(2)式中约束的参数\mathbf{w}和b,使得\gamma最大,即:

\underset{w,b}{max} \: \frac{2}{\left \| \mathbf{w} \right \|}

s.t. \:\: \: y_i(w^Tx+b)\geqslant 1,\: \: \: i = 1,2,3\cdots, m                (3)

显然为了最大化间隔,仅需要最大化\left \| \mathbf{w} \right \|^{-1},这等价与最小化\left \| \mathbf{w} \right \|^2,于是(3)可以重写为

\underset{\mathbf{w},b}{min}\: \: \frac{1}{2}\left \| \mathbf{w} \right \|^2

s.t. \:\: \: y_i(w^Tx+b)\geqslant 1,\: \: \: i = 1,2,3\cdots, m                (4)

这就是支持向量机的基本模型,简称SVM

2  对偶问题

对于(4)式使用拉格朗日乘子法可得到其“对偶问题”,具体来说,为(4)式的每条约束添加拉格朗日乘子\alpha _i \geqslant 0,则该问题可以重写为

L(\mathbf{w},b,\mathbf{\alpha} )= \frac{1}{2}\left \| \mathbf{w} \right \|^2 + \sum_{i =1}^{m}\alpha _i(1-y_i(\mathbf{w}^Tx_i+b))                    (5)

其中\alpha =(\alpha_1, \alpha_2,\cdots , \alpha_m ),令L(\mathbf{w},b,\mathbf{\alpha} )对w和b偏到为0可得:

w =\sum_{i=1}^{m}\alpha _iy_i\mathbf{x}_i

0 = \sum_{i=1}^{m}\alpha _iy_i

把上两式代入(5)中再考虑(4)中的约束条件,得到(4)中的对偶问题如下:

\underset{\alpha }{max} \sum_{i=1}^{m}\alpha _i-\frac{1}{2}\sum_{i=1}^{m}\sum_{j=1}^{m}\alpha_i \alpha_j y_iy_j\mathbf{x}_i^T\mathbf{x}_j                                     (6)

s.t.\: \: \: \sum_{i=1}^{m}\alpha _iy_i=0,

\: \: \: \: \: \alpha _i\geqslant 0,\: \: \: i=1,2,3,\cdots m

解出后可得到模型

f(x) = \mathbf{w^Tx}+b

注意(4)中的约束条件,KKT条件如下:

\left\{\begin{matrix} \alpha _i\geqslant 0\\ y_if(x_i)-1\geqslant 0\\ \alpha _i(y_if(x_i)-1) = 0 \end{matrix}\right.

注意到总有\alpha _i = 0 \: \: \: or \: \: \: y_if(x_i) = 1,若前者等于0,则没有意义,若\alpha _i >0,则必有y_if(x_i) = 1,所对应的样本点位于最大间隔边界上,是一个支持向量。

通过(6)式接触\alpha,w和b即可求得。

3 核函数

再实际任务中,原始样本空间或许不存在一个正确划分两类的超平面。对于这样的问题,可将样本从原始空间映射到一个更高维的特征空间,使得样本在这个特征空间中线性可分。

\phi ({\mathbf{x}})表示将x映射后的特征向量,于是在特征空间中划分超平面所对应的模型可表示为

f(x) = \mathbf{w^T\phi (x)}+b

类似于(4),有

\underset{\mathbf{w},b}{min}\: \: \frac{1}{2}\left \| \mathbf{w} \right \|^2

s.t. \:\: \: y_i(w^T\phi (x)+b)\geqslant 1,\: \: \: i = 1,2,3\cdots, m

其对偶问题

\underset{\alpha }{max} \sum_{i=1}^{m}\alpha _i-\frac{1}{2}\sum_{i=1}^{m}\sum_{j=1}^{m}\alpha_i \alpha_j y_iy_j\phi (x_i)^T\phi (x_j)

s.t.\: \: \: \sum_{i=1}^{m}\alpha _iy_i=0,

\: \: \: \: \: \alpha _i\geqslant 0,\: \: \: i=1,2,3,\cdots m

涉及到\phi (x_i)^T\phi (x_j),这是样本xi到xi映射到特征空间之后的内积。由于维数可能很高,计算该内积很困难,为了避开这个障碍,可以设想一个这样的函数

\kappa(\mathbf{x_i,x_j}) = \left \langle \phi (x_i),\phi(x_j) \right \rangle =\phi (x_i)^T\phi (x_j)

即xi与xj在特征空间的内积等于他们在原始样本空间中通过函数\kappa (\cdot ,\cdot )计算的结果。

于是上式可重写为

\underset{\alpha }{max} \sum_{i=1}^{m}\alpha _i-\frac{1}{2}\sum_{i=1}^{m}\sum_{j=1}^{m}\alpha_i \alpha_j y_iy_j\kappa(\mathbf{x_i,x_j})

s.t.\: \: \: \sum_{i=1}^{m}\alpha _iy_i=0,

\: \: \: \: \: \alpha _i\geqslant 0,\: \: \: i=1,2,3,\cdots m

求解后得到:

f(x) =w^T\phi (x) +b=\sum_{i=1}^{m}\alpha _iy_i\phi(x_i)^T\phi(x) +b = \sum_{i=1}^{m}\alpha _iy_i\kappa(\mathbf{x_i,x_j})+b

函数\kappa (\cdot ,\cdot )就是核函数。只要一个对称函数所对应的很矩阵半正定,他就可以作为核函数。

常用线性核函数有:线性核、多项式核、高斯核(rbf)

4 软间隔和正则化

(待续)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值