目录
教材:周志华——机器学习(西瓜书)
间隔与支持向量
感知机和支持向量机的异同
同:都是利用超平面进行划分
异:
- 感知机只要求划分出即可,解不唯一
- 支持向量机要求找出正负样本都距离最远的超平面,解唯一 ——>不偏向负也不偏向正样本,泛化性能好
超平面的数学表示
超平面将空间划分为两个部分,其中法向量指向的方向为正空间,正空间内的点代入方程计算; 负空间内的点代入方程计算
间隔
样本点到超平面的距离计算公式
推导过程
注意:为一个常数
数据集关于超平面的几何间隔
利用超平面进行分类
根据此公式,我们不难看出
如果全部分类正确,则对于每一个样本点,它的分子为:
并且 或者 并且,则,
如果出现了分类错误的情况,则一定存在某个样本点,由于,则,
即下面这段话说的意思
注:中央指支持向量机所求的唯一超平面,通过 获取
最大间隔的获取
关键点:最大化问题——>最小化问题(凸优化问题)
假设样本集的分布如图所示
解释:,为了方便计算,变成2范数
对偶问题
概述
关于对偶问题的知识,我个人看到一篇讲的特别好的博客(比较长但易懂且透彻),把链接贴在这里【数学】拉格朗日对偶,从0到完全理解-CSDN博客
简单来说,设原始问题(一般凸优化中的问题都转换成最小值问题求解)的最优解为
- 若原始条件为弱对偶性时,对偶问题求出来的最优解,对偶问题求出来的最优解是原始问题最优解的下确界
- 若原始条件为强对偶性时,对偶问题求出来的最优解,则我们可以通过解对偶问题获得和原始问题一样的解(一般对偶问题比原始问题好求)
- 强对偶性满足的条件称为KKT条件
接下来我们针对问题进行具体论述:
原问题的对偶问题
步骤:求拉格朗日函数——>对各变量求偏导得到闭式解——>代回原函数得到对偶问题
KKT条件
一般情况
本例情况
从此条件中我们可以看出,对于样本集中的所有数据点,要么,要么
- 的点,不会计入f(x)的求和式中,对f(x)无影响
- 的点,位于最大间隔边界上,为支持向量
关键:最终模型与大部分样本无关,只与支持向量有关
SMO算法求解二次规划问题
基本思路:选定某一个/几个参数,用其他参数导出选定参数的极值。通过不断选定不同的参数最终收敛
具体操作:
如何选取变量:
已知: 和 只要有一个不满足KKT条件,目标函数在迭代后就会减小;且违背KKT条件的程度越大,更新后目标函数的减幅可能越大
第一个变量:选择违背KKT程度最大的变量
第二个变量:选使目标函数减幅最大的变量
====》问题:比较所有变量的目标函数减幅很复杂=====》启发式算法:选择间隔最大的变量(认为更新后会对目标函数造成较大影响)
作用效果:
双变量问题变成单变量问题,可求闭式解=====》问题简化
如何确定偏移项b:
核函数
低维问题——>高维问题
关键点:某问题在低维空间线性不可分,映射到高维空间后线性可分
已知:若问题为有限维(属性数有限),则一定可以投射到某个高维空间使问题变成线性可分的
以下步骤只是把变成,步骤完全一致
问题:高维空间中中不好求解=====》通过核函数解决
核函数
核函数的获取和定义先在此忽略
核函数不确定=====》支持向量机的最大变数/可调整参数
核函数的组合方式
软间隔与正则化
硬间隔:所有样本都必须满足条件
软间隔:允许某些样本不满足条件,但需要付出“代价”
软间隔下的优化
C控制样本不满足约束的严格程度
但上面那个的性质不好,非连续非凸,所以:
最终结果只是在约束上有一点差别
正则化问题
简单来说是模型性质与拟合程度的折中(过于追求模型性质可能导致过拟合,过于追求拟合可能导致模型的性质不是我们想要的)
支持向量回归
对偶问题
最终结果(KKT条件及详细描述略)
参考视频:
第6章-支持向量机_哔哩哔哩_bilibili