matlab优化svm预测_SVM算法

本文详细介绍了支持向量机SVM的概念,包括线性可分SVM的间隔最大化、支持向量,以及非线性SVM中的核技巧。线性SVM通过间隔最大化寻找唯一最优分离超平面,支持向量对分类结果起决定性作用。非线性SVM通过核函数将数据映射到高维空间,解决非线性问题。同时,文章还讨论了SMO算法用于优化SVM参数的选择与更新过程。
摘要由CSDN通过智能技术生成

4bb00448-492f-eb11-8da9-e4434bdf6706.png

支持向量机SVM

支持向量机SVM是一种二分类模型,它不仅可以对线性可分数据集进行分类,还可对非线性数据集进行分类。线性可分SVM和线性SVM假设输入空间数据与特征空间数据一一对应,而非线性SVM则需要通过一个非线性映射将输入空间中非线性数据转映射特征空间中线性可分数据。给定一个数据集

其中

为样本个数,
为第
个样本,
的标签,
时称
为正样本,
时称
为负样本。

1. 线性可分SVM

线性SVM算法的学习目标是在特征空间中寻找一个最优分离超平面,该分离超平面能将数据集中的正负样本分类到分离超平面的两侧。我们知道当数据集线性可分的时候,存在无穷多个分离超平面可将正负样本正确分开。感知机是通过极小化误分类样本到分离超平面的距离来求解分离超平面,但是这样的分离超平面有无穷多个。而线性可分SVM通过间隔最大化求解的分离超平面不仅能将正负样本正确分开,而且能以最大的置信度将其分开,此时的分离超平面是唯一的。

分离超平面方程定义如下

其中

为超平面法向量,
为截距,相应的线性可分SVM决策函数定义如下

其中

1.1 函数间隔与几何间隔

通常情况下,一个样本到分离超平面的距离可以近似的度量分类预测的置信度。对于(1)式的超平面,

可相对的表示样本
到超平面的距离,而
是否与样本
的标签
同号可表示分类是否正确,即
表示分类正确,
表示分类错误。所以可通过
来表示分类的正确性和置信度,由此我们引入函数间隔的定义

为(1)式分离超平面关于样本
的函数间隔,
为超平面关于数据集
的函数间隔。虽然函数间隔可以表示分类预测的正确性和置信度,但是我们发现如果成比例的改变
,比如改为
,此时超平面
还是原来的超平面,但是函数间隔却变为原来的100倍,所以我们要对函数间隔做规范化处理,由此我们引入几何间隔的定义

即为(1)式超平面关于样本
的几何间隔,
为超平面关于数据集
的几何间隔。其中
范数。由(2)(3)(4)(5)的定义我们知道函数间隔与几何间隔的关系为

1.2 间隔最大化

SVM学习的基本想法是求解能够正确划分训练集且几何间隔最大的分离超平面,对于线性可分SVM来说此时的几何间隔也称为硬间隔。最大化几何间隔的直观解释为:对训练集寻找几何间隔最大的分离超平面意味着以充分大的置信度对训练集进行分类,不仅要将正负样本正确分开,而且对最难分类的样本(比如距离超平面最近的样本)也要有足够大的置信度将其分开。

求解几何间隔最大的分离超平面可以表示为如下约束优化问题

其中

为训练样本个数,由(7)式几何间隔与函数间隔的关系我们可以将优化问题转化为

前面我们讨论过成比例的改变

不会影响分离超平面的求解,但是会改变函数间隔,所以改变函数间隔并不会影响上述优化问题的解,为了方便求解不妨令
,最大化
和最小化
是等价的,从而我们可以将目标函数转换为如下形式

其中

为训练样本个数。通过求解(8)和(9)式约束最优化问题得到最优解
后,我们就得到了分离超平面

和分类决策函数

1.3 支持向量

在线性可分的情况下,训练集中与分离超平面距离最近的样本称为支持向量,支持向量是使约束条件(9)等号成立的样本。即

.

52b00448-492f-eb11-8da9-e4434bdf6706.png

对于

的正样本,支持向量在超平面

上,对于

的负样本,支持向量在超平面

上,如上图所示,

上的样本即为支持向量。

实际上在决定分离超平面时只有支持向量起作用,其它样本并不起作用,如果移动支持向量将会改变分离超平面,如果移动间隔边界以外的其它样本甚至删除这些样本都不会改变超平面。所以在确定分离超平面时支持向量起着决定性的作用。

2. 线性SVM

对于线性不可分训练集,线性可分SVM不再适用,此时我们需要扩展线性可分SVM.

2.1 原始问题

线性不可分意味着存在某些样本

不能满足(9)式的约束条件,此时我们可以对每个这样的样本
引入一个松弛变量
,从而(9)式的约束条件变为

对每一个松弛变量

都添加一个惩罚
后(8)式目标函数变为

其中

为超参数且
,当
较大时,对误分类的惩罚加大,此时误分类样本比较重要,当
较小时,对误分类的惩罚减小,此时误分类样本相对不那么重要。引入松弛变量后的几何间隔也称为软间隔,软间隔最大化对应的目标函数和约束条件如下

其中

为训练样本个数。

2.2 对偶问题

在约束优化问题中,可通过拉格朗日对偶将原问题转换为对偶问题,对偶问题的解也即为原问题的解。对于如下原始约束问题

其中

,我们可以将其转换为无约束的拉格朗日对偶问题

其中

称为拉格朗日乘子且
.

对于线性SVM原始约束问题(10)(11)(12)我们得到其拉格朗日对偶形式如下

我们首先求解

的极小,其对应的导数如下

令导数等于0,我们得到

将(17)(18)(19)代入到

中我们得到

我们然后求解

的极大

显然由(22)(23)(24)我们可以得到

再对(20)式取负号可将求极大值转换为求极小值,从而有

其中

为训练样本个数,所以对模型参数
的求解也转换为对
的求解.

2.3 KKT条件

对于(13)式原始问题,(14)式不等式约束,(15)式等式约束,我们得到其拉格朗日对偶形式(16)式,由不等式约束和等式约束我们得到如下KKT条件

所以我们可以知道(10)(11)(12)以及其对偶形式

的KKT条件为

2.4 支持向量

为方便讨论我们把(22)(27)和KKT条件统一整理如下

由(28)(29)(30)我们可以知道当

时(29)式等号成立,此时
所对应的样本
称为软间隔支持向量。

58b00448-492f-eb11-8da9-e4434bdf6706.png

软间隔支持向量

可能在间隔边界上,有可能在间隔边界与超平面之间,甚至还可能出现在分离超平面误分的一侧,下面我们逐个讨论
  • 时,
    ,此时支持向量恰好落在间隔边界上
  • 时,
    ,但是
    可能取任何值
    • 时,支持向量在间隔边界与分离超平面之间
    • 时,支持向量落在分离超平面上
    • 时,支持向量位于超平面误分的一侧

3. 非线性SVM与核技巧

线性SVM可以有效地解决线性分类问题,但是对于非线性分类问题则需要用到核技巧。核技巧的做法是先通过一个非线性变换将输入空间中的数据映射到特征空间中,然后在特征空间中学习线性SVM模型。

3.1 核函数定义

为输入空间,
为特征空间,如果存在一个从
的映射

使得对所有的

,函数
满足条件

则称

为核函数,
称为映射函数。通常在使用核技巧的时候直接使用核函数而不会直接使用映射函数。

3.2 常见核函数

线性核函数

多项式核函数

为多项式次数

高斯核函数

Sigmoid核函数

其中

.

3.3 Kernel SVM

通过核技巧我们从线性SVM优化问题(25)(26)(27)得到非线性SVM优化问题

其中

为训练样本个数。

4. SMO

序列最小最优化算法(SMO)是高效求解SVM算法参数的优化算法。SMO算法的求解过程是不断的将原问题分解为子问题,子问题全都求解完成时原问题也就求解完成。子问题的求解方法是选择两个变量,固定其它变量,针对这两个变量构建一个二次规划问题,我们求解这个二次规划问题的解的目标是要保证所求的解能够使原问题的函数值下降。子问题的这两个变量,一个是违反KKT条件最严重的,另一个由约束条件(36)式确定。不妨假设

为变量,
固定(注意
的个数等于训练样本的个数),则由(36)式有

,如果
确定那么
也就确定了。

4.1 两个变量二次规划求解

我们不妨假设

为变量,
固定,则最优化问题(35)(36)(37)的子问题可写成

其中

为常数,(38)式中省略了不含
的常数项。

假设(38)(39)的初始可行解为

,最优解为
,即
均满足(39)式约束,我们假设
的取值范围为
,由(39)式
的约束条件我们知道
  1. 异号时,
    位于直线
    上,如下图所示

5cb00448-492f-eb11-8da9-e4434bdf6706.png

由(39)式约束我们有

  • 时(左上那条直线)

  • 时(右下那条直线)

联立以上各式可得

  1. 同号时,
    位于直线
    上,如下图所示

61b00448-492f-eb11-8da9-e4434bdf6706.png

由(39)式约束我们有

  • 时(右上那条直线)

  • 时(左下那条直线)

联立以上各式得得

我们假设

未经其取值范围
裁剪的最优解为
,令

时,
表示预测值与真实值之差。 我们引入符号

将(42)式代入(38)式可得

由(39)式和

可得

将(44)代入(43)式可得

求导数可得

令导数为0得

由(39)式约束我们知道

并将其代入(47)式得

并代入(48)式得

我们知道

的取值范围为
,所以我们得到
的最终解为

求解得到

4.2 两个变量选择

SMO算法在每个子问题中选择两个变量进行优化,其中至少有一个变量是违反KKT条件的。

4.2.1 选择第一个变量

第一个变量选择的过程也称为外层循环,外层循环在训练样本中选取违反KKT条件最严重的样本,并将其对应的变量作为第一个变量。具体地检验训练样本

是否满足KKT条件

其中

在检验过程中,外层循环先遍历所有满足条件

的样本,即在间隔边界上的支持向量,检验他们是否满足KKT条件。如果这些样本都满足KKT条件则遍历整个训练集,检验他们是否满足KKT条件。

4.2.2 选择第二个变量

第二个变量的选择过程也称为内层循环。假设外层循环已经找到第一个变量

,我们在内层循环中需要找到第二个变量
,第二个变量选择的依据是期望能使
有足够大的变化。

由(49)式我们知道

依赖于
,一种简单的做法是选择
使其对应的
最大。因为
已经确定则
也是确定的。如果
则选择最小的
作为
,如果
则选择最大的
作为
. 为了加快计算,通常会将
缓存起来。

如果内层循环通过上述方法选择的

不能使目标函数有足够的下降,那么再采用以下启发式规则继续选择
。遍历在间隔边界上的所有支持向量,依次尝试将其对应的变量作为
直到目标函数有足够的下降,如果还找不到合适的
,那么遍历整个训练集,如果还是找不到合适的
则放弃第一个
,再通过外层循环寻找另外的
.

4.2.3 参数更新

在每次完成两个变量的优化后都要更新

,当
时由(51)式可得

代入

可得

由(41)式我们有

调整(54)式中表达式的位置我们有

将(55)式代入(53)式我们得到

的解为

时我们用同样的方法可求得
的解为

如果

同时满足条件
时,有
。如果
等于0或者
,则
以及他们之间的值都是符合KKT条件的阈值,此时选择他们的平均值作为
.

在每次完成两个变量优化后还需要更新

的值。我们通过支持向量以及支持向量对应的变量来更新

其中

为支持向量,
为所有支持向量的集合,
对应的变量。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值