从中国象棋的角度,理解支持向量机
分界超平面:楚河汉界中心线;
支持向量:河岸边线;
边缘:河岸边线到中心线的最小距离;
最大化:河越宽,越能支持和平。
支持向量机是最大边缘分类器
不是最小边缘分类器!
再次回头看这篇博客,是因为碰到了一道讨厌的练习题(忍不住画了一道删除线!):
SVM是这样一个分类器,它寻找具有最小边缘的超平面,因此它也经常被称为最小边缘分类器(minimal marginc lassifier)
边缘是什么?是margin!
红线是决策边界,margin
被定义为决策边界与任意样本间的最小距离。
为什么要最大化边缘?
距离拉得越大,就越泾渭分明,分类效果就越好,因此支持向量机SVM的工作就是要找最大化边缘。
其实就是后面反复提到的:
最小距离最大化!
最小距离最大化!!
最小距离最大化!!!
未能真正吃透害死人,让我陷入最小边缘分类器 纠结好久!
什么是支持向量???
最⼤化边缘会⽣成对决策边界的⼀个特定的选择,这个决策边界的位置由数据点的⼀个⼦集确定,被称为⽀持向量,⽤圆圈表⽰。
简而言之:
支持向量就是使边缘最大化的向量,或者说使最小距离最大化的向量。
看上图,支持向量好像阻拦着其它点向决策边界靠近,支持着楚河汉界的和平。
支持向量机SVM相关知识点及部分公式推导
传统机器学习中,【支撑向量机表现非常优秀】,有了单层神经网络的影子。
支持向量机的工作核心
找分界平面,N-1维的超平面
高等数学中,相关基础公式:
切平面:
Fx(x0,y0,z0)(x−x0)+Fy(x0,y0,z0)(y−y0)+Fz(x0,y0,z0)(z−z0)=0
法线方程:
Fx(x0,y0,z0)x−x0=Fy(x0,y0,z0)y−y0=Fz(x0,y0,z0)z−z0
法向量:
n=(Fx(x0,y0,z0),Fy(x0,y0,z0),Fz(x0,y0,z0))
直线方程:
Ax+By+C=0[ABC]⎣⎡xyz⎦⎤=0[ABC]称为法向量点(3,2)到平面(1.1)的距离:A2+B23A+2B+C−−−−−−−−−−−−−−−∗∗∗∗∗∗∗∗∗−−−−−−−−−−−−−−−a⋅b=∥a∥∥b∥cosθ=0a、b垂直,θ=90°(1.1)
矢量模式
wx+b=0w在不同维度下,形态不一样wx=−b[w1w2][x1x2]w为法向量
曲面外一点p到曲面的垂直距离(x为曲面上任一假设已知点)
(p−x)⋅w=∥p−x∥∥w∥cosθcosθ=∥p−x∥∥w∥(p−x)⋅w−−−−−−−−−−−−−−−点到直线的距离−−−−−−−−−−−−−−−d=∥p−x∥cosθ=∥p−x∥∥p−x∥∥w∥(p−x)⋅w=∥w∥(p−x)⋅w=∥w∥wp+b−−−−−−−−−−−−−−−最近距离最大化−−−−−−−−−−−−−−−maximind
准备构造拉普拉斯算子
w,bmaximin∥w∥2∣wxi+b∣s.t.yi(wxi+b)>0,i=1,2,3,......wx+b>0y=1wx+b<0y=−1
等价变换
∥wxi+b∥总有办法约为1(此处不完全懂)w,bmaximin∥w∥2w,bmin2∥w∥s.t.1−yi(wxi+b)≤0,i=1,2,3,......−−−−−−−−−−−−拉普拉斯算子公式等价替换−−−−−−−−−−−−L(w,b,a)=21∥w∥2+i∑Na(1−yi(wxi+b))
求导,找最优条件
∇wL=w−i∑Nayixi=0∇bL=−i∑Nayi=0w=i∑Nayixi
将结果带回
L(w,b,a)=21∥w∥2−i∑Na(yi(wxi+b)−1)=21w⋅wT−i∑Na(yi(wxi+b)−1)=21i∑Ni∑Naiajxixjyiyj−i∑Nai(yi(j∑Najyjxj xi+b)−1)=i∑Nai−21i∑Nj∑Naiajxixjyiyj−i∑Nbaiyi=i∑Nai−21i∑Nj∑Naiajxixjyiyj−−−−−−−−−−−−最终结果−−−−−−−−−−−−αmax−21i∑Naiajxixj(yiyj)+i∑Nais.t.i∑Naiyi=0ai>0−−−−−−−−−−−−通常习惯求最小−−−−−−−−−−−−αmini∑Nai−21i∑Naiajxixj(yiyj)s.t.i∑Naiyi=0ai>0
其它相关:
- 软间隔最大化
- 核函数(映射到高维空间可分)
- SMO算法:⼀种最流⾏的训练⽀持向量机的⽅法被称为顺序最⼩化优化(
sequential minimal optimization
),这种⽅法考虑了分块⽅法的极限情况,每次只考虑两个拉格朗⽇乘数。(固定ai,迭代算aj;再固定aj,迭代算ai)
欢迎关注,敬请点赞!
返回顶部