林轩田机器学习技法(Machine Learning Techniques)笔记(三)

感觉边写边记还不错hhh(感觉之前就剪剪图,写在记事本里打算之后再贴上去,实在是太蠢了⁄(⁄ ⁄•⁄ω⁄•⁄ ⁄)⁄)
林轩田机器学习技法(Machine Learning Techniques)笔记(一)
林轩田机器学习技法(Machine Learning Techniques)笔记(二)

Kernel Support Vector Machine


P10 3.1
目标:上节课dual svm中几乎能把 d~ 拿掉了,这节课就探讨怎么把它彻底拿掉。
在这里插入图片描述
跟 d~ 有关的在 z n T z m z_n^Tz_m znTzm中,硬算的话复杂度是O(2 * d~ ),转置一个O( d~ ),转置后相乘又一个O( d~ )。现在考虑合起来计算来降低复杂度。
在这里插入图片描述
(为了方便运算 φ 2 ( x ) φ_2(x) φ2(x)加入1、 x 1 x 2 x_1x_2 x1x2 x 2 x 1 x_2x_1 x2x1) 经过一系列转换,我们只用在x空间上,用O(d)的复杂度计算就可以了,而不用z空间上O( d 2 d^2 d2)(也就是O( d~ ))的复杂度。

我们把这个步骤:转换和内积合在一起计算,称为Kernel function,表示为:
在这里插入图片描述
另外还有一个zn在b和 gSVM 之中:
在这里插入图片描述
最终,我们摆脱了 d~ 的影响,只需要看SV:
在这里插入图片描述


P11 3.2
二次多项式还有别的转换形式:
在这里插入图片描述
蓝色和绿色的 K φ 2 Kφ_2 Kφ2 虽然有点不一样,但是都是二次转换,对应到同一个z空间,这些放缩都会被 w~ 所吃掉(????????),所做的事情(power)都是差不多的。但是定义的系数不一样,内积就不一样,就代表不同的距离,所以会影响SVM。所以同样的空间,可能会得到不同的边界(???)。
在这里插入图片描述
把 1 换成 ζ ,对于多次的Kernel有如下形式:
在这里插入图片描述
在高次的时候,之后复杂度只有xTx的内积和一点点多项式的计算,因此可以做高次的运算,速度也不会太慢(因为计算针对的是x空间而不是z空间)。高次转换中,large-margin还会控制过拟合。因此两者会常常结合在一起:(多项式 SVM)
在这里插入图片描述
虽然我们可以用多维的,但 K 1 K_1 K1通常是我们的首选,就像之前说的线性通常效果不错一样。
在这里插入图片描述


P12 3.3
对于无限多维的φ(x),看回上一节,是否可以用Kernel来解决呢?
x线设为只有一个维度,K其实是高斯函数的线性组合:
在这里插入图片描述
exp(2xx’)的转换用了泰勒公式,可以看出,一维的x里头的高斯函数藏了个无限多维转换。如果x很多的维度,就要加上缩放系数γ,同理里面也有无限多维。

用K算出 α 和 b 之后,就可以得出gsvm了,gsvm其实是中心在 xn 的高斯函数的线性组合(linear combination),也叫RBF(径向基函数),里头的R:Radial 就是像高斯一样从某个中心往外的函数,BF就是拿来做线性组合的。
在这里插入图片描述
总结:large-margin可以让hypothesis数量不是很多,Kernel大大减少了dual SVM的计算量,使之可以造出很复杂的边界(虽然较低的维度有时就可以做到不错),然后Gaussian又可以让SVM计算无限维的gSVM
在这里插入图片描述
最后,我们要注意 γ 的取值,过大就会过拟合,尽管会有 large - margin 的保护。


P13 3.4
下面对比三种Kernel的好坏:
在这里插入图片描述
polynomial的kernel,Q可以灵活设置,但又因为Q次方的计算可能会很大或很小,所以Q要比较小(numerical difficulyt) 然后有3个参数要选。
在这里插入图片描述
高斯比较常用,不过不完全知道这个是怎么分出来的(因为有无限维):
在这里插入图片描述
当然,这个自定义kernel要满足:① 对称性 ② 要满足半证定理(: Z T Z > 0 Z^TZ>0 ZTZ>0
在这里插入图片描述
最后总结:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/Only_Wolfy/article/details/89517676