博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
机器学习--支持矢量机(2)
阅读量:4157 次
发布时间:2019-05-26

本文共 1297 字,大约阅读时间需要 4 分钟。

本文转自:


五、拉格朗日对偶(Lagrange duality)

(1)拉格朗日算子

如果我们需要求解形如这样的优化问题:

我们定义拉格朗日算子(Lagrangian):

其中,称为拉格朗日乘数(Lagrange multipliers)。

(2)广义拉格朗日算子

在上述优化问题上引入带有不等式的约束条件:

定义广义拉格朗日算子为:

这里的拉格朗日乘数分别为和。()

(3)拉格朗日原始问题

这里的字母P是代表“primal”。

如果w违反原始问题的约束条件(存在某些i,使得或),将使得变为无穷大:

相反,如果约束条件严格满足,那么。即:

我们的目标求的最小值,在满足约束条件的情况下,等价于求解的最小值。

为了方便讨论,定义,我们称p*的值为原始问题。

(4)拉格朗日对偶问题

这里的下标D,代表“dual”。

那么原始问题的对偶问题可以表示为:

为了方便讨论,定义,称d*的值为对偶问题。

与上式比较可看出,仅max和min的位置做了交换,而其他不变。因此能够得出下面的结论(对于任意函数来说,max min的值总是小于min max的值):

并且在满足一定条件的情况下等号成立,即:

因此,可以通过求解对偶问题来间接的求解原始问题。

六、KKT条件(Karush-Kahn-Tucher necessary and sufficient conditions)

如果一个最优化问题的目标函数和约束条件分别满足如下形式:

拉格朗日算子为:

假设存在,其中是原是问题的可行解,而是对偶问题的可行解。如果满足KKT条件,那么既是原始问题的解同时也是对偶问题的解:

KKT条件表示如下:

再加上原本约束条件和拉格朗日算子的约束KKT条件可以表示为:

留意以上约束条件的第(2)(3)(5)条,由于 ,因此当时,,而当时,。下文介绍支持向量机时将会看到,这个特殊性质,是保证SVM仅仅需要少量的“支持向量”的关键。

七、支持向量机

(1)支持向量

如下图所示,为训练样本的决策边界(超平面),A,B,C三点为和决策边界距离最近的三个点(一负两正三个样本),而超平面的确定仅仅依赖于这三个点,而与其他的点无关,这三个点就称为支持向量(support vectors)。

在KKT条件中,支持向量的,;而非支持向量,。

(2)优化的分类器

分类器的目标函数和约束条件为如下形式:

我们可以将约束条件改写为:

再构造拉格朗日算子:

这里构造的拉格朗日算子仅有拉格朗日乘数而没有

首先,固定,让关于w,b最小:

解得:

再对b求偏导:

再将带入

又,因此有:

我们再求对偶问题,即关于的最大值:

经过这样处理,将问题转换成仅仅和的值相关。

求出的值,再通过,求出的w值。然后通过

求出w和b的值以后,我们可以写出超平面的解析式:

从上式可以看出,最终超平面的解析式仅仅和训练样本,以及相关。对于一个新的无标记点,仅仅需要计算其与样本的内积即可得出他的类别。

更为巧妙的是:所有非支持向量的都为0(非支持向量都在函数间隔为1的超平面后方,不决定超平面位置),因此计算仅仅设计少量的支持向量点。

你可能感兴趣的文章
2020.11.02 mybatis-分页
查看>>
2020.11.20 前端html
查看>>
2021.1.15 主从复制、持久化备份、过半投票、区块链、p2p
查看>>
2021.3.1 Vue
查看>>
2021-07-04 分布式项目
查看>>
2019.5.28 mockti的分析
查看>>
2019.6.12 Spring_IOC
查看>>
2019.6.14 spring-AOP
查看>>
2019.6.18 spring的xml和注解
查看>>
2019.7.17docker
查看>>
2019.7.19 springboot与数据访问
查看>>
2019.7.24 springboot启动初始化过程源码分析和自定义starter场景启动
查看>>
2019.8.13 oracle数据库操作
查看>>
(转)Flutter 1.9 正式发布!令人期待的全平台创新开发体验
查看>>
一文看懂Google I/O 2021开发者大会
查看>>
谷歌 Flutter 2.0 新特性概览
查看>>
联想E440设置U盘启动的方法
查看>>
ubuntu设置ip和dns
查看>>
jboss 上传文件路径解决
查看>>
java时间操作函数汇总
查看>>