概述
引
今天我们讲解一下SVM的核函数,那么什么是核函数呢?我也不知道啊,但是我们可以从普通的回归任务出发。假设我们有这样一个式子:
begin{equation}
begin{split}
h_theta (x_1, x_2) = theta_0 + theta_1 x_1 + theta_2 x_2 + theta_3 x{_1^2} + theta_4 x_2^2
end{split}
end{equation}
begin{equation}
begin{split}
h_theta (x_1, x_2) = theta_0 + theta_1 x_1 + theta_2 x_2 + theta_3 x_3 + theta_4 x_4
end{split}
end{equation}
从上面可以看出,原来的2元n次多项式回归变成了4元1次多项式回归,通过这个改进,我们是不是把上述的非线性回归重新变回了线性回归,即把特征从2维空间映射到了4维空间。这就给了我们启发,如果想把非线性特征转变为线性特征,只要把数据特征映射到高维特征空间上去。
在SVM中,我们也可以利用这样的思想。对于SVM不可分的低维数据,只要将其映射到高维,就可以利用前两节讲解的线性SVM的方法进行求解。
核函数
上面我们讲解了回归中将非线性映射到线性的思想,那么在SVM中,我们该如何运用这种思想呢?在SVM中,我们引入了一种叫做核函数的东西。回顾上一小节我们的目标函数:
begin{equation}
max sum_{i=1}^{m}alpha_i - frac{1}{2} sum sum alpha_i alpha_j y_i y_j x_i^T x_j
end{equation}
begin{equation}
begin{split}
s.t. &sum_{i=1}^m alpha_i y_i = 0 \
&alpha_i geq 0 , i = 1,2,…,m
end{split}
end{equation}
begin{equation}
max sum_{i=1}^{m}alpha_i - frac{1}{2} sum sum alpha_i alpha_j y_i y_j phi (x_i^T) phi (x_j)
end{equation}
begin{equation}
begin{split}
s.t. &sum_{i=1}^m alpha_i y_i = 0 \
&alpha_i geq 0 , i = 1,2,…,m
end{split}
end{equation}
假设(phi)是从低维的输入空间(chi )到高维的 再生希尔伯特空间(mathcal{H})的映射。那么如果存在函数 (k(x_i,x_j)),对于任意的(x_i, x_j in chi),都有:
begin{equation}
k(x_i,x_j) = phi(x_i).phi(x_j)
end{equation}
那么什么样的函数可以作为核函数呢?周志华的西瓜书上给出了详细的定义。总的来说,核函数是一个 半正定核函数。一个函数想要成为半正定核函数,那么必须满足,它所对应的 Gram核矩阵是半正定的。也就是说,对于任意的(x_i in chi , i=1,2,3...m),(k(x_i,x_j))对应的核矩阵(K = bigg[ K(x_i, x_j )bigg])是半正定矩阵。那么什么是半正定矩阵呢?设(A)为实对称矩阵,对任意的非零向量 (x),有(x^TAx geq 0),那么我们称(A)是 半正定矩阵。
通过前面的讨论我们可以知道,我们希望样本在特征空间内线性可分,因此特征空间的好坏对支持向量机的性能至关重要,但是我们并不知道特征空间的形式时,我们并不知道什么样的核函数适合的,而核函数隐式地定义了这个特征空间。还好大佬们帮我们找到了一些核函数,常用的核函数也仅仅是以下几个。
线性核函数(Linear Kernel)
begin{equation}
k(x_i,x_j) = x_i^T x_j
end{equation}
多项式核函数(Polynomial Kernel)是线性不可分SVM常用核函数之一
begin{equation}
k(x_i,x_j) = (x_i^T x_j)^d
end{equation}
高斯核函数(Gaussian Kernel),有时候也称为径向基函数(Radial Basis Function)即RBF核,它是非线性SVM最常使用的核函数。
begin{equation}
k(x_i,x_j) = exp(- frac{||x_i^T x_j||}{2sigma^2}), sigma > 0 是高斯核的带宽
end{equation}
总结
核函数解决了SVM的线性不可分的情况,并且将线性SVM和非线性SVM进行了统一,降低了高维空间计算的复杂度,因此核函数是非常重要的一个概念,在其他的地方也有着重要的应用,如核PCA降维,核聚类,核感知机等。特征空间上去。最后
以上就是淡定硬币为你收集整理的SVM(三) 核函数的全部内容,希望文章能够帮你解决SVM(三) 核函数所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复