设输入为$x$,表示训练集的特征向量,输出为$y=\{1,-1\}$,这些向量都属于两类中的其中一类,假设这些向量是线性可分的,现在要找一个最优的平面(在二维的时候为一条直线),将这些特征向量正确分类,除此之外,能够将新的输入分到合适的类。

设中间直线方程为
$$\hat \omega x+\hat b=0$$
好了,svm中不是还有另外两条边界线吗?他们就是中间这条直线的左膀右臂,而且到中间这条直线的距离是一样的,这两条边界线正好和两侧的特征向量紧挨着,他们的方程就可以表示为
$$\hat \omega x+\hat b=k\\
\hat \omega x+\hat b=-k$$
为什么等号右边一个是$k$,一个是$-k$呢,因为他们到中间直线的距离都一样啊,只是方向不一样而已,好了,下面做个简单的变换,将等号两边同时除以$k$,则得到
$$\frac {\hat \omega x}{k}+\frac{\hat b}{k}=1\\
\frac {\hat \omega x}{k}+\frac{\hat b}{k}=-1$$
好了,此时再设
$$
\omega=\frac {\hat \omega}{k} \\
b=\frac{\hat b}{k}
$$
那么,两条边界直线就变成了
$$\omega x+b=1\\
\omega x+b=-1$$
而且将两式相加,就得到中间的直线方程了
$$\omega x+b=0$$

看到了吧,很多文章都在讲什么函数间隔,几何间隔,我不讲这些概念,我只讲距离,免得绕来绕去绕到死胡同里。

这个时候,如何求两条边界线之间的距离呢?

简单,因为两条边界到中间直线的距离相等,所以只需要求出一条边界线到中间直线的距离,再乘以2,就得到结果了。那怎么求一条边界线到中间直线的距离呢?

这个简单,运用高中数学空间几何的知识就搞定了,设点P在中间直线上,点Q在边界直线上,那么$$\overrightarrow{PQ} \cdot \omega = |\overrightarrow{PQ}|\cdot cos(\theta) \cdot |\omega|=d\cdot|\omega|$$
好了,$\overrightarrow{PQ} \cdot \omega$等于多少呢?就等于1啦,因为$\omega$是法向量,点P在中间直线上,点Q在边界直线上,将两条直线方程相减,等号左边就是$\overrightarrow{PQ} \cdot \omega$,等号右边就是1.

所以一条边界线到中间直线的距离$d$等于多少呢?

$$d=\frac{1}{|\omega|}$$

那么,两条边界线之间的距离也就是$\frac{2}{|\omega|}$了

好了,只要能够求出$d$取最大值时的$\omega,b$值,就可以得到最优的分类直线了,当然,在高维空间,就可以得到最优的分类超平面了!

要知道,只有紧挨着边界线的向量到中间直线的距离才是$d$,边界线以外的向量到中间直线的距离都要大于$d$,因为两类分别为$\{1,-1\}$,所以必须要满足
$$
y_i (\omega x_i + b) \ge 1
$$

要求$\frac{1}{|\omega|}$的最大值,也就等价于求$\frac{1}{2}{||\omega||}^2$的最小值,这样写的目的是为了转换成凸优化问题,方便求解。好了,此时问题已经很明确了,可用数学语言表示为
$$
\begin{align*}
&\min \limits_{\omega, b} && \frac{1}{2}{\Vert \omega \Vert}^2 \\
&s.t. && y_i (\omega x_i + b) \ge 1,i=1,2,\ldots,N
\end{align*}
$$
其中$N$为样本点的个数

漫步支持向量机(svm)之一的更多相关文章

  1. 【IUML】支持向量机SVM

    从1995年Vapnik等人提出一种机器学习的新方法支持向量机(SVM)之后,支持向量机成为继人工神经网络之后又一研究热点,国内外研究都很多.支持向量机方法是建立在统计学习理论的VC维理论和结构风险最 ...

  2. 机器学习:Python中如何使用支持向量机(SVM)算法

    (简单介绍一下支持向量机,详细介绍尤其是算法过程可以查阅其他资) 在机器学习领域,支持向量机SVM(Support Vector Machine)是一个有监督的学习模型,通常用来进行模式识别.分类(异 ...

  3. 以图像分割为例浅谈支持向量机(SVM)

    1. 什么是支持向量机?   在机器学习中,分类问题是一种非常常见也非常重要的问题.常见的分类方法有决策树.聚类方法.贝叶斯分类等等.举一个常见的分类的例子.如下图1所示,在平面直角坐标系中,有一些点 ...

  4. 机器学习算法 - 支持向量机SVM

    在上两节中,我们讲解了机器学习的决策树和k-近邻算法,本节我们讲解另外一种分类算法:支持向量机SVM. SVM是迄今为止最好使用的分类器之一,它可以不加修改即可直接使用,从而得到低错误率的结果. [案 ...

  5. 机器学习之支持向量机—SVM原理代码实现

    支持向量机—SVM原理代码实现 本文系作者原创,转载请注明出处:https://www.cnblogs.com/further-further-further/p/9596898.html 1. 解决 ...

  6. 支持向量机SVM——专治线性不可分

    SVM原理 线性可分与线性不可分 线性可分 线性不可分-------[无论用哪条直线都无法将女生情绪正确分类] SVM的核函数可以帮助我们: 假设‘开心’是轻飘飘的,“不开心”是沉重的 将三维视图还原 ...

  7. 一步步教你轻松学支持向量机SVM算法之案例篇2

    一步步教你轻松学支持向量机SVM算法之案例篇2 (白宁超 2018年10月22日10:09:07) 摘要:支持向量机即SVM(Support Vector Machine) ,是一种监督学习算法,属于 ...

  8. 一步步教你轻松学支持向量机SVM算法之理论篇1

    一步步教你轻松学支持向量机SVM算法之理论篇1 (白宁超 2018年10月22日10:03:35) 摘要:支持向量机即SVM(Support Vector Machine) ,是一种监督学习算法,属于 ...

  9. OpenCV 学习笔记 07 支持向量机SVM(flag)

    1 SVM 基本概念 本章节主要从文字层面来概括性理解 SVM. 支持向量机(support vector machine,简SVM)是二类分类模型. 在机器学习中,它在分类与回归分析中分析数据的监督 ...

随机推荐

  1. 【POJ2406】【KMP】Power Strings

    Description Given two strings a and b we define a*b to be their concatenation. For example, if a = & ...

  2. Java学习----创建对象的数组

    1.初始化数组的长度 2.初始化每个元素对象 3.调用每个对象的方法 public class Student { private String name; public Student() {} p ...

  3. 全部与精简切换显示jQuery实例教程

    下面是某网站上的一个品牌列表展示效果,用户进入页面时,品牌列表默认是精简显示的(即不完整的品牌列表)效果如下图所示: 用户可以单击商品列表下方的“显示全部品牌”按钮来显示全部的品牌.单击“显示全部品牌 ...

  4. mysql数据类型——整型INT(m)

    1.整形分为四种 tinyint smallint mediumint int bigint 注意: 右侧的取值范围是在未加unsigned关键字的情况下,如果加了unsigned,则最大值翻倍,如t ...

  5. MS Writer Code Test

    #include<iostream> using namepspace std; int main() { cout<<"Hello World"<& ...

  6. 剖析并利用Visual Studio Code在Mac上编译、调试c#程序【转】

    0x00 前言 一周多以前的微软的Build大会上,微软发布了一个让很多人眼前一亮的工具,也是本文的主角——Visual Studio Code.很多使用Windows的朋友都很高兴,认为又多了一个很 ...

  7. js弹出新窗口居中

    方式1: <script language="javascript"> var newUrl = <%=newUrl % > //window.locati ...

  8. Journey of Android for Mac

    下了决心要学Java,几个同事都建议我去学Android,自己觉得能做点应用放手机上玩玩也比较有动力. 沈逸有篇文章里面写道: 搞C的看不起搞C++的. 搞C++的看不起搞java的. 搞java的看 ...

  9. cf C. George and Number

    http://codeforces.com/problemset/problem/387/C 题意:给你一个大数,让你求个集合,可以通过操作得到这个数,求集合中个数最大值,操作 :从集合中任意取两个数 ...

  10. HTML入门教程(全套)

    http://www.rm5u.com/html_html.html http://learn.shayhowe.com/  moe.mwulu.com  http://www.w3school.co ...