人工智能学习笔记 - 机器学习算法 - 监督学习 - 支持向量机(SVM)与核方法
支持向量机(Support Vector Machine, SVM)是一类基于几何间隔最大化思想的监督学习算法,广泛用于分类与回归任务。SVM 的核心优势在于理论严谨、泛化能力强,并且可以通过核方法处理非线性问题。
线性可分情况下的 SVM
线性分类模型
对于二分类问题,SVM 使用线性函数作为分类超平面:
f(x)=w⊤x+b
预测规则为:
y^=sign(f(x))
其中:
- w:法向量,决定超平面的方向
- b:偏置项,决定超平面的位置
最大间隔(Maximum Margin)
几何间隔
对于样本 (xi,yi),其到分类超平面的几何间隔定义为:
γi=∥w∥yi(w⊤xi+b)
SVM 的目标是 最大化最小几何间隔:
w,bmaximinγi
等价优化问题(硬间隔)
在样本完全线性可分的情况下,上述问题等价为:
w,bmin21∥w∥2
约束条件为:
yi(w⊤xi+b)≥1,i=1,…,n
解释:
- ∥w∥2 越小,间隔越大
- 约束确保所有样本被正确分类且距离边界至少为 1
支持向量(Support Vectors)
满足以下条件的样本称为支持向量:
yi(w⊤xi+b)=1
特点:
- 仅支持向量决定最终超平面
- 非支持向量对模型无影响
- 提升模型的鲁棒性
软间隔 SVM(Soft Margin)
引入松弛变量
现实数据通常不可完全线性可分,引入松弛变量 ξi:
yi(w⊤xi+b)≥1−ξi,ξi≥0
带正则项的优化目标
w,b,ξmin21∥w∥2+Ci=1∑nξi
其中:
- 21∥w∥2:控制模型复杂度(间隔最大化)
- ∑ξi:衡量误分类程度
- C:惩罚系数,平衡“间隔大小”和“分类错误”
参数 C 的作用
核方法(Kernel Trick)
非线性问题的挑战
线性 SVM 无法处理非线性可分数据,例如“同心圆”结构。
解决思路:
映射函数:
ϕ:x→ϕ(x)
核函数的思想
在对偶问题中,SVM 只依赖样本内积:
⟨ϕ(xi),ϕ(xj)⟩
定义核函数:
K(xi,xj)=ϕ(xi)⊤ϕ(xj)
无需显式计算 ϕ(x),即可完成高维计算。
常见核函数
线性核
K(x,z)=x⊤z
多项式核(Polynomial Kernel)
K(x,z)=(x⊤z+c)d
参数含义:
特点:
RBF 核(高斯核)
K(x,z)=exp(−2σ2∥x−z∥2)
或等价写法:
K(x,z)=exp(−γ∥x−z∥2)
其中:
γ=2σ21
特点:
核参数与模型行为