python学智能算法(三十二)|SVM-软边界理解

发布于:2025-08-07 ⋅ 阅读:(18) ⋅ 点赞:(0)

【1】引言

前序学习进程中,已经对SVM的KKT条件Slater条件等进行了探究,但这些都是完美情况,数据线性可分。
实际生活中需要处理的数据往往因为各式各样的原因会不可分,所以必须学会容忍一些小错误,完美的很难永恒存在。
为描述这种小错误的存在,软边界被定义出来。

【2】软边界定义

在早期的拉格朗日函数构造中,我们很熟悉函数距离F的定义公式: F = min ⁡ i = 1 , . . . , m y i ( w ⋅ x i + b ) F=\min_{i=1,...,m}y_{i}(w \cdot x_{i}+b) F=i=1,...,mminyi(wxi+b)
这个时候先把最小的函数间隔调整为1,就会有 F ≥ 1 F\geq 1 F1
此时最好换一种写法,把F改为g: g = y i ( w ⋅ x i + b ) ≥ 1 g=y_{i}(w\cdot x_{i}+b)\geq 1 g=yi(wxi+b)1
但因为有一些淘气的点存在,所以给上述公式配一个变量项 ξ i \xi_{i} ξi,这个时候再把g改为h,有:
h = y i ( w ⋅ x i + b ) ≥ 1 − ξ i h=y_{i}(w\cdot x_{i}+b)\geq 1-\xi_{i} h=yi(wxi+b)1ξi
之前我们已经推算过,几何距离和最优化几何距离是不断变化数学表达式的效果。

几何距离: δ = F ∣ ∣ w ∣ ∣ \delta=\frac{F}{||w||} δ=wF
最佳几何距离:通过同比率调整w和b,使得F=1,从而有 δ m a x = 1 ∣ ∣ w ∣ ∣ \delta_{max}=\frac{1}{||w||} δmax=w1
在此基础上进而转化为距离函数 f f f f = min ⁡ 1 2 ∣ ∣ w ∣ ∣ 2 f=\min \frac{1}{2}||w||^2 f=min21w2

现在匹配带有变量项 ξ \xi ξ的情况,改写上述定义:
几何距离: δ ξ = h ∣ ∣ w ∣ ∣ \delta_{\xi}=\frac{h}{||w||} δξ=wh
最佳几何距离:通过同比率调整w和b,使得F=1,变量项这个时候就出现了,从而有 δ m a x , ξ i = 1 − ξ i ∣ ∣ w ∣ ∣ \delta_{max,\xi_{i}}=\frac{1-\xi_{i}}{||w||} δmaxξi=w1ξi
此时的距离函数 f f f包括两部分,第一部分是单纯和 ∣ ∣ w ∣ ∣ ||w|| w相关,另一部分的影响则来自在 ∣ ∣ w ∣ ∣ ||w|| w确认时, ξ i \xi_{i} ξi的存在。为了避免麻烦,定义最优化几何距离为:
f = min ⁡ 1 2 ∣ ∣ w ∣ ∣ 2 + C ∑ i = 1 n ξ i f=\min \frac{1}{2}||w||^2+C\sum_{i=1}^{n}\xi_{i} f=min21w2+Ci=1nξi
这就是SVM的软边界公式。
此处的新增项 C ∑ i = 1 n ξ i C\sum_{i=1}^{n}\xi_{i} Ci=1nξi是错误惩罚项。

定义一个常数C有很多好处:
首先实际上每个 ξ \xi ξ的大小都不一样,如果定义 C i ξ i C_{i}\xi_{i} Ciξi会让公式变得异常复杂,所以C放在求和符号之前,可以简化公式;
然后C放在求和符号之前,实际上对变量项进行线性化处理,待求解问题的结构变得简单,在之后构造拉格朗日函数也会变得相对容易。
从更大的层面,我们也更希望从整体的角度控制模型对错误的容忍度,所以定义一个常数C可以实现快速调整,非常符合调参数的期待。

【3】总结

初步学习了支持向量机的软边界公式。


网站公告

今日签到

点亮在社区的每一天
去签到