SVM之问题形式化
>>>SVM之问题形式化
SVM内容繁多,打算用五篇文章来记述。SVM之问题形式化描述给出SVM的问题描述与基本模型;SVM之对偶问题将SVM求解转换为对偶问题的求解;SVM之核函数描述了SVM引人核函数进行特征向高维映射的过程;SVM之解决线性不可分描述了SVM对线性不可分数据的处理方法;另外,写在SVM之前——凸优化与对偶问题本身与SVM无关,但涉及了SVM优化问题求解的基础,是SVM之对偶问题和SVM之解决线性不可分的阅读前提。需要注意的是:前三篇都是在数据线性可分的情况下进行的,第四篇才给出了解决线性不可分的方法;尽管如此,并不意味这第四篇完全脱离前三篇的整体内容,相反,SVM解决线性不可分方法的形式化描述与线性可分情况无多大差异,所以求解方法也是一样的。
一、线性分类器
对输入的$m$ 个训练样本${{\left\{ {{x}^{i}},{{y}^{i}} \right\}}_{i=1\cdots m}},{{x}^{i}}\in {{\Re }^{n}},{{y}^{i}}\in \{-1,1\}$ ,线性分类器希望找到一个超平面${{w}^{T}}x+b=0$ 将两类样本分开,使得对于样本类别${{y}^{i}}=1$ 的样本${{w}^{T}}{{x}^{i}}+b>0$ ;对于样本类别${{y}^{i}}=-1$的样本${{w}^{T}}{{x}^{i}}+b<0$。这样,超平面${{w}^{T}}x+b=0$便是一个“完美”的分类器。这个“完美”的分类器当然是很任性的,因为她要求数据是要线性可分的,不过在没有明确提出线性不可分的问题之前,暂且随着她的性子,假设数据和她一样“完美”吧!
二、函数间隔与几何间隔
在继续分类器之前,首先引人函数间隔和几何间隔两个概念。
对于线性函数$h(x)={{w}^{T}}x+b$ ,定义第$i$ 个样本到它的函数间隔为:\[{{\hat{\gamma }}^{i}}={{y}^{i}}({{w}^{T}}{{x}^{i}}+b)\]
函数间隔的意义不是很明确直观,但很容易发现它有一个性质:函数间隔随$(w,b)$ 的尺度成比例变换,也就是说如果令$({w}',{b}')=k(w,b)$ ,那么${{{\hat{\gamma }}'}^{i}}={{y}^{i}}({{{w}'}^{T}}{{x}^{i}}+{b}')=k{{\hat{\gamma }}^{i}}$。
另外,定义$m$ 个样本的集合的函数间隔为$\hat{\gamma }=\underset{x}{\mathop{\min }}\,{{\hat{\gamma }}^{i}}$ ,也就是所有样本中函数间隔最小的那个。
几何间隔的意义就明确很多了,就是样本到超平面${{w}^{T}}x+b=0$的几何距离。
点A坐标记为向量${{x}_{A}}$ ,它到平面${{w}^{T}}x+b=0$的投影为点B,点B坐标记为向量${{x}_{B}}$ 。那点A到平面${{w}^{T}}x+b=0$的距离为向量$\overset{\to }{\mathop{BA}}\,$ 的长度。另外平面${{w}^{T}}x+b=0$的单位化的法向量为$\frac{w}{\left\| w \right\|}$ ,所以向量$\overset{\to }{\mathop{BA}}\,$ 的可以表示为${{\gamma }^{A}}\frac{w}{\left\| w \right\|}$,其中${{\gamma }^{A}}$为向量$\overset{\to }{\mathop{BA}}\,$ 的长度,也是点A到平面${{w}^{T}}x+b=0$的几何距离。根据向量${{x}_{A}}$ 、${{x}_{B}}$ 以及 $\overset{\to }{\mathop{BA}}\,$的关系,可以得到${{x}_{B}}={{x}_{A}}-\overset{\to }{\mathop{BA}}\,={{x}_{A}}-\lambda \frac{w}{\left\| w \right\|}$ ,又由于 ${{x}_{B}}$在平面 ${{w}^{T}}x+b=0$上,所以 ${{w}^{T}}{{x}_{B}}+b=0$,俩式联立可以得到点A到平面${{w}^{T}}x+b=0$ 的几何距离为${{\gamma }^{A}}=\frac{1}{\left\| w \right\|}({{w}^{T}}x+b)$。
考虑到样本在平面两侧距离计算结果的正负性,样本$i$ 的几何间隔定义为:\[{{\gamma }^{i}}=\frac{1}{\left\| w \right\|}{{y}^{i}}({{w}^{T}}{{x}^{i}}+b)\]
显然,几何间隔和函数间隔满足:\[{{\gamma }^{i}}=\frac{{{{\hat{\gamma }}}^{i}}}{\left\| w \right\|}\]
同样,定义$m$ 个样本的集合到超平面${{w}^{T}}x+b=0$的几何间隔为\[\gamma =\underset{i}{\mathop{\min }}\,{{\gamma }^{i}}\]
三、最大间隔分类器
如果数据是线性可分的,那么一般存在多组$(w,b)$是的超平面${{w}^{T}}x+b=0$可以将数据正确分类,那么就需要一个标准来从中选取一个最优的。
最大间隔分类器以几何间隔为标准,从中选取离所有样本的集合的几何间隔最大的一个分类超平面作为最优分类超平面,也就是说,这样的超平面使得所有样本的集合到它的几何间隔$\gamma $ 最大化。而\[\gamma =\underset{i}{\mathop{\min }}\,{{\gamma }^{i}}\],换句话说,它在正确分类的前提下,要使得隔离它最近的样本尽可能的离它远,这样的分类平面将两类样本分的更开,保证了分类器更好的泛化性,因为如果分类超平面如果离某一类样本相对较近(就像第一幅图中三条黑线那样),那么分类器在这类样本附近就很可能对新的数据产生错分。可以直观看出,这样的分类超平面几何上大概是与两类样本的“边界”平行,穿过两类样本最中间的那条线,就像第二幅图中红线那样。
现在将思想形式化表示出来。首先,分类器必须对所有训练数据正确分类,也就是说所有样本到超平面几何间隔至少为$\gamma $,其次目标是要是这个其次最大化,这样就可以将其表示为以下优化问题:\[\begin{align}\left\{ \begin{matrix}\underset{w,b,\gamma}{\mathop{\max }}\,\gamma\\\begin{matrix}s.t. & \frac{1}{\left\| w \right\|}{{y}^{i}}({{w}^{T}}{{x}^{i}}+b)\ge \gamma \\\end{matrix} \\\end{matrix} \right.\end{align}\]
根据几何间隔和函数间隔的关系$\gamma =\frac{{\hat{\gamma }}}{\left\| w \right\|}$,上面优化问题可进一步改写为:\[\begin{align}\left\{ \begin{matrix}\underset{w,b,\hat{\gamma }}{\mathop{\max }}\,\frac{{\hat{\gamma }}}{\left\| w \right\|} \\\begin{matrix}s.t. & {{y}^{i}}({{w}^{T}}{{x}^{i}}+b)\ge \hat{\gamma } \\\end{matrix} \\\end{matrix} \right.\end{align}\]
现在观察优化问题$\underset{w,b}{\mathop{\max }}\,\frac{{\hat{\gamma }}}{\left\| w \right\|}$,优化变量为$(w,b)$ ,目标函数为$\frac{{\hat{\gamma }}}{\left\| w \right\|}$,前文已经提到,函数间隔$\hat{\gamma }$ 随$(w,b)$ 的尺度成比例变换,那么现在优化目标函数$\frac{{\hat{\gamma }}}{\left\| w \right\|}$时,对优化变量$(w,b)$ 的任何尺度变换是没有意义的,并不会影响$\frac{{\hat{\gamma }}}{\left\| w \right\|}$的值。由于它们之间的这种关系,我们可以简化问题的求解,对$\hat{\gamma }$和$(w,b)$之一固定,去优化另一个(这个我的理解也比较模糊)。实事上,固定$\hat{\gamma }$会使问题变得更加简单,现在固定$\hat{\gamma }=1$(其他常数也可以),最大化$\frac{{\hat{\gamma }}}{\left\| w \right\|}$ 等价于最小化$\left\| w \right\|$ ,也等价于最小化$\frac{1}{2}{{\left\| w \right\|}^{2}}$ (这样转换是为了后面运算方便)上面的优化问题进一步化为:\[\begin{align}\left\{ \begin{matrix}\underset{w,b}{\mathop{\min }}\,\frac{1}{2}{{\left\| w \right\|}^{2}} \\\begin{matrix}s.t. & {{y}^{i}}({{w}^{T}}{{x}^{i}}+b)\ge 1 \\\end{matrix} \\\end{matrix} \right.\end{align}\]
现在,SVM的基础——最大间隔分类器就形式化为以上优化问题,而且不难发现它还是个凸优化问题,求解很方便。但是,我们并不直接求解这个问题,而是转而求解它的对偶问题,这我个人理解主要是因为转换后的对偶问题具有很好的形式,很容易引人核函数。关于对偶问题下一篇SVM之对偶问题中再写。
SVM之问题形式化的更多相关文章
- 写在SVM之前——凸优化与对偶问题
SVM之问题形式化 SVM之对偶问题 SVM之核函数 SVM之解决线性不可分 >>>写在SVM之前——凸优化与对偶问题 本篇是写在SVM之前的关于优化问题的一点知识,在SVM中会用到 ...
- SVM之解决线性不可分
SVM之问题形式化 SVM之对偶问题 SVM之核函数 >>>SVM之解决线性不可分 写在SVM之前——凸优化与对偶问题 上一篇SVM之核函数介绍了通过计算样本核函数,实际上将样本映射 ...
- SVM之对偶问题
SVM之问题形式化 >>>SVM之对偶问题 SVM之核函数 SVM之解决线性不可分 写在SVM之前——凸优化与对偶问题 前一篇SVM之问题形式化中将最大间隔分类器形式化为以下优化问题 ...
- SVM之核函数
SVM之问题形式化 SVM之对偶问题 >>>SVM之核函数 SVM之解决线性不可分 写在SVM之前——凸优化与对偶问题 上一篇SVM之对偶问题中讨论到,SVM最终形式化为以下优化问题 ...
- 2. SVM线性分类器
在一个线性分类器中,可以看到SVM形成的思路,并接触很多SVM的核心概念.用一个二维空间里仅有两类样本的分类问题来举个小例子.如图所示 和是要区分的两个类别,在二维平面中它们的样本如上图所示.中间的直 ...
- 支持向量机通俗导论(理解SVM的三层境界)
原文链接:http://blog.csdn.net/v_july_v/article/details/7624837 作者:July.pluskid :致谢:白石.JerryLead 出处:结构之法算 ...
- 机器学习基石--学习笔记01--linear hard SVM
背景 支持向量机(SVM)背后的数学知识比较复杂,之前尝试过在网上搜索一些资料自学,但是效果不佳.所以,在我的数据挖掘工具箱中,一直不会使用SVM这个利器.最近,台大林轩田老师在Coursera上的机 ...
- 机器学习——SVM详解(标准形式,对偶形式,Kernel及Soft Margin)
(写在前面:机器学习入行快2年了,多多少少用过一些算法,但由于敲公式太过浪费时间,所以一直搁置了开一个机器学习系列的博客.但是现在毕竟是电子化的时代,也不可能每时每刻都带着自己的记事本.如果可以掏出手 ...
- SVM(支持向量机)算法
第一步.初步了解SVM 1.0.什么是支持向量机SVM 要明白什么是SVM,便得从分类说起. 分类作为数据挖掘领域中一项非常重要的任务,它的目的是学会一个分类函数或分类模型(或者叫做分类器),而支持向 ...
随机推荐
- 『Python基础-3』变量、定义变量、变量类型、关键字Python基础-3』变量、定义变量、变量类型、关键字
『Python基础-3』变量.定义变量.变量类型.关键字 目录: 1.Python变量.变量的命名 2.变量的类型(Python数据类型) 3.Python关键字 1. Python 变量.变量的命名 ...
- vue生命周期和react生命周期对比
一 vue的生命周期如下图所示(很清晰)初始化.编译.更新.销毁 二 vue生命周期的栗子 注意触发vue的created事件以后,this便指向vue实例,这点很重要 <!DOCTYPE ht ...
- spring作用
在SSH框假中spring充当了管理容器的角色.我们都知道hibernate用来做持久层,因为它将JDBC做了一个良好的封装,程序员在与数据库进行交互时可以不用书写大量的SQL语句.Struts是用来 ...
- 【POJ2482】Stars in Your Window
[POJ2482]Stars in Your Window 题面 vjudge 题解 第一眼还真没发现这题居然™是个扫描线 令点的坐标为\((x,y)\)权值为\(c\),则 若这个点能对结果有\(c ...
- P1563 玩具谜题
P1563 玩具谜题 题目描述 小南有一套可爱的玩具小人, 它们各有不同的职业. 有一天, 这些玩具小人把小南的眼镜藏了起来. 小南发现玩具小人们围成了一个圈,它们有的面朝圈内,有的面朝圈外.如下图: ...
- P1535 游荡的奶牛
P1535 游荡的奶牛 题目描述 Searching for the very best grass, the cows are travelling about the pasture which ...
- spring之HttpInvoker
一.HttpInvoker是常用的Java同构系统之间方法调用实现方案,是众多Spring项目中的一个子项目.顾名思义,它通过HTTP通信即可实现两个Java系统之间的远程方法调用,使得系统之间的通信 ...
- Redis系列一 Redis安装
Redis系列一 Redis安装 1.安装所使用的操作系统为Ubuntu16.04 Redis版本为3.2.9 软件一般下载存放目录为/opt,以下命令操作目录均为/opt root@ubunt ...
- elasticsearch增删改查操作
目录 1. 插入数据 2. 更改数据 3. 删除数据 4. 检索文档 1. 插入数据 关于下面的代码如何使用,可以借助于kibana的console,浏览器打开地址: http://xxx.xxx.x ...
- 浅析Win8/8.1下安装SQL Server 2005 出现服务项无法正常启动解决方案
如何才能在微软最新的Windows8/Windows 8.1下正常使用SQL Server 2005套件呢?下面就简单介绍利用文件替换法,解决其服务项无法正常启动的临时方案.当然还是建议使用SQL S ...