-
一:什么是SVM向量机
SVM向量机通俗来讲,是用于分类的一种算法。
举例来说,SVM要做的就是,1.将图中的黑点和白点分开 2.分割线要尽量离两边的样本点要远。图中的黑色实线即为分割线,黑色虚线即为俩边的样本到分割线最近的位置。我们假设白点样本到分割线的最近的距离为d1,黑色样本点到分割线的最近的距离为d2,我们必须保证d1=d2。若d1不等于d2,即分割线距离某个样本比另一个样本更近,这个分割线是不合适的,因为它会更偏袒某个样本。
由于样本离分割线的最近距离相同,即某个样本点距离分割线的距离相同,黑色
虚线是按照样本点来画的,所以在黑色虚线的样本点,即距离分割线最近的几个样本点,我们叫做支持向量,分割线叫做决策面,并且对于一组样本,通常有不同的决策面。
并且d要大,即距离应当更宽,因为分割线距离样本越宽,这个分割线就越“安全”。越不容易分错。下面来看一下怎么计算:
第一:我们可以从图像知道,决策面是一个直线函数,我们将其定义为 y = ax+b。
第二:因为也许会有不同的多个决策面,所以我们要决定出哪个决策面最好,根据决策面的条件,我们知道,支持向量到决策面的距离越宽越好。所以这个距离我们用点到直线的距离公式。
d=∣Ax+By+b∣⌋A2+B2‾d=\dfrac {\left| Ax+By+b\right| }{\rfloor \overline {A^{2}+B^{2}}}d=⌋A2+B2∣Ax+By+b∣
我们将公式向量化,A,B都是我们不知道的,x,y是样本点的坐标,是已知的,我们将已知的x,y和未知的A,B提出来,组成向量的形式,即xi=[xi,yi]x_{i} =[ x_{i},y_{i}]xi=[xi,yi] ,i为第几组样本,w =[Ai,Bi][ A_{i},B_{i}][Ai,Bi] ,所以Ax + By = WiTXiW^{T}_{i}X_{i}WiTXi,大家很熟悉的向量形式吧, A2+B2{A^{2}+B^{2}}A2+B2即为||w||,这里||w|| = WTWW^{T}WWTW。
所以距离公式为 d=∣wTxi+b∣∥w∥d = \dfrac {\left| w^{T}x_{i}+b\right| }{\left\| w\right\| }d=∥w∥∣∣wTxi+b∣∣
第三:这里我们可以回想一下为什么距离公式的分子要加绝对值符号,因为会有正负(废话呀这是),但什么时候是正什么时候是负呢,当点在这条线下方的时候为负,在上面为正(不再解释),而我们SVM正号要对样本进行分类,我们可以把被决策面上方的一边的样本定义为+1,下面的定义为-1,我们可以定义一个标签向量y = {-1,1},我们便可以利用这个标签向量去掉绝对值符号。即
d=(wTxi+b)∗yi∥w∥,yi=−1或1d = \dfrac {\left( w^{T}x_{i}+b\right)*y_{i} }{\left\| w\right\| } ,y_{i} = {-1或1}d=∥w∥(wTxi+b)∗yi,yi=−1或1
第四:我们想要计算d的最小值,我们先对分子进行处理:
我们知道d是样本距离决策面的距离,且有正负,若大于d,则样本在决策面上面,被分到的标签是y =1 ,反之一样。则:
(wTxi+b)∗yi∥w∥>=d,yi=1\dfrac {\left( w^{T}x_{i}+b\right)*y_{i} }{\left\| w\right\| }>=d ,y_{i} =1∥w∥(wTxi+b)∗yi>=d,yi=1
(wTxi+b)∗yi∥w∥<=−d,yi=−1\dfrac {\left( w^{T}x_{i}+b\right)*y_{i} }{\left\| w\right\| }<=-d ,y_{i} =-1∥w∥(wTxi+b)∗yi<=−d,yi=−1
同时处以d,得:
(wTxi+b)∗yi∥w∥d>=1,yi=1\dfrac {\left( w^{T}x_{i}+b\right)*y_{i} }{\left\| w\right\|d }>=1 ,y_{i} =1∥w∥d(wTxi+b)∗yi>=1,yi=1
(wTxi+b)∗yi∥w∥d<=−1,yi=−1\dfrac {\left( w^{T}x_{i}+b\right)*y_{i} }{\left\| w\right\|d }<=-1 ,y_{i} =-1∥w∥d(wTxi+b)∗yi<=−1,yi=−1
设Wd=w∥W∥dW_{d}=\dfrac {w}{\left\| W\right\| d}Wd=∥W∥dw,Bd=b∥W∥dB_{d}=\dfrac {b}{\left\| W\right\| d}Bd=∥W∥db
可得:WdTxi+Bd>=1,y=1W^{T}_{d}x_{i}+Bd>= 1,y= 1WdTxi+Bd>=1,y=1
WdTxi+Bd<=−1,y=−1W^{T}_{d}x_{i}+Bd<= -1,y= -1WdTxi+Bd<=−1,y=−1
将两式合并(WTxi+Bd)yi≥1\left( W^{T}x_{i}+Bd\right) y_{i}\geq 1(WTxi+Bd)yi≥1
即min[(wTxi+Bd)yi]min[\left( w^{T}x_{i}+Bd\right) y_{i}]min[(wTxi+Bd)yi]的最小值为1
这样距离公式转化成了求1∥W∥\dfrac {1}{\left\| W\right\| }∥W∥1的最大值
即 max (d) = max1∥W∥\dfrac {1}{\left\| W\right\| }∥W∥1
即求∥W∥\left\| W\right\|∥W∥的最小值
求这么一个函数的最小值不一定好求,我们等效成求12∥W∥2\dfrac {1}{2}\left\| W\right\| ^{2}21∥W∥2的最小值,转换成这样是易于求极小值
第五:我们这时候暂时总结一下(下面还有),判断求决策面是否合适转换成了求距离是否大,然后由距离公式不断推出,我们现在要求这个结果:min12∥W∥2min\dfrac {1}{2}\left\| W\right\| ^{2}min21∥W∥2
但是,别忘了这个式子是不全面的,这个式子是在约束条件yi(wTxi+b)≥1y_{i}\left( w^{T}x_{i}+b\right) \geq 1yi(wTxi+b)≥1得到的,所以要加上这个约束条件
max(d)=min12∥W∥2max(d)=min\dfrac {1}{2}\left\| W\right\| ^{2}max(d)=min21∥W∥2
s.t.yi(wTxi+b)≥1s.t. y_{i}\left( w^{T}x_{i}+b\right) \geq 1s.t.yi(wTxi+b)≥1或者 s.t.yi(wTxi+b)−1≥0s.t. y_{i}\left( w^{T}x_{i}+b\right) -1\geq 0s.t.yi(wTxi+b)−1≥0
第六,看见这个式子,学过高数的朋友应该心里想到了怎么求,用拉格朗日函数求解,设:L(w,b,a)=12∥W∥2−∑i=1na[yi(wTxi+b)−1]L\left( w,b,a\right) =\dfrac {1}{2}\left\| W\right\| ^{2}-\sum ^{n}_{i=1}a[y_{i}\left( w^{T}x_{i}+b\right) -1]L(w,b,a)=21∥W∥2−i=1∑na[yi(wTxi+b)−1]
分别求L对w,b的偏导,得:∂L∂w=w−∑i=1na⋅yixi\dfrac {\partial L}{\partial w}=w-\sum ^{n}_{i=1}a\cdot y_{i}x_{i}∂w∂L=w−i=1∑na⋅yixi∂L∂b=−∑i=1na⋅yi \dfrac {\partial L}{\partial b}=-\sum ^{n}_{i=1}a\cdot y_{i}∂b∂L=−i=1∑na⋅yi
第七:令偏导等于0:w=∑i=1na⋅yixiw = \sum ^{n}_{i=1}a\cdot y_{i}x_{i}w=i=1∑na⋅yixi0=∑i=1na⋅yi0=\sum ^{n}_{i=1}a\cdot y_{i}0=i=1∑na⋅yi
对原式L(w,b,a)进行代入化简运算:
L(w,b,a)=∑i=1nai−12(∑i=1naixiyi)T∑i=1naixiyi L\left( w,b,a\right) =\sum ^{n}_{i=1}a_{i}-\dfrac {1}{2}\left( \sum ^{n}_{i=1}a_{i}x_{i}y_{i}\right) ^{T}\sum ^{n}_{i=1}a_{i}x_{i}y_{i}L(w,b,a)=i=1∑nai−21(i=1∑naixiyi)Ti=1∑naixiyi=∑i=1nai−12∑ij=1naiajyiyjxiTxi=\sum ^{n}_{i=1}a_{i}-\dfrac {1}{2}\sum ^{n}_{ij=1}a_{i}a_{j}y_{i}y_{j}x_{i}^{T}x_{i}=i=1∑nai−21ij=1∑naiajyiyjxiTxi
别忘了约束条件s.t.∑i=1naiyi=0s.t.\sum ^{n}_{i=1}a_{i}y_{i}=0s.t.i=1∑naiyi=0ai>0,i=1,2,..na_{i}>0,i=1,2,..nai>0,i=1,2,..n
基本上是完成了计算方式,下面还有优化
(我不想写了腰好疼哇啊啊啊啊啊,剩下的明天写吧)
简单明了的阐述SVM支持向量机以及做法步骤
最新推荐文章于 2024-10-30 03:31:19 发布