机器学习之SVM
相关介绍:由苏联人发明,大家公认SVM在处理小样本数据时通常可以得到较为理想的结果。
线性模型
什么叫线性模型?
一条直线或一个平面可以区分两种不同特征的样本空间。
评价一条分割线的好坏的标准?
假设最优分割线为L,则与L平行的L1,L2分别与距离L最近的class1和class2的点相交。如果L1,L2的距离d最大,则认为这是最优的分割线。此时需要再加一个条件,即L与L1,L2的距离都为d/2。
d:间隔(Margin),支持向量机就是一个最大化d的一个方法。
L1,L2两条平行线插到的向量叫做支持向量(Support Vector),而画出最优的分割线的过程只和支持向量有关,所以即便是小样本也常常可以获得令人满意的结果。
定义:
- 训练数据及标签(X1, Y1),(X2, Y2)…(Xn, Yn),其中所有的X都是一个向量,具体到上图来说,X = [ x1, x2 ],表示一个两维的向量。如果特征增多,向量将超过两维,真实场景中很多都是多维向量。Y1 为标签,等于 1 或者 -1。
- 线性模型:(W, b)其中 W 是一个和X1维度相同的向量,b是一个常数。WTX + b = 0是超平面的方程,其中 WTX 也是一个常数。我们要做的事是通过训练的数据,在模型的限定下求参数具体的取值。
- 一个训练集线性可分是指{ (xi, yi) }i = 1 ~ N,存在(W, b),使得对于所有的i = 1 ~ N,有 yi = 1,则WTX + b >= 0;有 yi = -1,则WTX + b < 0。综合:yi[WTX + b ] >= 0(公式一)
支持向量机的优化问题(凸优化问题,二次规划问题)
最小化(Minimise): ||w||2
限制条件(Subject to): yi[WTX + b ] >= 1 (i = 1 ~ N)
事实1:WTX + b = 0 与 aWTX +ab = 0 是同一个平面。a属于R+。
若(W, b)满足公式一,则(aW, ab)也满足公式一。
事实2:点到平面(直线)的距离公式。
平面:w1x + w2y + b = 0
则(x0, y0)到此平面距离:d = |w1x0 + w2y0 + b| / √(w12 + w22)
向量X0到超平面 WTX + b = 0 的距离d = | WTX0+ b | / ||W||
||W|| = √ w12 + w22 + … + wm2
我们可以用a去缩放,使得(W, b) -> (aW, ab),最终使在支持向量X0上有 | WTX0+ b | = 1。此时,支持向量与平面的距离d = 1 / ||W||
二次规划,目标函数是二次项,限制条件是一次项,要么无解,要么只有一个解。