序言:趁热打铁,再更一章!
【看山是山】
SVM 的底层思想是在高维空间中寻找最优的决策边界,以实现数据的分类。即找到一个超平面,使得两个类别之间的间隔最大化。这个超平面由支持向量定义,这些支持向量是距离决策边界最近的那些数据点。 这也是支持向量机名称的由来。
知识点提炼 ABSTRACT:
a.SVM 核函数:线性核;多项式核函数;高斯核函数;Sigmoid 核:
b.SMO:求解凸二次规划的最优化算法
c.SVM 损失函数:
支持向量机的学习算法是求解凸二次规划的最优化算法。
支持向量机学习方法包含构建由简至繁的模型:
线性可分支持向量机---线性支持向量机---非线性支持向量机(使用核函数)
- 当训练数据线性可分时,通过硬间隔最大化(hard margin maximization)学习一个线性的分类器即线性可分支持向量机,又成为硬间隔支持向量机;
- 当训练数据近似线性可分时,通过软间隔最大化(soft margin maximization)也学习一个线性的分类器,即线性支持向量机,又称为软间隔支持向量机;
- 当训练数据不可分时,通过核技巧(kernel trick)及软间隔最大化,学习非线性支持向量机。
注:以上各 SVM 的数学推导应该熟悉:硬间隔最大化(几何间隔)---学习的对偶问题---软间隔最大化(引入松弛变量)---非线性支持向量机(核技巧)。
【看山不是山】
(1). 分割超平面(在二维中叫做分割线)。首先构造超平面:
然后使得两个类别之间的间隔(margin)最大化,也即目标函数 (由间隔的倒数表示)
这是一个凸优化问题,(凸二次规划让人喜欢的地方就在于,它有全局最优解,而且可以找到,并且为了提高解的效率,即收敛速度,会转化为其对偶问题)为了方便求解,转换为其拉格朗日对偶问题:
最优解需要满足KKT条件,这样便可以利用SMO算法快速求解。
(2). 正则化参数C(软间隔)
又称松弛变量,使得模型在追求最大化间隔的同时,也能够处理现实世界中的不完美数据,提高了模型的实用性和泛化能力。通过调整正则化参数C,我们可以控制模型对间隔大小和分类错误的权衡,以达到最佳的分类效果。
接着,最优解需要满足KKT条件,
在本问题中为,
最终化简形式为:
松弛变量的引入是SVM算法中的一个重要改进,它使得模型在追求最大化间隔的同时,也能够处理现实世界中的不完美数据,提高了模型的实用性和泛化能力。通过调整正则化参数C,我们可以控制模型对间隔大小和分类错误的权衡,以达到最佳的分类效果。
(3). 核函数(非线性分隔)
在原始特征空间中,数据可能不是线性可分的。核技巧允许SVM在更高维的空间中进行计算,以便找到非线性的决策边界。
核技巧的关键在于核函数的使用,核函数是一个能够计算两个数据点在新特征空间中内积的函数,理论表示为:将 扩展为 。常见的核函数 包括线性核、多项式核、径向基函数(RBF)核和sigmoid核。核技巧是SVM算法中一个非常关键的部分,它极大地提高了SVM在处理复杂数据集时的能力。通过合理选择和调整核函数,可以有效地提高模型的分类性能。
(4). SVM原始目标优化求解(凸优化问题)
前面提到过对偶问题和原问题满足的几个条件,首先由于目标函数和线性约束都是凸函数,而且这里不存在等式约束。因此,一定存在 、,使得 是原问题的解,是对偶问题的解。在这里,求 就是求 了。
支持向量的 ,其他点 。
【看山还是山】
Q1:SVM为什么采用间隔最大化?
当训练数据线性可分时,存在无穷个分离超平面可以将两类数据正确分开。感知机利用误分类最小策略,求得分离超平面,不过此时的解有无穷多个。线性可分支持向量机利用间隔最大化求得最优分离超平面,这时,解是唯一的。另一方面,此时的分隔超平面所产生的分类结果是最鲁棒的,对未知实例的泛化能力最强。
然后应该借此阐述,几何间隔,函数间隔,及从函数间隔求解最小化 时的w和b。即线性可分支持向量机学习算法—最大间隔法的由来。
Q2: 为什么要将求解SVM的原始问题转换为其对偶问题?
对偶问题往往更易求解(当我们寻找约束存在时的最优点的时候,约束的存在虽然减小了需要搜寻的范围,但是却使问题变得更加复杂。为了使问题变得易于处理,我们的方法是把目标函数和约束全部融入一个新的函数,即拉格朗日函数,再通过这个函数来寻找最优点。)自然引入核函数,进而推广到非线性分类问题
Q3: 为什么SVM要引入核函数?
当样本在原始空间线性不可分时,可将样本从原始空间映射到一个更高维的特征空间,使得样本在这个特征空间内线性可分。
SVM叫做结构风险最小化算法,所谓结构风险最小化,意思就是在训练误差和模型复杂度之间寻求平衡,防止过拟合,从而达到真实误差的最小化。未达到结构风险最小化的目的,最常用的方法就是添加正则项,后面的博客我会具体分析各种正则因子的不同,这里就不扯远了。但是,你发现没,SVM的目标函数里居然自带正则项!!!
L2 regularization(权重衰减),L2正则化就是在代价函数后面再加上一个正则化项,防止过拟合。更小的权重。
L1 regularization,可以让一部分权重变为零,因此产生稀疏模型。更少的参数。
【仁秀银的喷空小卖部】
有需求的小伙伴可以光顾我的小卖部~