|
|
|
@ -567,6 +567,8 @@ where ![1604582794426](assets/1604582794426.png)
|
|
|
|
|
|
|
|
|
|
#### 核函数的目的
|
|
|
|
|
|
|
|
|
|
> 最基本的出发点是升维,使得数据更好一些,更多一些
|
|
|
|
|
|
|
|
|
|
核函数是SVM支持向量机当中最重要的函数
|
|
|
|
|
|
|
|
|
|
出发点
|
|
|
|
@ -587,3 +589,77 @@ where ![1604582794426](assets/1604582794426.png)
|
|
|
|
|
|
|
|
|
|
#### 线性核函数
|
|
|
|
|
|
|
|
|
|
- Linear核函数对数据不做任何变换。![1604671995246](assets/1604671995246.png)
|
|
|
|
|
|
|
|
|
|
- 何时用,特征已经比较丰富,样本数据量巨大,需要进行实时得出结果的问题
|
|
|
|
|
- 越复杂的模型,针对的数据集越窄,泛化能力越差,且处理速度很慢,当然越复杂也代表着越强大。
|
|
|
|
|
- 不需要设置任何参数,直接就可以用
|
|
|
|
|
|
|
|
|
|
#### 多项式核函数
|
|
|
|
|
|
|
|
|
|
- 需要给定3个参数![1604673235564](assets/1604673235564.png)
|
|
|
|
|
|
|
|
|
|
> Q越大,越复杂
|
|
|
|
|
|
|
|
|
|
- 一般情况下2次的更常见![1604673291749](assets/1604673291749.png)
|
|
|
|
|
|
|
|
|
|
- γ(gama)对内积进行缩放,ζ(zeta)控制常数项,Q控制高次项。
|
|
|
|
|
|
|
|
|
|
其特例就是线性核函数
|
|
|
|
|
|
|
|
|
|
#### 核函数实例
|
|
|
|
|
|
|
|
|
|
还是先从一个小例子来阐述问题。假设我们有俩个数据,x=(x1,x2,x3);y=(y1,y2,y3),此时在3D空间已经不能对其进行线性划分,那么我们通过一个函数将数据映射到更高维的空间,比如9维的话,那么(x)=(x1x2,x1x2,x1x3,x2x1,X2x2,x2x3,x3x1,x3x2,x3x3),由于需要计算内积,所以在新的数据在9维空间,需要计算<fx),f(y)>的内积,需要花费O(n^2)。
|
|
|
|
|
|
|
|
|
|
再具体点,令x = (1,2,3); y = (4,5,6), 那么f(x) = (1,2,3,2,4,6,3,6,9),计算方式如上的x1x2内积相乘,f(y) = (16,20,24,20,25,36,24,30,36),(此时<f(x),fy)>=16+40+72+40+100+180+72+180+324=1024。
|
|
|
|
|
|
|
|
|
|
似乎还能计算,但是如果将维数扩大到一个非常大数时候,计算起来可就不是一丁点问题了。
|
|
|
|
|
|
|
|
|
|
但是发现,K(x,y)=(<x,y>)^2
|
|
|
|
|
|
|
|
|
|
K(x, y) = (4+10+18)^2 = 32^2 = 1024
|
|
|
|
|
|
|
|
|
|
俩者相等,`K(x,y)=(<x,y>)^2=<f(x),f(y)>`,但是K(x,y)计算起来却比<f(x),f(y)>简单的多
|
|
|
|
|
|
|
|
|
|
也就是说只要用K(x,y)来计算,,效果和<f(x),f(y)>是一样的,但是计算效率却大幅度提高了,如:K(x,y)是O(n),而<f(x),f(y)>是0(n^2)。
|
|
|
|
|
|
|
|
|
|
所以使用核函数的好处就是,可以在一个低维空间去完成高维度(或者无限维度)样本内积的计算,比如K(xy)=(4+10+18)^2的3D空间对比<f(x),f(y)> = 16+40+72+40+100+180+72+180+324的9D空间。
|
|
|
|
|
|
|
|
|
|
#### 高斯核函数
|
|
|
|
|
|
|
|
|
|
> 最常用的,最好用的核函数
|
|
|
|
|
|
|
|
|
|
一维的高斯![1604673996642](assets/1604673996642.png)
|
|
|
|
|
|
|
|
|
|
![1604674036293](assets/1604674036293.png)
|
|
|
|
|
|
|
|
|
|
二维的高斯![1604674075933](assets/1604674075933.png)
|
|
|
|
|
|
|
|
|
|
![1604674100250](assets/1604674100250.png)
|
|
|
|
|
|
|
|
|
|
公式:![1604674144599](assets/1604674144599.png)
|
|
|
|
|
|
|
|
|
|
- 看起来像两个样本点之间的距离的度量,如果X和Y很相似,那么结果也就是1,如果不相似那就是0。
|
|
|
|
|
|
|
|
|
|
- 这样做的好处,特征多了无穷个,得到无穷维。
|
|
|
|
|
|
|
|
|
|
![1604674300763](assets/1604674300763.png)
|
|
|
|
|
|
|
|
|
|
#### 参数的影响
|
|
|
|
|
|
|
|
|
|
高斯核函数看起来不错,但是它对参数是极其敏感的,效果差异也很大
|
|
|
|
|
|
|
|
|
|
σ^2 = 0.5![1604674774921](assets/1604674774921.png)
|
|
|
|
|
|
|
|
|
|
> σ越小,顶部越尖,我们计算的是样本到样本点的距离,也就是尖尖到底部的距离,底部到顶部变化越快,层次更分明,那么特征也就越明显,识别的越容易,风险也会比较高
|
|
|
|
|
|
|
|
|
|
σ^2 = 3![1604674941094](assets/1604674941094.png)
|
|
|
|
|
|
|
|
|
|
> σ越大,层次越平衡,也就是大家的特征都差不多,那么识别也越不容易,但是风险也相对低
|
|
|
|
|
|
|
|
|
|
决策边界如下图,σ越小,切分越厉害,越容易过拟合
|
|
|
|
|
|
|
|
|
|
![1604675119736](assets/1604675194246.png)![1604675119736](assets/1604675119736.png)![1604675249968](assets/1604675249968.png)
|
|
|
|
|
|
|
|
|
|
> 原σ在下面,注意上面的公式||x - x'||^2 / 2σ^2,这里移上去了,所以前面加上负号,第一个是负1,第二个是负10,第三个是负100
|
|
|
|
|
|
|
|
|
|