上一篇:SVM笔记(一)

上一篇写到讲硬间隔的SVM转化为凸二次规划问题,也就是QP问题,之后可以是用现成的软件求解QP问题。但是如果样本数量大和维度比较高,会导致问题求解困难或不可解,因此引入了拉格朗日乘子来脱掉原问题的约束条件,然后根据原问题和对偶问题是强对偶关系,二者完全等价,因此转换为它得对偶问题后求导求最小值,最后引入KTT条件求解。

拉格朗日对偶

首先对问题引入拉格朗日函数,如下:

原问题就等价于:

原问题是一个凸二次规划问题,和它的对偶问题满足强对偶关系,即原问题等价于对偶问题,因此我们转化为它的对偶问题继续求解:

此时转化为了一个凸优化问题,只需要L分别对b求偏导,令偏导为0,带入原函数化简后,再求L对w的偏导,最终求出w。再把w代回化简后的函数求出得到对偶问题,

将上式代回原式中:

再将w代回原式:

由此得到原问题的对偶问题:

拉格朗日函数实际上是通过函数的特性天然排除了一些条件,从而实现去掉约束的。

KTT条件

KKT条件是解决最优化问题的时用到的一种方法。原问题和对偶问题满足强对偶关系的充要条件为其满足 KKT 条件:

存在,使得成立,把带入到中:

化简得:

带入得:

支持向量机的决策函数就是:

软间隔SVM

硬间隔的假设是数据是线性可分的,而当数据线性不可分或者存在一定的噪声时,硬间隔就很可能不起作用。因此引入软间隔,顾名思义,模型可以允许一定的容错度。当出现噪声点时,一个噪声点会使超平面产生比较大的变动,甚至无法找到超平面。软间隔的基本思想就是在硬间隔的基础上加上一定的loss,加入允许错误分类的可能性。最简单的方式就是计算错误点的个数作为误差:

但是这个函数是不连续,不可导的,所以采用距离的方式及计算误差,计算样本点到超平面的距离。由于在第一篇笔记中提到,假设了,这个可以理解为超平面到最近样本点之间的硬间隔,当样本点到超平面的间隔小于1,则这个点到的距离就是loss;当样本点到超平面的间隔大于1,则没有loss,可以写做:

又叫做Hinge Function。

在硬间隔的基础上加上loss函数,就变成了软间隔的SVM,令:,并加一个系数C,来控制loss的大小,这类C是一个超参数,作用很像正则化中的正则率。最终得到下面的式子:

SVM笔记(二)拉格朗日对偶、KTT条件、软间隔SVM相关推荐

  1. Python使用佩加索斯(Pegasos)算法实现软间隔SVM

    一.软间隔SVM目标函数推导 SVM假定存在一个超平面能够将两类样本完全分隔开来,但在实际情况中,数据是不能被一个平面完全分隔的,因此,为了使得问题可解,我们需要在原SVM的优化问题上加入松弛变量ε, ...

  2. SMO算法在软间隔SVM分类中的应用

    序列最小优化算法(SMO) SMO算法是一种启发式的算法,它在求解过程中通过以分析的方式来定位最优解可能存在的位置,从而避免了传统方法在求解中所遭遇的大量数值计算问题,并且最终以迭代的方式来求得最优解 ...

  3. SVM中引入拉格朗日对偶理解

      在求       12||w||2s.t.yi(wTx+b)>=1i=1,...,n\frac{1}{2}||w||^2\quad \quad s.t. \quad y_i(w^Tx+b)& ...

  4. SVM(二):KKT条件最直白的解释

    目录 约束有否有效的问题 求解 KKT条件 约束有否有效的问题 在KKT条件的诸多大佬的解释中,都有一个关于约束是否有效的讨论,然而大多数人都没有讲清楚,什么是所谓的约束是否有效,下面我想先针对这个问 ...

  5. 砥志研思SVM(三) 最优间隔分类器问题(下):软间隔SVM

  6. 一文理解拉格朗日对偶和KKT条件

    一. 最优化问题求解 1. 等式约束的极值求法 $$ \begin{gather*} \underset{t}{min} f(t) \; s.t.\; h_i(t)=0,i=1,\cdots,p \e ...

  7. 机器学习西瓜书笔记:软间隔和支持向量回归SVR

    1.首先由SVM问题(最大间隔超平面模型):所有样本都可以正确分类的最优化问题,引入软间隔SVM(允许分类错误)的最优化问题,即需要添加损失函数(样本不满足约束的程度,或者说分类错误的程度),然后最优 ...

  8. 【机器学习系列】之SVM硬间隔和软间隔

    作者:張張張張 github地址:https://github.com/zhanghekai [转载请注明出处,谢谢!] [机器学习系列]之SVM硬间隔和软间隔 [机器学习系列]之SVM核函数和SMO ...

  9. python svm核函数_机器学习算法实践-SVM核函数和软间隔

    前言 上文中简单总结了对于线性可分数据的SVM的算法原理,本文对于非线性可分以及有噪声存在的时候我们需要对基本SVM算法的改进进行下总结其中包括: 核函数在SVM算法中的使用 引入松弛变量和惩罚函数的 ...

最新文章

  1. python人工智能入门书籍推荐-小编就给大家推荐几本python机器学习入门书!
  2. python随机大小写字符串_python 随机产生特定类型字符的函数(大写、小写、数字)...
  3. LeetCode_数组_简单题
  4. EclipsePHP Studio 2008快捷方式
  5. C语言指针怎么存二维数组,C语言怎么用指针代替二维数组
  6. 百度BCH云服务器(免费版)SSL证书 - 部署篇
  7. python txt转dataframe_Python格式化解析不规则txt文本并转为dataframe
  8. 图文讲解 sqlserver 2000 评测版 数据库过期 的解决方法
  9. scala case class与class区别
  10. python斐波那契数列_python3实现斐波那契数列(4种方法)
  11. 汉语字典_Android版最新官方版,汉语字典专业版2020
  12. LaTeX符号语法总结
  13. 基于Android的阳台浇花控制系统设计
  14. flash spi w25q128 w25q64 w25q32 w25q16 verilog fpga程序代码
  15. Linux基础命令之cd返回上级目录/返回根目录/进目录/返回上一次目录/返回指定目录
  16. Vue3 Vite 项目踩坑札记
  17. WKWebView预初始化
  18. 资深运维也不知道的那些事
  19. animejs走马灯_web前端攻城狮超爱的JS动画库插件—anime.js
  20. thymeleaf模板引擎的优势何在?

热门文章

  1. 运行VBS权限受限,需要用Run as Administrator的cmd窗口来运行
  2. 摘抄部分经典励志语录: 送给所有心怀梦想的人们
  3. 2020.6.6课堂小结
  4. 请先切换至Wxml Pannel的解决方法
  5. java的class是什么意思_Java的class是什么意思?
  6. (混沌系统)图像加密之Logistic混沌映射matlab仿真
  7. contiki学习笔记-udp-server.c文件详细的解析
  8. Python 基于modbus tcp 协议 实现与plc通信
  9. 图像处理算法之模糊检测
  10. 更改PPT的模板名称