技术生活

支持向量机(Support-vector machine)

先上一张图,大致了解一下机器学习所需要的算法。

从上图可以清晰地看到,支持向量机(Support-vector machine,SVM)是一种监督式学习(Supervised)的分类技术(Classification)算法。

以下三个视频,清晰地解释了支持向量机(SVM)的内部原理。

1.Support Vector Machines, Clearly Explained!!!

2.Support Vector Machines Part 2: The Polynomial Kernel

3.Support Vector Machines Part 3: The Radial (RBF) Kernel

看以上视频,比看维基百科上的解释简单明了多了。

记录一下有关SVM的知识要点:

一、概念: 除了进行线性分类之外,SVM还可以使用所谓的核技巧有效地进行非线性分类。

二、非线性分类所使用的核函数:多项式核(polynomial kernel)和放射核(radial kernel or radial bias function(RBF) kernel)。多项式核对高维数据集支持不好,放射核函数则支持无限维度。其内在原理在于:通过核技巧(kernel trick),不实际转换数据到高维空间(降低了计算量)而计算出高维空间内数据间的关系,从而找到SVM分类器,完成数据集的分类。

三、多项式内核方法。

假设有一个数据集[a,b,c,e…n],a和b为数据集中两个任意的观察对象(如a=3,b=5)。假设维度为2,多项式系数为\frac{1}{2},则多项式:(a * b + \frac{1}{2})^{2}展开后
= (a * b + \frac{1}{2}) * (a * b + \frac{1}{2})

= a * b + a ^ {2} * b ^ {2} + \frac{1}{4}

= (a, a^2, \frac{1}{2}) ⋅ (b, b^2, \frac{1}{2})  注:⋅为点积(dot product)

由此可知,多项式(a * b + \frac{1}{2})^{2}展开后,刚好是两点(a, a^2, \frac{1}{2})(b, b^2, \frac{1}{2})的点积。其中,a是数据a在x轴的坐标,a^2是数据a在2维空间y轴的坐标,\frac{1}{2}是数据a在3维空间z轴的坐标。数据b也是一样。又因为数据a和b在z轴的坐标相等(都是\frac{1}{2}),故而在计算数据a和b之间的关系量时,\frac{1}{2}可以忽略掉。

则多项式(a * b + \frac{1}{2})^{2}其实相当于点或向量(a, a^2)和(b, b^2)的点积。

根据点积的余弦公式:v ⋅ w = ‖v‖ * ‖w‖ * cos θ,其中‖vector‖代表向量vector的长度,θ为向量v和向量w的夹角。引用:https://proofwiki.org/wiki/Cosine_Formula_for_Dot_Product
等式两边同时乘以-2:-2 * (v ⋅ w) = -2 * ‖v‖ * ‖w‖ * cos θ
等式两边同时加上‖v‖^2 + ‖w‖ ^2‖v‖^2 + ‖w‖ ^2 -2 * (v ⋅ w) = ‖v‖^2 + ‖w‖ ^2 -2 * ‖v‖ * ‖w‖ * cos θ
再根据向量自身点积公式:u⋅u=‖u‖^2,其中u是向量,‖u‖是向量的长度。https://proofwiki.org/wiki/Dot_Product_of_Vector_with_Itself
则:v ⋅ v + w ⋅ w - 2 * ‖v‖ * ‖w‖ * cos θ
又等于:

可知:两点或向量(0, v), (0, w)之间长度的平方‖v - w‖^2的两点或向量(0, v), (0, w)的点积。也就是说,两点或向量(a, a^2)和(b, b^2)的点积,就是a和b两个观察对象在二维空间的距离,也即两点或向量(a, a^2)和(b, b^2)在二维空间的远近关系。

由此可知:多项式(a * b + \frac{1}{2})^{2}就代表观察对象a和b在二维空间的远近关系。

参考:

1. https://www.dataquest.io/blog/top-10-machine-learning-algorithms-for-beginners/

2. https://www.dataquest.io/blog/sci-kit-learn-tutorial/

3. https://medium.com/machine-learning-101/chapter-2-svm-support-vector-machine-theory-f0812effc72

发表评论

电子邮件地址不会被公开。 必填项已用*标注