机器学习与计算机视觉深度学习OpenCv

2020 机器学习之SVM(2)

2020-01-15  本文已影响0人  zidea
machine_learning.jpg

之前我们已经学习如何在等式约束条件,随后又加入了不等式约束条件下最函数最优解,也就是 KKT 条件。有了这些基础今天我们继续 SVM 算法推导。我们在高维空间中我们会找到 N 个超平面作为这些点分割平面,这些平面都可以将所属不同类别点分开,但是我们需要找到一条具有更好泛化能力的直线将这些点分开,这是我们目标函数。

image

那么什么样超平面是我们要找的超平面呢? 我们找到这样一个平面,将平面分别上下(这里所谓上就是平面的法线方向)移出两个间隔平面(下图棕色线),这些线穿过至少一个属于类别点。这些点就是支撑点,也是 SVM 中关键,我们目标就是让个两个边界平面间隔最大。

image

换一个角度来解释一下 SVM

我已经多次尝试去解释过 SVM ,每一次解释都是建立对 SVM 理解的一次更新基础上,今天再给我一次机会来说明清楚 SVM。我们在线性可分两类样本之间存在多条分隔线(超平面)。我们需要找到一最佳的超平面,那么怎么找到这个最佳超平面是问题关键。什么是最佳,也就是让两类点间真空地带尽量大,那么什么是真空地带。地带也就是需要两条线来进行划分,真空地带是由两条边界线划分出,这两条线满足两个条件一个条件就是满足平行于分隔超平面,并且他们至少通过一个样本点,分别位于超平面两侧,两个分隔线之间距离可能是 h ,我们可以通过对数据进行处理现象缩放。

image

在上面式子中大于 0 情况是我们认为点属于正例样本而小于 0 属于负例样本,我们为数据标签正例为 1 而负例为 - 1。

image

我们将 wx - b = 0 这条直线,分别向两侧与分隔平面平行移动到通过至少一个分类点。我们这让两侧分隔平面 wx + b 分别等于1 或 -1,大家可能会疑惑为什么是 1 和 -1 而不是其他数,这样便于计算,而且我们总是能通过对数据点进行缩放来做到这一点。

image

我们可以在上图中找到这方程对应直线位置,然后回到我们问题不但要找这个三个方程而且要确保wx+b=1 和 wx+b=-1 围成的隔离大最大也就是图中 2/||w||。我们用数学语言来表示这件事,也就是我们这里 2/||w|| 是怎么来的,请看下图。

image

我们在下方界面上有找到一个点 x1 ,然后我们已知 w 是分割超平面,有时候我们说平面也是多维空间的超平面,希望大家能够理解。然后将 x1 然 w 法线方向投影到另一侧分界面得到 x2 点。那么从x1 到 x2 间向量方向与 w 一致而长度假设为 lambda,然后就可以推导出下边方程

image

接下来因为知道 x2 是 wx+b=1 直线上点就可以得出

image

对这个函数进行转换的得到我们想要模样

image

在这里我们看到 wx1 + b 这个式子,根据已知条件 wx1 + b =-1,将其带入后我们就可以得到

image

好到现在为止我们就已经推导出了如何用数学表达式来表示两个分割平面间距离。


wechat.jpeg
上一篇下一篇

猜你喜欢

热点阅读