机器学习算法梳理3-支持向量机SVM

支持向量机SVM推导及求解过程

一、前言

1.1 什么是支持向量机(Support Vector Machine)

对于线性可分的两类数据,支持向量机就是一条直线(对于高维的数据就是一个超平面)。在二维空间中,将数据分成两类的线有无数条,SVM就是这是无数条中最完美的一条,所谓完美就是指这条线距离两类数据点越远,这样当有新的数据点的时候我们使用这条线将其分类的结果也就越可信。找到这条完美的直线通过两步:

(1)、找到数据点中距离分割超平面距离最近的点(找最小)

(2)、使距离超平面最近的点的距离的绝对值尽量大(求最大)

1.2 模型求解原理

支持向量机是一种二分类模型,它的目的是寻找一个超平面来对样本进行分割,分割的原则即使间隔最大化,最终转化为一个凸二次规划问题来求解:

(1)、当训练样本线性可分时,通过硬间隔最大化,学习一个线性可分支持向量机

(2)、当训练样本近似线性可分时,通过软间隔最大化,学习一个线性支持向量机

(3)、当训练样本线性不可分时,通过核技巧软间隔最大化,学习一个非线性支持向量机

1.3 拉格朗日乘子法和KKT条件

拉格朗日乘子法和KKT条件用于求解带有约束条件的两个求取方法。对于等式约束的优化问题,可以使用拉格朗日乘子法去求最优值;对于含有不等式约束,可以应用KKT条件去求解。

深入理解拉格朗日乘子法(Lagrange Multiplier) 和KKT条件

 

二 支持向量机(SVM)推导

2.1 划分超平面

在样本空间中,划分超平面可通过下面的线性方程来描述:

                                                                                        \omega ^{T}x+b =0

其中\omega =(\omega_{1};\omega_{2};...;\omega_{d})为法向量,决定了超平面的方向;b为位移项,决定了超平面与原点的距离。显然,不同的\omegab确定不同的分割面。

假设超平面能将训练样本正确分类,则对于训练样本\left ( x_{_{i}},y_{i}\right )有:

                                                                          \left\{\begin{matrix} \omega ^{T}x_{i} +b\geqslant +1&y_{i} =+1\\ \omega ^{T}x_{i} +b\leq -1&y_{i} =-1 \end{matrix}\right.

上式称为最大间隔假设,y_{i}=+1表示样本为正样本,y_{i}=-1表示样本为负样本,式子前面选择大于等于+1.小于等于-1只是为了计算方便,原则上可以是任意常数,但无论是多少,都可以通过对\omega进行变换使其为+1和-1,此时将公式左右都乘以y_{i},得到下面公式:

                                                                 \left\{\begin{matrix} y_{i}\left ( w^{T}x_{i}+b \right )\geqslant (+1)*(+1) &y_{i} =+1\\ y_{i}\left ( w^{T}x_{i}+b \right )\geqslant (-1)*(-1) &y_{i} =-1 \end{matrix}\right.

等价于

                                                                                             y_{i}(w^{T}x_{i}+b)\geqslant 1

训练集中所有样本都应满足上式。如下图,距离超平面最近的这几个样本点满足y_{i}(w^{T}x_{i}+b)= 1,它们被称为支持向量。虚线称为边界,两条虚线间的距离称为间隔(margin)

下面我们开始计算间隔,其实间隔就等于两个异类支持向量的差在\omega上的投影,即

                                                              \gamma = \frac{\left ( \vec{x}_{+}-\vec{x}_{-} \right )\cdot \vec{w}^{T}}{\left \| w \right \|}=\frac{\vec{x}_{+}\cdot \vec{w}^{T}-\vec{x}_{-}\cdot \vec{w}^{T}}{\left \| w \right \|}

其中\vec{x}_{+}\vec{x}_{-}分别表示两个正负支持向量,因为\vec{x}_{+}\vec{x}_{-}满足y_{i}(w^{T}x_{i}+b)= 1,则有:

                                                                        

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值