从中国象棋的角度,理解支持向量机SVM【不包懂,包记住】

欢迎关注,敬请点赞!

楚河汉界

从中国象棋的角度,理解支持向量机

分界超平面:楚河汉界中心线;
支持向量:河岸边线;
边缘:河岸边线到中心线的最小距离;
最大化:河越宽,越能支持和平。

支持向量机是最大边缘分类器

不是最小边缘分类器!
再次回头看这篇博客,是因为碰到了一道讨厌的练习题(忍不住画了一道删除线!):
SVM是这样一个分类器,它寻找具有最小边缘的超平面,因此它也经常被称为最小边缘分类器(minimal marginc lassifier)

边缘是什么?是margin!

边缘
红线是决策边界margin被定义为决策边界与任意样本间的最小距离

为什么要最大化边缘?

距离拉得越大,就越泾渭分明,分类效果就越好,因此支持向量机SVM的工作就是要找最大化边缘
其实就是后面反复提到的:
最小距离最大化
最小距离最大化!!
最小距离最大化!!!
未能真正吃透害死人,让我陷入最小边缘分类器 纠结好久!

什么是支持向量???

最⼤化边缘会⽣成对决策边界的⼀个特定的选择,这个决策边界的位置由数据点的⼀个⼦集确定,被称为⽀持向量,⽤圆圈表⽰。
在这里插入图片描述
简而言之:
支持向量就是使边缘最大化的向量,或者说使最小距离最大化的向量
看上图,支持向量好像阻拦着其它点向决策边界靠近,支持着楚河汉界的和平

支持向量机SVM相关知识点及部分公式推导

传统机器学习中,【支撑向量机表现非常优秀】,有了单层神经网络的影子。

支持向量机的工作核心

找分界平面,N-1维的超平面

高等数学中,相关基础公式:

切平面:
Fx(x0,y0,z0)(xx0)+Fy(x0,y0,z0)(yy0)+Fz(x0,y0,z0)(zz0)=0 F_x(x_0,y_0,z_0)(x-x_0) + F_y(x_0,y_0,z_0)(y-y_0) + F_z(x_0,y_0,z_0)(z-z_0) = 0
法线方程:
xx0Fx(x0,y0,z0)=yy0Fy(x0,y0,z0)=zz0Fz(x0,y0,z0) \frac{x-x_0}{F_x(x_0,y_0,z_0)} = \frac{y-y_0}{F_y(x_0,y_0,z_0)} = \frac{z-z_0}{F_z(x_0,y_0,z_0)}
法向量:
n=(Fx(x0,y0,z0),Fy(x0,y0,z0),Fz(x0,y0,z0)) n = (F_x(x_0,y_0,z_0), F_y(x_0,y_0,z_0), F_z(x_0,y_0,z_0))

直线方程:

Ax+By+C=0[ABC][xyz]=0[ABC](3,2)(1.1)3A+2B+CA2+B2ab=abcosθ=0abθ=90°(1.1) Ax + By + C = 0 \tag{1.1}\\ \begin{bmatrix}A & B & C\end{bmatrix}\begin{bmatrix}x\\y\\z\end{bmatrix} = 0\\ \begin{bmatrix}A & B & C\end{bmatrix}称为法向量\\ 点(3,2)到平面(1.1)的距离:\frac{3A +2B+C}{\sqrt{A^2+B^2}}\\ ---------------*********---------------\\ a \cdot b = \|a\|\|b\|cos\theta = 0\\ a、b垂直,θ=90°\\

矢量模式
wx+b=0wwx=b[w1w2][x1x2]w wx + b = 0\\ w在不同维度下,形态不一样\\ wx = -b\\ \begin{bmatrix}w_1 & w_2\end{bmatrix}\begin{bmatrix}x_1 \\ x_2\end{bmatrix}\\ w为法向量

曲面外一点p到曲面的垂直距离(x为曲面上任一假设已知点)

(px)w=pxwcosθcosθ=(px)wpxw线d=pxcosθ=px(px)wpxw=(px)ww=wp+bwmaxminid (p - x) \cdot w = \|p-x\|\|w\|cos\theta \\ cos\theta = \frac{(p - x) \cdot w}{ \|p-x\|\|w\|} \\ ---------------点到直线的距离---------------\\ d = \|p-x\|cos\theta = \|p-x\| \frac{(p - x) \cdot w}{ \|p-x\|\|w\|}=\frac{(p - x) \cdot w}{\|w\|}=\frac{wp+b}{\|w\|}\\ ---------------最近距离最大化---------------\\ max\min_id

准备构造拉普拉斯算子

maxw,bmini2wwxi+bs.t.yi(wxi+b)>0,i=1,2,3,......wx+b>0y=1wx+b<0y=1 \max_{w,b}\min_{i} \frac{2}{\|w\|}|wx_i + b|\\ s.t.\quad y_i(wx_i + b) >0,i=1,2,3,......\\ wx+b>0 \quad y=1\\ wx+b<0 \quad y=-1\\

等价变换

wxi+b1()maxw,bmini2wminw,bw2s.t.1yi(wxi+b)0,i=1,2,3,......L(w,b,a)=12w2+iNa(1yi(wxi+b)) \|wx_i + b\|总有办法约为1(此处不完全懂)\\ \max_{w,b}\min_{i}\frac{2}{\|w\|}\\ \min_{w,b}\frac{\|w\|}{2}\\ s.t. \quad1- y_i(wx_i+b)\le 0,i=1, 2, 3,......\\ ------------拉普拉斯算子公式等价替换------------\\ L(w,b,a) = \frac{1}{2}\|w\|^2 + \sum^N_i{a(1-y_i(wx_i+b))}

求导,找最优条件

wL=wiNayixi=0bL=iNayi=0w=iNayixi \nabla_wL=w-\sum^N_i a y_i x_i=0\\ \nabla_bL=-\sum^N_i a y_i=0\\ w=\sum^N_i a y_i x_i

将结果带回

L(w,b,a)=12w2iNa(yi(wxi+b)1)=12wwTiNa(yi(wxi+b)1)=12iNiNaiajxixjyiyjiNai(yi(jNajyjxj xi+b)1)=iNai12iNjNaiajxixjyiyjiNbaiyi=iNai12iNjNaiajxixjyiyjmaxα12iNaiajxixj(yiyj)+iNais.t.iNaiyi=0ai>0minαiNai12iNaiajxixj(yiyj)s.t.iNaiyi=0ai>0 L(w,b,a) = \frac{1}{2}\|w\|^2 - \sum^N_i{a(y_i(w x_i + b) - 1)}\\ =\frac{1}{2}w \cdot w^T - \sum^N_i{a(y_i(w x_i + b) - 1)}\\ =\frac{1}{2}\sum^N_i\sum^N_i a_i a_j x_i x_j y_i y_j - \sum^N_i{a_i(y_i(\sum^N_j{a_j y_j x_j \ x_i + b}) - 1)}\\ =\sum^N_ia_i - \frac{1}{2}\sum^N_i\sum^N_j a_i a_j x_i x_j y_i y_j -\sum^N_i b a_i y_i\\ =\sum^N_ia_i - \frac{1}{2}\sum^N_i\sum^N_j a_i a_j x_i x_j y_i y_j\\ ------------最终结果------------\\ \max_\alpha{-\frac{1}{2}\sum^N_i a_i a_j x_i x_j (y_i y_j) + \sum^N_ia_i}\\ s.t. \sum^N_i a_i y_i = 0\\ a_i > 0\\ ------------通常习惯求最小------------\\ \min_\alpha{\sum^N_i a_i - \frac{1}{2}\sum^N_i a_i a_j x_i x_j (y_i y_j)}\\ s.t. \sum^N_i a_i y_i = 0\\ a_i > 0

其它相关:

  1. 软间隔最大化
  2. 核函数(映射到高维空间可分)
  3. SMO算法:⼀种最流⾏的训练⽀持向量机的⽅法被称为顺序最⼩化优化sequential minimal optimization),这种⽅法考虑了分块⽅法的极限情况,每次只考虑两个拉格朗⽇乘数。(固定ai,迭代算aj;再固定aj,迭代算ai)

欢迎关注,敬请点赞!
返回顶部

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章