支持向量机(SVM)(四)及超易懂实例

在感知机一节中说到,咱们在线性可分的状况下,寻找一个超平面使得html

一部分实例$\sum_{i=1}^{n}w _{i}\cdot x_{i}>0$,算法

另外一部分实例$\sum_{i=1}^{n}w _{i}\cdot x_{i}<0$函数

可是感知机的解不惟一,因此会出现这样的状况优化

咱们应该如何选择一个最佳的解呢?spa

 

首先定义几何间隔为:3d

$d=\frac{y\left | w\cdot x_{i}+b \right |}{\left \| w \right \|_{2}}$htm

其实就是感知机损失函数在固定分子以前的形式blog

定义函数间隔为:ip

$y_{i}(w\cdot x_{i}+b)$get

几何间隔d才是真正的点到超平面的距离

 

支持向量

图中过样本点的虚线表示的就是支持向量(support vector)

中间的实线就是超平面$y_{i}(w\cdot x_{i}+b)=0$

通常设置支持向量为 $y_{i}(w\cdot x_{i}+b)=+1/-1$

SVM但愿全部的点到超平面的距离都大于1,公示表示为

max $ d=\frac{1}{\left \| w \right \|_{2}}\sum_{x_{i}\subseteq M}^{ }y_{i}(w\cdot x_{i}+b) $

而且 $s.t  y_{i}(w\cdot x_{i}+b)≥1$

与感知机不一样,咱们固定d的分子为1,

又最大化$\frac{1}{\left \| w_{2} \right \|_{2}}$,等同于最小化$\frac{1}{2}\left \| w_{2} \right \|_{2}^{2}$   


 tips

要加1/2 和 平方 单纯的为了求导的方便


 

因此优化公式变为:

min $\frac{1}{2}\left \| w_{2} \right \|_{2}^{2}$ 

 $s.t y_{i}(w\cdot x_{i}+b)≥1$

创建拉格朗日函数,将不等于约束变成无约束优化问题

$L(w,b,a)=\frac{1}{2}\left \| w_{2} \right \|_{2}^{2}-\sum a_{i}\left [ y\left ( w\cdot x+b \right )-1 \right ]且a_{i}> 1 $

这里i= 1,2,,,m,即样本个数。下文为了编辑公式方便再也不赘述。

(这里不明白的为何ai≥0,请看KKT条件一文)

因此优化目标变成:

$\underset{w,b}{min}$ $\underset{a\geq 0}{max}$ $L(w,b,a)$


这里为何要max ai 

 博主我的认为 是要获得L(w,b,a)的最小值,可是关于a的那部分前面是负号,因此要求L最大时a的值。(ps:纯属我的意见,但愿你们指点。)


 

 

欲获得min L(w,b,a)时对应的w,b,对L求偏导

$\frac{\partial L}{\partial w}=0\Rightarrow w = \sum a_{i}y_{i}x_{i}$

$\frac{\partial L}{\partial b}=0\Rightarrow b = \sum a_{i}y_{i}$

这里w可由a表示,带入方程,咱们可要求出maxL时对应的 a即可求得w,b暂时先无论。

定义:$\psi (\alpha )=\underset{w,b}{min} {w,b}$ $L(w,b,a)$

将$w = \sum a_{i}y_{i}x_{i}$带入

获得

 

(公式太过庞大,编辑公式太繁琐,so..盗图)推导很关键,反正博主本身推不出来...

因此,优化目标变成:

$\underset{a}{max}=-\frac{1}{2}\sum \sum a_{i}a_{j}y_{i}y_{j}x_{i}\cdot x_{j}+\sum a_{i}$

        $s.t \sum a_{i}y_{i}=0$

        $a_{i}≥0  $

也能够去掉负号,变成:

$\underset{a}{max}=\frac{1}{2}\sum \sum a_{i}a_{j}y_{i}y_{j}x_{i}\cdot x_{j}-\sum a_{i}$

        $s.t \sum a_{i}y_{i}=0$

        $a_{i}≥0 $

上述优化目标只有α未知,求得α便可获得w

α的计算使用SMO算法假设获得α*

根据$w = \sum a_{i}y_{i}x_{i}$,求得

$w* = \sum a*_{i}y_{i}x_{i}$

 

求b

在线性可分的状况下,找到一个支持向量,必有$y_{s}(w\cdot x_{s}+b)=1\Rightarrow y_{s}(\sum a*_{i}y_{i}x_{i}\cdot x_{s}+b)=1$,能够求得b

 

线性不可分问题请看下一节soft margin(软间隔)。

给一个简单的小例子感觉一下计算过程。

 

如图,两个样本M1,M2,每一个样本两个特征X1,X2,一个Y(因此是三个点表示他的坐标)

求最佳线性分割平面

首先,根据最终的优化目标,其中第一个约束条件为$s.t \sum a_{i}y_{i}=0$,能够获得

第二,根据$\frac{1}{2}\sum \sum a_{i}a_{j}y_{i}y_{j}x_{i}\cdot x_{j}-\sum a_{i}$

为了计算简便,定义:$H = y_{i}y_{j}x_{i}\cdot x_{j}$

因此

将H和第一步获得的$\alpha _{1}=\alpha _{2}$带入LD,有

如今欲获得优化目标最大对应的α,很明显,这是个开口向上的抛物线

 

α取到1,优化目标值最大,因此

第三,w的求解。将α值带入$w = \sum a_{i}y_{i}x_{i}$,获得

第四,b的求解。

由于只有两个样本,因此这两个点都在支持向量上,选M1带入w·x1+b=1有

获得超平面

 

自我总结

(感知机与SVM的不一样,感知机欲使误分类点到超平面的距离最小,SVM想让全部点到超平面的距离最大)

相关文章
相关标签/搜索