美文网首页
哲哲的ML笔记(二十六:SVM之核函数)

哲哲的ML笔记(二十六:SVM之核函数)

作者: 沿哲 | 来源:发表于2021-04-23 10:53 被阅读0次

什么是核函数

分类问题中,可以使用高级数的多项式模型来解决无法用直线进行分隔的分类问题


假设上图的假设函数是
h_\theta(x)=\theta_0+\theta_1x_1+\theta_2x_2+\theta_3x_1x_2+\theta_4x^2_1+\theta_5x^2_2+…

除了对原有的特征进行组合以外,有没有更好的方法来构造?我们可以利用核函数来计算出新的特征
可以用一系列的新的特征f来替换模型中的每一项:f_1=x_1,f_2=x_2,f_3=x_1x_2……

给定一个训练样本x,我们利用的各个特征与我们预先选定的地标l^1,l^2,l^3(landmarks)的近似程度来选取新的特征f_1, f_2,f_3


近似度的定义为
f_1=similarity(x,l^1)=e^{-\frac{\|x-l^1\|^2}{2\sigma^2}}
所有特征与地标l^1之间的距离的和定义如下:
\|x-l^1\|^2=\sum^{n}_{j=1}(x_j-l^1_j)^2
其中,核函数为similarity(x,l^1),具体而言,这里是一个高斯核函数(Gaussian Kernel)。 (注:这个函数与正态分布没什么实际上的关系,只是看上去像而已。

如果一个训练样本x与地标l之间的距离近似于0,则新特征f近似于1,如果训练样本与地标之间距离较远,则近似于0

假设我们的训练样本含有两个特征[x_1,x_2],给定地标与不同的\sigma值,见下图


当样本值与地标值重合时,核函数才具有最大值1

如下图,假设了一组\theta值,假设一个样本是图中的粉色点,距离l^1很近,f_1趋近于1,f_2f_3趋近于0,那么假设函数的值为1,预测为1
假设一个样本数是图中蓝色的点,f_1f_2f_3都趋近于0,假设函数为0,预测为0


这样,图中红色的封闭曲线所表示的范围,便是我们依据一个单一的训练样本和我们选取的地标所得出的判定边界,在预测时,我们采用的特征不是训练样本本身的特征,而是通过核函数计算出的新特征

核函数如何选取

通常是根据训练集的数量选择地标的数量,即如果训练集中有m个样本,则我们选取m个地标,并且令:l^1=x_1, l^2=x_2……。这样做的好处在于:现在我们得到的新特征是建立在原有特征与训练集中所有其他特征之间距离的基础之上的,即

对于一个样本x,根据核函数计算出f\in R^{m+1},当\theta^Tf\geq0,预测y=1
怎么得到\theta?通过代价函数,注意\sum^{m}_{j=1}\theta^2_j是加到m,不是n
minC\sum^{m}_{i=1}y^icost_1(\theta^Tf^i)+(1-y^i)cost_0(\theta^Tf^i)+\frac{1}{2}\sum^{m}_{j=1}\theta^2_j

下面是支持向量机的两个参数C\sigma的影响:

  1. C过大,相当于\lambda过小,过拟合
  2. sigma过大,f_i变化的非常平滑(见上一部分第3个图),欠拟合

使用SVM注意事项

尽管你不去写你自己的SVM的优化软件,但是你也需要做几件事:
1、参数C的选择,上一部分讨论过误差/方差在这方面的性质。
2、你选择不需要任何内核参数,没有内核参数的理念,也叫线性核函数。因此,如果有人说他使用了线性核的SVM(支持向量机),这就意味这他使用了不带有核函数的SVM(支持向量机)。

下面是一些普遍使用的准则:n为特征数,m为训练样本数。

  1. 如果相较于m而言,n要大许多,即训练集数据量不够支持我们训练一个复杂的非线性模型,我们选用逻辑回归模型或者不带核函数的支持向量机。
  2. 如果n较小,而且m大小中等,例如在 1-1000 之间,而在10-10000之间,使用高斯核函数的支持向量机。
  3. 如果n较小,而m较大,例如n在1-1000之间,而m大于50000,则使用支持向量机会非常慢,解决方案是创造、增加更多的特征,然后使用逻辑回归或不带核函数的支持向量机。

值得一提的是,神经网络在以上三种情况下都可能会有较好的表现,但是训练神经网络可能非常慢,选择支持向量机的原因主要在于它的代价函数是凸函数,不存在局部最小值

相关文章

网友评论

      本文标题:哲哲的ML笔记(二十六:SVM之核函数)

      本文链接:https://www.haomeiwen.com/subject/rqaqrltx.html