量子位|SVM原理详细图文教程!一行代码自动选择核函数,还有实用工具
贾浩楠 发自 凹非寺
量子位 报道 | 公众号 QbitAI
SVM?老分类算法了 , 轻松拿下 。
然而 , 每一次老板让你讲解SVM , 或每一次面试被问到SVM , 却总是结结巴巴漏洞百出 。
「这些人怎么总能精准发现我的盲点?」
简直让人怀疑自己掌握的是假SVM 。
如果你有这样的问题 , 那这篇SVM数学原理对你会有很大帮助 , 一起来看看吧 。
SVM 由线性分类开始
理解SVM , 咱们必须先弄清楚一个概念:线性分类器 。
给定一些数据点 , 它们分别属于两个不同的类 , 现在要找到一个线性分类器把这些数据分成两类 。
如果用x表示数据点 , 用y表示类别(y可以取1或者-1 , 分别代表两个不同的类) , 一个线性分类器的目标是要在n维的数据空间中找到一个超平面(hyper plane) , 将x的数据点分成两类 , 且超平面距离两边的数据的间隔最大 。
本文插图
这个超平面的方程可以表示为( wT中的T代表转置):
本文插图
本文插图
△2维坐标系中 , 超平面是一条直线
当f(x)等于0的时候 , x便是位于超平面上的点 , 而f(x)大于0的点对应 y=1 的数据点 , f(x)小于0的点对应y=-1的点 。
SVM 想要的就是找到各类样本点到超平面的距离最远 , 也就是找到最大间隔超平面 。 任意超平面可以用下面这个线性方程来描述:
本文插图
二维空间点(x , y)到直线Ax+By+C=0的距离公式是:
本文插图
扩展到n维空间后 , 点x=(x1 , x2……xn)到直线wTx+b=0的距离为:
本文插图
其中 :
根据支持向量的定义 , 支持向量到超平面的距离为d , 其他点到超平面的距离大于d 。
于是有:
本文插图
||w||d是正数 , 令它为 1(之所以令它等于 1 , 是为了方便推导和优化 , 且这样做对目标函数的优化没有影响) , 于是:
将两个方程合并 , 有:
至此 , 就得到了最大间隔超平面的上下两个超平面 。
本文插图
每个支持向量到超平面的距离可以写为:
本文插图
由 y(wTx+b)>1>0 可以得到 y(wTx+b)=|wTx+b| , 所以可以将支持向量到超平面距离改写为:
本文插图
最大化这个距离:
本文插图
这里乘上 2 倍是为了后面推导方便 , 对目标函数没有影响 。
带入一个支持向量 , 可以得到:
所以得到的最优化问题是:
处理异常值
有时 , 对于某些点(x(i) , y(i)) , 分类器可能会做出错误操作 。
推荐阅读
- 行业互联网|量子计算机潜力巨大(新技术 新进展③)
- IOS系统|从ios企业签名的机制及原理解析掉签的原因
- 行业互联网|三星被英国厂商起诉侵权 QLED 量子点显示技术:双方曾联合研发
- 中年|“墨子号”实现基于纠缠的无中继千公里量子保密通信丨亮点成果
- Science锋芒|意义重大!德国计划在2021年,建成该国首台量子计算机!
- 科学|物理学家首次捕捉到量子纠缠的图像
- 通信|量子密码通信项目本月启动 全球市场潜在规模或超180亿美元
- 电热汇|一文了解5种常见压力计的工作原理
- IBM|IBM制造!欧洲首台量子计算机计划2021年投入使用
- 量子技术|量子计算机网络新进展,微波、光波信号转换获突破