SVM笔记(二)拉格朗日对偶、KTT条件、软间隔SVM
上一篇: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相关推荐
- Python使用佩加索斯(Pegasos)算法实现软间隔SVM
一.软间隔SVM目标函数推导 SVM假定存在一个超平面能够将两类样本完全分隔开来,但在实际情况中,数据是不能被一个平面完全分隔的,因此,为了使得问题可解,我们需要在原SVM的优化问题上加入松弛变量ε, ...
- SMO算法在软间隔SVM分类中的应用
序列最小优化算法(SMO) SMO算法是一种启发式的算法,它在求解过程中通过以分析的方式来定位最优解可能存在的位置,从而避免了传统方法在求解中所遭遇的大量数值计算问题,并且最终以迭代的方式来求得最优解 ...
- 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)& ...
- SVM(二):KKT条件最直白的解释
目录 约束有否有效的问题 求解 KKT条件 约束有否有效的问题 在KKT条件的诸多大佬的解释中,都有一个关于约束是否有效的讨论,然而大多数人都没有讲清楚,什么是所谓的约束是否有效,下面我想先针对这个问 ...
- 砥志研思SVM(三) 最优间隔分类器问题(下):软间隔SVM
- 一文理解拉格朗日对偶和KKT条件
一. 最优化问题求解 1. 等式约束的极值求法 $$ \begin{gather*} \underset{t}{min} f(t) \; s.t.\; h_i(t)=0,i=1,\cdots,p \e ...
- 机器学习西瓜书笔记:软间隔和支持向量回归SVR
1.首先由SVM问题(最大间隔超平面模型):所有样本都可以正确分类的最优化问题,引入软间隔SVM(允许分类错误)的最优化问题,即需要添加损失函数(样本不满足约束的程度,或者说分类错误的程度),然后最优 ...
- 【机器学习系列】之SVM硬间隔和软间隔
作者:張張張張 github地址:https://github.com/zhanghekai [转载请注明出处,谢谢!] [机器学习系列]之SVM硬间隔和软间隔 [机器学习系列]之SVM核函数和SMO ...
- python svm核函数_机器学习算法实践-SVM核函数和软间隔
前言 上文中简单总结了对于线性可分数据的SVM的算法原理,本文对于非线性可分以及有噪声存在的时候我们需要对基本SVM算法的改进进行下总结其中包括: 核函数在SVM算法中的使用 引入松弛变量和惩罚函数的 ...
最新文章
- python人工智能入门书籍推荐-小编就给大家推荐几本python机器学习入门书!
- python随机大小写字符串_python 随机产生特定类型字符的函数(大写、小写、数字)...
- LeetCode_数组_简单题
- EclipsePHP Studio 2008快捷方式
- C语言指针怎么存二维数组,C语言怎么用指针代替二维数组
- 百度BCH云服务器(免费版)SSL证书 - 部署篇
- python txt转dataframe_Python格式化解析不规则txt文本并转为dataframe
- 图文讲解 sqlserver 2000 评测版 数据库过期 的解决方法
- scala case class与class区别
- python斐波那契数列_python3实现斐波那契数列(4种方法)
- 汉语字典_Android版最新官方版,汉语字典专业版2020
- LaTeX符号语法总结
- 基于Android的阳台浇花控制系统设计
- flash spi w25q128 w25q64 w25q32 w25q16 verilog fpga程序代码
- Linux基础命令之cd返回上级目录/返回根目录/进目录/返回上一次目录/返回指定目录
- Vue3 Vite 项目踩坑札记
- WKWebView预初始化
- 资深运维也不知道的那些事
- animejs走马灯_web前端攻城狮超爱的JS动画库插件—anime.js
- thymeleaf模板引擎的优势何在?