机器学习----支持向量机(核函数)

时间:2023-02-06 13:48:30
#线性不可分我们的SVM是找到一条分割直线,但是如果线性不可分怎么办?如下图:
机器学习----支持向量机(核函数)

可以看出,是有一个明显的分割线的,但是不是直线,这种情况下我们怎么用SVM呢?我们可以找到一种变化,让变换后的数据线性可分,用图形象的表示为:

机器学习----支持向量机(核函数)

图中的 ϕ 就是我们找到的线性变化。至此我们就能解决线性不可分问题。

核函数

我们接着说线性不可分问题。我们怎么找 ϕ 呢?有个想法是这样的:
比如原始数据满足的是二次函数规律那把原来的X,扩展成[X | X2]的形式,这样我们就又能进行线性回归了。同理,如果是三次,就扩展成[X | X2| X3],记作 ϕ(x)
正常线性可分问题dual问题为:

maxαipαi12i,j=1pyiyjαiαjxTixj

现在改写成:
maxαipαi12i,j=1pyiyjαiαjϕ(xi)Tϕ(xj)

接下来我们就要说核函数了(kernel)。注意到先变换再内积的复杂(二维就是2×2,三维就是3×3),我们就像有没有函数 κ 它满足这样优良的性质:
ϕ(xi)Tϕ(xj)=κ(xixj)

即它能把问题变成先低维预算,再直接映射的效果,我们把 κ 就叫做核函数。
常见的核函数有:

名称 表达式 参数
线性核 κ(xi,xj)=xTixj
多项式核 κ(xi,xj)=(xTixj)d d1
高斯核 κ(xi,xj)=exp(||xixj||22σ2) σ>0
拉普拉斯核 κ(xi,xj)=exp(||xixj||σ) σ>0
Sigmoid核 κ(xi,xj)=tank(βxTixj+θ) tanh为双曲正切函数, β>0,θ<0

下图是高斯核的例子:


机器学习----支持向量机(核函数)