支持向量机(Support Vector Machine)
-
要解决的问题:什么样的决策边界才是最好的?
-
特征数据本身如果很难分,怎么办?
-
计算的复杂度怎么样?能实际应用吗?
-
目标:基于上述问题对SVM进行推导

三条线都能够做分类,但是那一条线最好呢?
-
决策边界:选出来离雷区最远的(雷区就是边界上的点,要large margin)

数学推导过程:


这里我们假设x1 、 x2 为所求平面(wTx=−b)上的两个点 ,满足上面的(1)式,其中w为垂直于平面的法向量,由于w垂直于平面,所以w垂直于平面的任意一条直线,所以有(2)式,x 为平面外面的一点,到平面的距离等于xx1 在法向量上的投影。
基于以上的式子,这里给出距离的方程:

而对于我们的数据集标签有如下的定义:
-
数据集:(x1,y1) (x2,y2) (x3,y3)
-
Y 为样本的类别: 当X 为正例的时候,Y =+1 当X 为负例的时候 Y=-1
-
决策方程: y(x)=wTΦ(x)+b (其中Φ(x) 是对数据做了变换)
=>y(xi)>0⇔yi=+1y(xi)<0⇔yi=−1
=>yiy(xi)>0
优化目标
通俗的解释:找到一条线(w,b),使得离该线最近的点能够最远
将点到直线的距离化简得:∥w∥yi⋅(wT⋅Φ(xi)+b) ,这里是由(3)式推导。
-
目标函数:
-
放缩变换:对于决策方程(3),可以通过放缩使得其结果值>=1,
即yi⋅(wT⋅Φ(xi)+b)>=1
-
优化的目标: argmaxw,b⟨∥w∥1mini(yi⋅(wT⋅Φ(xi)+b)) ,由于 yi⋅(wT⋅Φ(xi)+b)⩾1 ,只需要考虑 argmaxw,bw1 , 这就是我们的目标函数
-
目标函数的求解:
- 当前目标:maxw,b∥w∥1 ,约束条件为:yi⋅(wT⋅Φ(xi)+b)⩾1
- 将上面的求极大值问题转换为求极小值问题 => minw,b21w2
- 如何求解:应用拉格朗日乘子法求解
-
拉格朗日乘子法
拉格朗日乘子法是经典的求解最小值的数学方法,更多原理可以进入上面的链接
根据上述原理,我们的目标函数可以转化成:
L(w,b,α)=21w2−i=1∑nαi(yi(wT⋅Φ(xi)+b)−1)
对于上式的约束条件为: yi⋅(wT⋅Φ(xi)+b)⩾1
函数的对偶性和凸优化可以查找一下资料
对w求偏导:φwφL=0⇒w=∑i=1nαiyiΦ(xn)
对b求偏导:φbφL=0⇒0=∑i=1nαiyi
将上面两个式子代入原函数中:
=i=1∑nαi−21i=1∑mj=1∑nαiαjyiyj(Φ(xi)⋅Φ(xj))
继续对α 求极大值:maxα(上式) ,条件为:αi>0 且 0=∑i=1nαiyi

所以这边就解释了什么是支持向量,即为α 不为0 的边界点,如x1 x3 只有边界点起作用。
soft-margin
软间隔:对于有一些数据,存在一些噪声点,如果考虑他们,画出来的决策边界就不太好了
之前的方法要求把两类点完全分开,比较严格,实际上得到的模型可能不太好,不是我们想要的。
为了解决该问题,引入松弛因子:$y_i(w\cdot x_i) \ge 1-\xi $
新的目标函数:min21∥w∥2+C∑i=1nξi
当C趋近于很大时:意味着分类严格不能有错误
当C趋近于很小时:意味着可以有更大的错误容忍

低维不可分

将二维空间映射到高维的空间中
其中这个函数有很多中,主要是高斯核函数

但是这里存在着一个问题,将一个低维的空间映射到高维的空间会增加计算量。该怎么办?实际上这里存在着一个数学上的巧合。

在计算的过程中,是将计算的结果在低纬度上先计算好,理论是在高维度,实际上计算还是低维度上面做的。
所有的努力都值得期许,每一份梦想都应该灌溉!