支持向量机(三)非线性支持向量机与核函数

支持向量机(一)线性可分支持向量机

支持向量机(二)线性支持向量机

支持向量机(三)非线性支持向量机与核函数

支持向量机(四)SMO算法



一、核技巧

1.非线性分类问题

如图 7.7,无法用直线(线性模型)将正实例点 “●”、负实例点 “×” 正确分开,但可用一条椭圆曲线(非线性模型)将其分开。

非线性问题不好求解,可将非线性问题变换为线性问题,如图 7.7,将左图中的椭圆变为右图中的直线。

设原空间为 χR2R2,x=(x(1),x(2))Tχ,新空间为 ZR2R2,z=(z(1),z(2))TZ,定义从原空间到新空间的变化:

z=ϕ(x)=((x(1))2,(x(2))2)T

原空间的椭圆

ω1(x(1))2+ω2(x(2))2+b=0

变为新空间中的直线

ω1z(1)+ω2z(2)+b=0

这样,非线性问题变换为线性问题。

核技巧:通过一个非线性变换 将输入空间(欧式空间 R2R2 或离散集合)对应于一个特征空间(希尔伯特空间 H),使输入空间 RnRn 的超曲面模型对应于特征空间 H 中的超平面模型(支持向量机)。


2.核函数的定义

定义:χ 是输入空间,H 为特征空间,如果存在从 χH 的映射

(1)ϕ(x):χH

使得对所有 x,zχ,函数 K(x,z) 满足条件

(2)K(x,z)=ϕ(x)ϕ(z)

则称 K(x,z)核函数ϕ(x) 为映射函数。

对于给定的核函数 K(x,z),特征空间 H 和映射函数 ϕ 取法不唯一,可以取不同的特征空间,即使同一特征空间也可以取不同的映射。

实例 1 输入空间 R2R2,核函数 K(x,z)=(xz)2,找出其相关的特征空间 H 和映射 ϕ(x)

解: 取特征空间 H=R3R3,记 x=(x(1),x(2))Tz=(z(1),z(1))T,由于

(xz)2=(x(1)z(1)+x(2)z(2))2=(x(1)z(1))2+2x(1)z(1)x(2)z(2)+(x(2)z(2))2

所以可以取映射

ϕ(x)=((x(1))2,2x(1)x(2),(x(2))2)T

容易验证 ϕ(x)ϕ(z)=(xz)2=K(x,z)

仍取 H=R3R3 以及

ϕ(x)=12((x(1))2(x(2))2,2x(1)x(2),(x(1))2+(x(2))2)T

同样有 ϕ(x)ϕ(z)=(xz)2=K(x,z)

还可以取 H=R4R4

ϕ(x)=((x(1))2,x(1)x(2),x(1)x(2),(x(2))2)T


3.核技巧在支持向量机的应用

线性支持向量机的对偶问题中,目标函数、决策函数都只涉及输入实例与实例之间的内积。

将对偶问题的目标函数中的内积 xixj 用核函数 K(xi,xj)=ϕ(xi)ϕ(xj) 来代替。此时对偶问题的目标函数为

W(α)=12i=1Nj=1NαiαjyiyjK(xi,xj)i=1Nαi

分类决策函数为

f(x)=sign(i=1Nsαiyiϕ(xi)ϕ(x)+b)=sign(i=1NsαiyiK(xi,x)+b)

这等价于经过映射函数 ϕ 将输入空间中的内积 xixj 变换为特征空间中的内积 ϕ(xi)ϕ(xj),在新的特征空间里学习线性支持向量机。

当映射函数是非线性时,学习到含有核函数的支持向量机是非线性支持向量机。学习是隐式地在特征空间进行的,不需要显示地定义特征空间和映射函数。



二、正定核

对称函数 K(x,z) 成为核函数(通常指正定核函数)的充要条件:设 K(x,z) 是定义在 χ×χ 上的对称函数,即 K(x,z)=K(z,x),对任意的 x1,x2,...,xmχK(x,z) 对应的 Gram 矩阵是半正定的


希尔伯特空间:是一个完备的,可能是无限维的,被赋予内积的线性空间(线性空间亦称向量空间)。

完备:指的是对极限计算是封闭的,即计算结果还是属于线性空间。

线性空间:指的是对加法、数乘计算是封闭的,即计算结果还是属于线性空间。

希尔伯特空间是函数空间,它的每一个元素都可以看作是函数。


构成希尔伯特空间的步骤:定义映射函数 ϕ 并构成向量空间 S;然后在 S 上定义内积构成内积空间;最后将 S 完备化构成希尔伯特空间。

1.定义映射,构成向量空间 S

定义映射

ϕ:xK(  ,x)

根据这一映射,对任意的 xiχαiRRi=1,2,...,m,定义线性组合

f()=i=1NαiK(  ,xi)



三、常用核函数

1.线性核函数

K(x,z)=xz

线性核函数对应的是线性可分支持向量机。

2.多项式核函数

K(x,z)=(xz+1)P

对应的支持向量机是一个 p 次多项式分类器。此时的分类决策函数为

f(x)=sign(i=1Nsαiyi(xix+1)p+b)

3.高斯核函数

K(x,z)=exp(||xz||22σ2),    σ>0

对应的支持向量机是高斯径向基函数分类器。此时分类决策树函数为

f(x)=sign(i=1Nsαiyiexp(||xz||22σ2)+b)

4.拉普拉斯核函数

K(x,z)=exp(||xz||2σ),    σ>0

5.Sigmoid核函数

K(x,z)=tanh(βxz+θ),    β>0,θ<0

6.字符串核函数

核函数不仅定义在欧式空间,还可定义在离散数据的集合上。

比如,字符串核是定义在字符串集合上的核函数。字符串核函数在文本分类、信息检索、生物信息等方面都有应用。



四、非线性支持向量机

利用核技巧,将线性分类的学习方法应用到非线性分类问题中。

将线性支持向量机扩展到非线性支持向量机,只需将线性支持向量机对偶形式中的内积换成核函数。

从非线性分类训练集,通过核函数与软间隔最大化,或凸二次规划 (3)~(5),学习得到的分类决策函数

(3)f(x)=sign(i=1NαiyiK(x,xi)+b)

称为非线性支持向量机,K(x,z) 是正定核函数。


1.非线性支持向量机学习算法

输入:训练集 T={(x1,y1),(x2,y2),...,(xN,yN)},其中 xiχ=RnRnyiY={1,1}i=1,2,...,N

输出:分类决策树

① 选取核函数 K(x,z) 和参数 C,构造并求解最优化问题

(3)minα    12i=1Nj=1NαiαjyiyjK(xi,xj)i=1Nαi(4)s.t.    i=1Nαiyi=0(5)0αiC,    i=1,2,...,N

求最优解 α=(α1,α2,...,αN)T

② 选择 α 的一个正分量 0<αj<C,计算

b=yji=1NαiyiK(xi,xj)

③ 构造决策函数:

f(x)=sign(i=1NαiyiK(x,xi)+b)

K(x,z) 是正定核函数时, (3)~(5) 是凸二次规划问题,解存在。



五、总结

  • 对于输入空间中的非线性分类问题,通过非线性变换转化为高维特征空间中的线性分类问题。然后在高维特征空间中学习线性支持向量机。

  • 由于在线性支持向量机学习的对偶问题里,目标函数和分类决策函数都只涉及实例与实例之间的内积,所以不需要显式地指定非线性变换,而是用核函数来替换当中的内积。

  • 核函数表示,通过一个非线性转换后的两个实例间的内积。

    具体地,K(x,z) 是一个核函数,或正定核,意味着存在一个从输入空间 χ 到特征空间 H 的映射 ϕ(x)χH,对任意的 x,zχ,有

    K(x,z)=ϕ(x)ϕ(z)

  • 对称函数 K(x,z) 为正定核的充要条件:里面任何点的集合形成的 Gram 矩阵是半正定的。即对任意 xiχi=1,2,...,m,对任意正整数 m,对称函数 K(x,z) 对应的 Gram 矩阵是半正定的。所以在线性支持向量机学习的对偶问题中,用核函数 K(x,z)替代内积,求得的就是非线性支持向量机

    f(x)=sign(i=1NαiyiK(x,xi)+b)



posted @   做梦当财神  阅读(1074)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示