1.svm定义

  SVM从线性可分情况下的最优分类面发展而来 。最优分类面就是要求分类线不但能将两类正确分开( 训练错误率为0),且使分类间隔最大。SVM 考虑寻找一个满足分类要求的超平面,并且使训练集中的点距离分类面尽可能的远,也就是寻找一个分类面 使它两侧的空白区域(Margin) 最大 。如下图所示:

左边是一个分类超平面,但是不是最佳的,显然右边的分类超平面是最佳的,我们的目标就是要找到最佳的分类超平面。

2.间隔最大化

   先给出一般的线性分类超平面的定义:
样本集{xn,tn},n=1,2,...,N,xn∈Rd,tn∈{−1,1}\{x_n,t_n\},n=1,2,...,N,x_n\in R^d,t_n\in\{-1,1\}
分类器:y(x)=wTx+by(x) = w^Tx+b

tn={1,−1,y(xn)>0y(xn)<0

t_n= \begin{cases} 1, & \text {$y(x_n) > 0 $} \\ -1, & \text{$y(x_n)
也就是如果预测值大于0则为类别1,预测值小于0则为类别-1。总之,有:

tny(xn)>0

t_ny(x_n) > 0

  样本集任意一点xnx_n到分类面( 满足 tny(xn)>0t_ny(x_n) > 0) 的距离为:

tny(xn)||w||=tn(wTxn+b)||w||

\frac{t_ny(x_n)}{||w||} = \frac{t_n(w^Tx_n+b)}{||w||}
这类似于点到直线的距离的求发。假设有一条直线: x1+x2+2=0x_1+x_2+2=0,我们求点 (xi,xj)(x_i,x_j) 到该直线的举例就是 xi+xj+2x21+x22√\frac{x_i+x_j+2}{\sqrt{x_1^2+x_2^2}},只是上面的分母它用了一个向量的形式来表示所有的变量 (w1,w2,...,wm)(w_1,w_2,...,w_m)。

   而SVM要找的分类平面是,使得离该平面最近的点(边界点)离该平面的距离尽可能的远,用数学公式表示就是:

argmaxw,b{1||w||minn[tn(wTx+b)]}

arg\;max_{w,b}\{\frac{1}{||w||} min_n[t_n(w^Tx+b)]\}
里面表示距离分类面最近的点的距离,外面表示使得该距离最大。因为距离平面最近的点对应的 tn(wT+b)t_n(w^T+b) 必定为某个正数 kk,我们假设该值就是1,并不会影响参数w,bw,b 的取值。例如点 (2,1)(2,1) 在 2x1+3x2−42x_1+3x_2-4 中的取值为3,要使得该值为1,只需要相应的 w,bw,b 同时缩小为原来的 13\frac{1}{3},即变为 23x1+x2−43\frac{2}{3}x_1+x_2-\frac{4}{3},但是表示的仍然是同一条直线。所以原问题就转化为:

argmaxw,b{1||w||}

arg\;max_{w,b}\{\frac{1}{||w||} \}
并且上面假设了离分类面最近的点的距离为1,那么其他点对应的 tn(wT+b)>1t_n(w^T+b)>1。

   因为问题转化为最大化||w||−1||w||^{-1} ,等价于最小化12||w||2\frac{1}{2}||w||^{2},则上述问题可以用下面的数学表达式来描述:

argminw,b12||w||2,s.t.tn(wTx+b)≥1

arg\;min_{w,b}\;\frac{1}{2}||w||^{2},s.t.\;t_n(w_Tx+b)\geq1
解这种含不等式约束的极值点要用拉格朗日乘子法,构造拉格朗日函数如下:

L(w,b,a)=12||w||2−∑n=1Nan(tn(wTx+b)−1),an>0

L(w,b,a)=\frac{1}{2}||w||^{2}-\sum_{n=1}^Na_n(t_n(w^Tx+b)-1),a_n>0
其中 ana_n 是拉格朗日乘子,是一个正数。
对于上述的 L(w,b,a)L(w,b,a),对它的最大值进行讨论。
1.当 tn(wTx+b)>=1t_n(w^Tx+b)>=1时:
   显然有 (wTx+b)−1≥0(w^Tx+b)-1\geq 0 ,又 ana_n是一个正数,所以

∑n=1Nan(tn(wTx+b)−1)≥0

\sum_{n=1}^Na_n(t_n(w^Tx+b)-1) \geq 0所以:

L(w,b,a)=12||w||2−∑n=1Nan(tn(wTx+b)−1)=12||w||2−非负数

L(w,b,a)=\frac{1}{2}||w||^{2}-\sum_{n=1}^Na_n(t_n(w^Tx+b)-1)=\frac{1}{2}||w||^{2}-非负数
所以,很显然这种情况下 maxL(w,b,a)=12||w||2max\;L(w,b,a)=\frac{1}{2}||w||^{2}

2.当tn(wTx+b)<1t_n(w^Tx+b)时:
   显然有(wTx+b)−1≥0(w^Tx+b)-1\geq 0 ,又ana_n是一个正数,所以该累加项趋近于负无穷,即∑Nn=1an(tn(wTx+b)−1)\sum_{n=1}^Na_n(t_n(w^Tx+b)-1)趋于−∞-\infty,所以maxL(w,b,a)max\;L(w,b,a) 值是趋近于+∞+\infty
总结之后就是:

maxL(w,b,a)={12||w||2,+∞,tn(wTx+b)>=1tn(wTx+b)<1

max\;L(w,b,a)= \begin{cases} \frac{1}{2}||w||^{2}, & \text {$t_n(w^Tx+b)>=1 $} \\ +\infty, & \text{$t_n(w^Tx+b)
又前面假设中已经有任意点都满足 tn(wTx+b)>=1t_n(w^Tx+b)>=1 ,所以 maxL(w,b,a)max\;L(w,b,a)= 12||w||2\frac{1}{2}||w||^{2}。

   然后我们再回到原始的优化问题:

argminw,b12||w||2,s.t.tn(wTx+b)≥1

arg\;min_{w,b}\;\frac{1}{2}||w||^{2},s.t.\;t_n(w_Tx+b)\geq1
因为 maxL(w,b,a)max\;L(w,b,a)= 12||w||2\frac{1}{2}||w||^{2},用 L(w,b,a)L(w,b,a)替换 ww,所以该问题就等价于:

argminw,bmaxaL(w,b,a),s.t.tn(wTx+b)≥1

arg\;min_{w,b}\;max_a\;L(w,b,a),s.t.\;t_n(w_Tx+b)\geq1
但是这样不容易求解,我们需要考虑它的对偶问题。

3.拉格朗日对偶性

  求下面极值:

minwf(w)

min_w\;f(w)
在等式约束下的极值问题 s.t.hi(w)=1,...,ls.t.h_i(w)=1,...,l

L(w,β)=f(w)+∑i=1lβihi(w)

L(w,\beta)=f(w)+\sum_{i=1}^l\beta_ih_i(w)
在不等式约束下的极值问题 s.t.gi(w)≤0,i=1,...,k;hi(w)=1,...,ls.t.g_i(w)\leq0,i=1,...,k;h_i(w)=1,...,l

L(w,α,β)=f(w)+∑i=1kαigi(w)+∑j=1lβjhj(w)

L(w,\alpha,\beta)=f(w)+\sum_{i=1}^k\alpha_ig_i(w)+\sum_{j=1}^l\beta_jh_j(w)

   定义θP(w)=maxα,βL(w,α,β),s.t.αi≥0\theta_P(w)\;=\;max_{\alpha,\beta}\;L(w,\alpha,\beta),s.t.\alpha_i\geq0,只有满足基本约束条件时,θP\theta_P才会有最大值,基本约束条件就是上面不等式约束下的那些约束条件:

θP(w)={f(w),+∞,if w satisfies premal constraintsotherwise

\theta_P(w)= \begin{cases} f(w), & \text {if w satisfies premal constraints} \\ +\infty, & \text{otherwise} \end{cases}

  原问题minwf(w)min_w\;f(w) 转化为minwθP(w)=minwmaxα,βL(w,α,β)min_w\;\theta_P(w)=min_w\;max_{\alpha,\beta}L(w,\alpha,\beta),记为p∗p^*,直接求解不容易,需要转向另一个问题θD(w)=minwL(w,α,β)\theta_D(w)\;=\;min_{w}\;L(w,\alpha,\beta),先固定α,β\alpha,\beta,然后再求拉格朗日函数关于ww的最小值,之后再求θD(w)\theta_D(w)的最大值。即:

maxα,βθD(w)=maxα,βminwL(w,α,β)

max_{\alpha,\beta}\;\theta_D(w)=max_{\alpha,\beta}\;min_w\;L(w,\alpha,\beta)
该问题是原问题的对偶问题,记为 d∗d^*,很容易推出有下面大小关系:

d∗=maxα,βminwL(w,α,β)≤minwmaxα,βL(w,α,β)=p∗

d^*=max_{\alpha,\beta}\;min_w\;L(w,\alpha,\beta)\leq min_w\;max_{\alpha,\beta}L(w,\alpha,\beta)=p^*
即最小值的最大取值一定要小于等于最大值的最小取值。

  为了使得原问题的解和对偶问题的解相等,即p∗=d∗p^*=d^*,必须使得它们的解(w∗,α∗,β∗)(w^*,\alpha^*,\beta^*)满足KKT条件,即:
    ∂∂wiL(w∗,α∗,β∗)=0,i=1,...,n\frac{\partial}{\partial_{w_i}}L(w^*,\alpha^*,\beta^*)=0,i=1,...,n
    ∂∂βiL(w∗,α∗,β∗)=0,i=1,...,l\frac{\partial}{\partial_{\beta_i}}L(w^*,\alpha^*,\beta^*)=0,i=1,...,l
    α∗igi(w∗)=0,i=1,...,k称为KKT对偶互补条件\alpha^*_ig_i(w^*)=0,i=1,...,k称为KKT对偶互补条件
    gi(w∗)≤0,i=1,...,kg_i(w^*)\leq0,i=1,...,k
    a∗≥0,i=1,...,ka^*\geq0,i=1,...,k

如果(w∗,α∗,β∗)(w^*,\alpha^*,\beta^*)都满足KKT条件,那么它们就是原问题和对偶问题的解。
补充条件隐含如果 a∗>0a^*>0,那么gi(w∗)=0g_i(w^*)=0, 即ww处于可行域的边界上,是起作用的(Active) 约束 ,而位于可行域内部的点都是不起作用的约束,其 a∗=0a^*=0。

4.最优间隔分类器

  接到第2小节,该优化问题:

argminw,bmaxaL(w,b,a),s.t.tn(wTx+b)≥1

arg\;min_{w,b}\;max_a\;L(w,b,a),s.t.\;t_n(w_Tx+b)\geq1
转化为对偶问题就是:

argmaxaminw,bL(w,b,a),s.t.tn(wTx+b)≥1

arg\;max_a\;min_{w,b}\;L(w,b,a),s.t.\;t_n(w_Tx+b)\geq1

该对偶问题表示,先求L(w,b,a)L(w,b,a)关于参数w,bw,b的最小值,然后再求关于参数aa的最大值。关于参数w,bw,b的最小值,直接求导,找到极值点。
  L(w,b,a)=12||w||2−∑Nn=1an(tn(wTx+b)−1),an≥0L(w,b,a)=\frac{1}{2}||w||^{2}-\sum_{n=1}^Na_n(t_n(w^Tx+b)-1),a_n\geq0

∂∂wL(w,b,a)=0⇒w−∑n=1Nantnxn=0

\frac{\partial}{\partial_{w}}L(w,b,a)=0\Rightarrow w-\sum_{n=1}^Na_nt_nx_n=0

∂∂bL(w,b,a)=0⇒∑n=1Nantn=0

\frac{\partial}{\partial_{b}}L(w,b,a)=0\Rightarrow \sum_{n=1}^Na_nt_n=0
将 w=∑Nn=1antnxnw=\sum_{n=1}^Na_nt_nx_n和 ∑Nn=1antn=0\sum_{n=1}^Na_nt_n=0带入原 L(w,b,a)L(w,b,a),可以求得

L(w,b,a)=∑n=1Nan−12∑i=1N∑j=1NaiajtitjxTixj

L(w,b,a)=\sum_{n=1}^Na_n-\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^Na_ia_jt_it_jx_i^Tx_j
         s.t.ai≥0,∑Ni=1aiti=0s.t.a_i\geq0,\sum_{i=1}^Na_it_i=0

推导过程为:

  注意变换过的L(w,b,a)L(w,b,a)式子中,xix_i表示第i个样本,是已知的;tit_i表示第i个样本对应的类别值,为1或-1,也是已知的;所以该式子中仅有一个参数aa 是未知的。所以进一步的优化就是找到某一组aa,让L(w,b,a)L(w,b,a) 取得最大值,而只要找到一组a<script type="math/tex" id="MathJax-Element-14523">a</script>,它能够使得所有的样本都满足KKT条件时,便能够取得最大值。具体的实现算法参考SMO算法。

支持向量机(SVM)推导相关推荐

  1. 支持向量机SVM推导

    样本(\(x_{i}\),\(y_{i}\))个数为\(m\): \[\{x_{1},x_{2},x_{3}...x_{m}\}\] \[\{y_{1},y_{2},y_{3}...y_{m}\}\] ...

  2. 使用支持向量机进行光学字符识别_从零推导支持向量机 (SVM)

    雷锋网 AI 科技评论按,本文作者张皓,目前为南京大学计算机系机器学习与数据挖掘所(LAMDA)硕士生,研究方向为计算机视觉和机器学习,特别是视觉识别和深度学习. 个人主页:http://lamda. ...

  3. 从零推导支持向量机 (SVM)

    雷锋网(公众号:雷锋网) AI 科技评论按,本文作者张皓,目前为南京大学计算机系机器学习与数据挖掘所(LAMDA)硕士生,研究方向为计算机视觉和机器学习,特别是视觉识别和深度学习. 个人主页:http ...

  4. SVM支持向量机的推导(非常详细)

    SVM支持向量机的推导(非常详细) 参考自(https://www.zhihu.com/search?q=svm%E6%8E%A8%E5%AF%BC&utm_content=search_su ...

  5. [转] 从零推导支持向量机 (SVM)

    原文连接 - https://zhuanlan.zhihu.com/p/31652569 摘要 支持向量机 (SVM) 是一个非常经典且高效的分类模型.但是,支持向量机中涉及许多复杂的数学推导,并需要 ...

  6. 支持向量机SVM序列最小优化算法SMO

    支持向量机(Support Vector Machine)由V.N. Vapnik,A.Y. Chervonenkis,C. Cortes 等在1964年提出.序列最小优化算法(Sequential ...

  7. svm多分类_人工智能科普|机器学习重点知识——支持向量机SVM

    作为模式识别或者机器学习的爱好者,同学们一定听说过支持向量机这个概念,这可是一个,在机器学习中避不开的重要问题. 其实关于这个知识点,有一则很通俗有趣的传说: 很久以前,一个村庄里住着一位退隐的大侠, ...

  8. OpenCV之ml 模块. 机器学习:支持向量机(SVM)介绍 支持向量机对线性不可分数据的处理

    支持向量机(SVM)介绍 目标 本文档尝试解答如下问题: 如何使用OpenCV函数 CvSVM::train 训练一个SVM分类器, 以及用 CvSVM::predict 测试训练结果. 什么是支持向 ...

  9. 机器学习(三):支持向量机SVM(含代码和注释)

    目录 1. 线性可分 2. 支持向量机SVM 1. 线性可分 二维空间中,线性可分数据表示为可用一条直线分开两类数据:若不存在一条直线分开两类数据,则为非线性可分 可以把它拓展到更高维度空间.若在三维 ...

最新文章

  1. 第02章_MySQL环境搭建
  2. 你需要知道的缓存击穿/穿透/雪崩
  3. 帧率配置_《骑马与砍杀2》配置探究:CPU显卡怎么搭配达到理想画质和帧数?...
  4. MogoDb的使用及配置
  5. mfc vs2013 项目怎么更改类名_VS2010 更改MFC标题及标题栏图标和exe图标
  6. hihoCoder #1457 : 后缀自动机四·重复旋律7
  7. MyBatis 插件怎么编写和使用?原理是什么?
  8. mysql linux-syn25000是什么_当MySQL数据库遇到Syn Flooding
  9. MyEclipse 清理项目缓存的几大方法
  10. python中list index out of range_Python知识精解:str split()方法
  11. 图神经网络,这到底是个什么?
  12. lintcode:Plus One 加一
  13. OCX控件注册及无法注册的原因总结
  14. 插件对计算机的运行有什么影响吗,电脑插件太多导致电脑运行缓慢怎么办 - 驱动管家...
  15. 操作系统与网络协议晦涩难懂,华为18级工程师神级文档助你过关
  16. 对人工智能芯片的一些看法
  17. STEM教育活动一览
  18. python四瓣花图形_Python竟能画这么漂亮的花,帅呆了(代码分享)
  19. 抖音短视频如何添加抖音小程序;个人与企业该怎么运营小程序。
  20. android 人生日历,人生日历Android版 安卓版人生日历功能初体验

热门文章

  1. Mac OS X下安装Java 7及配置Eclipse JDK
  2. Java Virtual Machine Garbage Collection浅析
  3. Spring Security 教程
  4. RIP报文封装、OSPF封装、OSPF——cost值
  5. c语言注释换颜色,C语言实现注释转换
  6. Visual Studio 2017版本15.9现在可用
  7. C#设计模式之19-观察者模式
  8. react 组件构建_使用React Spring和Tinycolor构建色彩丰富的弹性组件
  9. 内部服务并行调用_25行以下代码中的并行SOAP调用的Express服务
  10. 技术文档的撰写_如何撰写出色的技术博客文章