This Part is "To Learn SVM(Support Vector Machine) ": (I 'll finish this part before 10.1)
in order to get a comprehension about SVM, we should get a good understanding about the following things :
1. Linear Perceptron
2. KKT Conditions
3. SMO Algorithm
4. Kernel Tricks
Let's figure them out
1. Linear Perceptron
线性感知器是理解SVM的第一步,说白了,SVM是从线性感知器中发展而来的。线性感知器处理的问题通常是 “线性可分数据”,也就是说线性感知器所描述的超平面可以正确地对所有训练样本进行分类。
分离超平面:
分类决策函数:
函数间隔:
几何间隔:
||w|| = 1时, 几何间隔 = 函数间隔
在线性感知器的基础上,SVM的创新点是找到最好的分离超平面。 那什么是最好的分离超平面呢? SVM认为“ 距离两类训练样本的距离最远的”就是最好的。根据这个要求,SVM 变成了寻找最大间隔分离超平面的“线性感知器”,使得分类样本的几何间距达到最大化。线性可分条件下,SVM的问题可以进一步描述成为:
不失一般性, 假设
于是,上述问题又可以进一步转化为
上述问题是一个典型的凸二次规划问题,求解该问题便可以得到分离超平面了
2. KKT Conditions
3. SMO Algorithm
4. Kernel Tricks