支持向量机原理和几何含义
对于线性可分数据集,支持向量机就是找到距离正负样本最远的超平面,相对于感知机,这个超平面是唯一的,泛化性能更好。
支持向量机的超平面位于两类样本的正中间,距离最近的正负样本的距离相同,能够容忍训练样本的局部扰动,感知机可以得到无穷多个划分超平面,但这些感知机的这些解有的距离正样本太近,未知的正样本很容易跨过超平面从而被误分类为负类;或者说这些解距离负样本太近,未知的负样本很容易垮过超平面从而被误分类正类。
当数据集线性可分时,使用硬间隔线性可分支持向量机;当数据集近似线性可分时,使用软间隔线性支持向量机;当数据集线性不可分时,使用软间隔和核函数构造非线性支持向量机
支持向量机要完成的任务
- 将几何上的定义转变为优化问题。例如会讲到超平面,法向量,函数间隔,几何间隔,间隔,点到超平面的距离,间隔最大化,支持向量,最大间隔,支持向量机的基本型(原问题)
- 优化问题的解法。例如会讲到拉格朗日函数,拉格朗日乘子,对偶函数,对偶问题,凸二次规划,SMO算法
- 核函数。原始空间映射到高维空间,内积计算,核矩阵,
- 软间隔。某些样本不满足约束,损失函数,松弛变量,软间隔支持向量机
问题
1. 为什么会引入软间隔支持向量机?
因为硬间隔SVM对噪声比较敏感,当数据集中有噪声数据时,硬间隔SVM也可以把训练集正确分类,于是超平面会向一个类靠拢,支持向量机的间隔会缩小,从而产生了过拟合,导致其泛化能力变差。引入软间隔支持向量机,允许一部分样本“犯错”,使得模型复杂度降低,从而提升泛化能力。软间隔引入了一个松弛变量的概念,每个样本都有一个松弛变量,当松弛变量越大时说明样本的离群越远,松弛变量为0时,说明样本正确分类,没有离群。通过惩罚因子C控制对离群的惩罚,C越大,对离群的惩罚越大,此时的软间隔支持向量机朝着硬间隔支持向量机退化。C应该取合适的值,保证对噪声的容忍又能对大部分样本正确分类。
2. 为什么要将求解SVM的原问题转换为其对偶问题
- 无论主问题是否是凸优化问题,对偶问题恒为凸优化问题,因此更加容易求解。原问题的时间复杂度和特征数量有关,对偶问题的时间复杂度和样本数有关,当特征数量高于样本数时,对偶问题求解更加高效。
- 对偶问题自然地引入了和函数,将支持向量机推广到非线性分类问题。