包含对三种支持向量机的介绍,包括线性可分支持向量机,线性支持向量机和非线性支持向量机,包含核函数和一种快速学习算法-序列最小最优化算法SMO。
线性支持向量机与软间隔最大化
假设训练集T={(x1,y1),(x2,y2),⋯,(xN,yN)},xi∈X=Rn,yi∈Y={+1,−1},i=1,2,⋯,N,这个训练数据集不是线性可分的,有一些特异点,将这些特异点去除之后,剩下的集合是线性可分的,所以我们对每一个样本点(xi,yi)引入一个松弛变量ξi≥0,之后约束条件变为:
yi(ω⋅xi+b)≥1−ξi
同时对于每一个松弛变量需要支付一个代价,所以目标函数变为:
12||ω||2+CN∑i=1ξi
C>0称为惩罚参数,其值越大对误分类的惩罚越大
线性支持向量机的学习问题的原始问题如下:
minω,b,ξ 12||ω||2+CN∑i=1ξis.t. yi(ω⋅xi+b)≥1−ξi,i=1,2,⋯,Nξi≥0,i=1,2,⋯,N
引入拉格朗日乘子,原始最优化问题的拉格朗日函数为:
L(ω,b,ξ,α,μ)≡12||ω||2+CN∑i=1ξi−N∑i=1αi(yi(ω⋅xi+b)−1+ξi)−N∑i=1μiξi
其中αi≥0,μi≥0
首先求L(ω,b,ξ,α,μ)对ω,b,ξ的极小:
∇ωL(ω,b,ξ,α,μ)=ω−N∑i=1αiyixi=0∇bL(ω,b,ξ,α,μ)=−N∑i=1αiyi=0∇ξiL(ω,b,ξ,α,μ)=C−αi−μi=0
可以得到:
ω=N∑i=1αiyixiN∑i=1αiyi=0C−αi−μi=0
将上式带到拉格朗日函数当中可以得到:
minω,b,ξL(ω,b,ξ,α,μ)=−12N∑i=1N∑j=1αiαjyiyj(xi⋅xj)+N∑i=1αi
再对minω,b,ξL(ω,b,ξ,α,μ)求α的最大即得对偶问题:
maxα −12N∑i=1N∑j=1αiαjyiyj(xi⋅xj)+N∑i=1αis.t. N∑i=1αiyi=0C−αi−μi=0αi≥0μi≥0,i=1,2,⋯,N
利用等式约束消去μi,只剩下变量αi,于是上式变为:
maxα −12N∑i=1N∑j=1αiαjyiyj(xi⋅xj)+N∑i=1αis.t. N∑i=1αiyi=00≤αi≤C
将上式的求极大变为求极小:
minα 12N∑i=1N∑j=1αiαjyiyj(xi⋅xj)−N∑i=1αis.t. N∑i=1αiyi=00≤αi≤C
通过求解对偶问题而得到原始问题的解,设α∗=(α∗1,α∗2,⋯,α∗N)T是对偶问题的解,存在下标j,使得0≤α∗j≤C,可以由α∗求得原始问题的解ω∗,b∗
ω∗=N∑i=1α∗iyixib∗=yj−N∑i=1α∗iyi(xi⋅xj)
其证明过程和线性可分支持向量机的类似
线性支持向量机学习算法:
输入:训练数据集T={(x1,y1),(x2,y2),⋯,(xN,yN)},其中xi∈X=Rn,yi∈Y={+1,−1},i=1,2,⋯,N
输出:分离超平面和分类决策函数
- 选择惩罚参数C>0,构造并求解约束最优化问题求得最优解α∗=(α∗1,α∗2,⋯,α∗N)T
minα 12N∑i=1N∑j=1αiαjyiyj(xi⋅xj)−N∑i=1αis.t. N∑i=1αiyi=00≤αi≤C,i=1,2,⋯,N
ω∗=N∑i=1α∗iyixi
选择α∗的一个分量0<α∗j<0,计算:
b∗=yj−N∑i=1α∗iyi(xi⋅xj)
N∑i=1α∗iyi(x⋅xi)+b∗=0f(x)=sign(N∑i=1α∗iyi(x⋅xi)+b∗)
训练数据中对应α∗i>0的样本点(xi,yi)的xi称为支持向量:
- α∗i<C,有ξi=0支持向量落在间隔边界上
- α∗i=C,0<ξi<1支持向量分类正确,落在间隔边界与分离超平面之间
- α∗i=C,ξi=1支持向量落在分离超平面上
- α∗i=C,ξi>1支持向量落在分离超平面误分一侧
- 实例xi到间隔边界的距离为ξi||ω||
- 两间隔边界之间的距离为2||ω||
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异