支持向量机(三)
软间隔与正则化
在现实中,训练数据集不一定能用超平面完全划分开,提出允许支持向量机在一些样本上出错,引入“软间隔”的概念。
要求所有样本都必须划分正确,称为“硬间隔”,软间隔允许某些样本不满足约束
当然,在最大化间隔的同时,不满足约束的样本尽可能少,于是优化目标可写为:
其中 是一个常数, 是0/1损失函数,即
KaTeX parse error: Got function '\newline' with no arguments as argument to '\begin{array}' at position 1: \̲n̲e̲w̲l̲i̲n̲e̲
当C无穷大时,公式(2)迫使所有样板满足公式(1),当C取有限值时,公式(2)允许一些样本不满足约束。
然而 非凸、非连续,数学性质不好,使得公式(2)不易求解,于是想到利用一些函数替代 ,称为替代函数
若采用hinge损失,公式(2)变为
引入“松弛变量” , 将公式(4)重写成
这就是软间隔支持向量机。
显然,公式(5)中每个样本对应一个松弛变量,用以表征该样本不满足约束公式(1)的程度。这是一个二次规划问题,可以通过拉格朗日乘子法求解,最终得到其对偶问题是
上式相比硬间隔对偶问题的唯一差别是对偶变量的约束不同,前者是 ,后者是 。但公式(6)也可以用SMO算法求解。
正则化
不管替代损失函数用哪个,模型都有一个共同的特点:优化目标的第一项用来描述划分超平面的“间隔”大小,另一项 用来表述训练集上的误差,写作更一般的形式:
其中 称为结构风险,用于描述模型 f 的某些性质,第二项 称为经验风险,用于描述模型与训练数据的契合程度。C对二者进行折中。公式(7)称为“正则化”问题, 称为正则化项,C称为正则化常数。 范数是常用的正则化项,其中 范数倾向于 w 的分量取值尽量均衡,即非零分量个数尽量稠密, 和 范数倾向于w的分量尽量稀疏,即非零分量个数尽量少。
内容太多,下面直接写结论
用于回归问题叫支持向量回归(SVR),SVR支持向量也是训练样本的一部分,即解具有稀疏性。
若不考虑偏移项b, 无论是SVM还是SVR,学得的模型总能表示成核函数的线性组合((二)的公式(3))。基于核函数的方法叫做核方法,通过“核化”将线性学习器拓展为非线性学习器。
SVM针对的是二分类任务,进行拓展后可多分类。
核函数的选择没理论指导。
总评
SVM算法的主要优点有:
-
解决高维特征的分类问题和回归问题很有效,在特征维度大于样本数时依然有很好的效果。
-
仅仅使用一部分支持向量来做超平面的决策,无需依赖全部数据。
-
有大量的核函数可以使用,从而可以很灵活的来解决各种非线性的分类回归问题。
4)样本量不是海量数据的时候,分类准确率高,泛化能力强。
SVM算法的主要缺点有:
-
如果特征维度远远大于样本数,则SVM表现一般。
-
SVM在样本量非常大,核函数映射维度非常高时,计算量过大,不太适合使用。
3)非线性问题的核函数的选择没有通用标准,难以选择一个合适的核函数。
4)SVM对缺失数据敏感。
参考
周志华《机器学习》
https://www.cnblogs.com/pinard/p/6103615.html
https://www.cnblogs.com/pinard/p/6113120.html
李航《统计学习方法》