3. 支持向量机(SVM)拉格朗日对偶性(KKT)
1. 感知机原理(Perceptron)
2. 感知机(Perceptron)基本形式和对偶形式实现
3. 支持向量机(SVM)拉格朗日对偶性(KKT)
4. 支持向量机(SVM)原理
5. 支持向量机(SVM)软间隔
6. 支持向量机(SVM)核函数
1. 前言
在约束最优化问题中,常常利用拉格朗日对偶性将原始问题转化为对偶问题,通过求解对偶问题获得原始问题的解。该方法应用在许多统计学方法中,如最大熵模型、支持向量机。
2. 原始问题
假设\(f(x),c_i(x),h_j(x)\)是定义在\(R^n\)上的连续可微函数。考虑如下最优化问题
\[
\min_{x\in R^n}f(x)\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;(1)
\]
\[
s.t. \; c_i(x)\leq0, \; i=1,2,...,k
\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\; (2)
\]
\[
\;\;\;\;\;\;\; h_j(x)=0, \; j=1,2,...,l
\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\; (3)
\]
称此约束最优化问题为原始最优化问题或原始问题。
引入广义拉格朗日函数
\[
L(x,\alpha,\beta)=f(x)+\sum_{i=1}^k\alpha_ic_i(x)+\sum_{j=1}^l\beta_jh_j(x)
\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\; (4)
\]
这里, \(\alpha_i,\beta_j\)是拉格朗日乘子,\(\alpha_i≥0\). 考虑\(x\)的函数,这里下标\(P\)表示原始问题。
\[
\theta_P(x)=\max_{\alpha,\beta;\alpha_i\geq0}L(x,\alpha,\beta)
\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\; (5)
\]
容易得到:当\(x\)满足原始问题约束时,\(\theta_P(x)=f(x)\),则可得到与原始优化问题想等价的极小化问题如下:
\[
\min_{x}\theta_P(x)=\min_{x}\max_{\alpha,\beta;\alpha_i\geq0}L(x,\alpha,\beta)
\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\; (6)
\]
此问题称为广义拉格朗日函数的极小极大问题。
定义原始问题的最优值
\[
p^*=\min_{x}\theta_P(x)
\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\; (7)
\]
3. 对偶问题(dual problem)
关于对偶问题,我们首先定义:
\[
\theta_D(\alpha,\beta)=\min_{x}L(x,\alpha,\beta)
\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\; (8)
\]
再考虑极大化上式:
\[
\max_{\alpha,\beta;\alpha_i\geq0}\theta_D(\alpha,\beta)=\max_{\alpha,\beta;\alpha_i\geq0}\min_{x}L(x,\alpha,\beta)
\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\; (9)
\]
问题\(\max_{\alpha,\beta;\alpha\geq0}\min_{x}L(x,\alpha,\beta)\)称为广义拉格朗日函数的极大极小问题。可将广义拉格朗日函数的极大极小问题表示为约束最优化问题:
\[
\max_{\alpha,\beta}\theta_D(\alpha,\beta)=\max_{\alpha,\beta}\min_{x}L(x,\alpha,\beta)
\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\; (10)
\]
\[
s.t.\;\alpha_i\geq0,\; i=1,2,...,k
\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\; (11)
\]
称为原使问题的对偶问题。定义对偶问题的最优值,称为对偶问题的值。
\[
d^*=\max_{\alpha,\beta;\alpha_i\geq0}\theta_D(\alpha,\beta)
\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\; (12)
\]
4. 原始问题和对偶问题的关系
4.1 定理1
若原始问题和对偶问题都有最优值,则
\[
d^*=\max_{\alpha,\beta;\alpha_i\geq0}\min_{x}L(x,\alpha,\beta)\leq\min_{x}\max_{\alpha,\beta;\alpha_i\geq0}L(x,\alpha,\beta)=p^*
\]
4.2 推论1
设\(x^*\)和\(\alpha^*,\beta^*\)分别是原始问题(公式1~3)和对偶问题(公式10~11)的可行解,并且\(d^*=p^*\),则\(x^*\)和\(\alpha^*,\beta^*\)分别是原始问题和对偶问题的最优解。
4.3 定理2
考虑原始问题(公式1~3)和对偶问题(公式10~11). 假设函数\(f(x)\)和\(c_i(x)\)是凸函数,\(h_j(x)\)是仿射函数1; 并且假设不等式约束\(c_i(x)\)是严格可行的, 即存在\(x\), 对所有\(i\)有\(c_i(x)<0\), 则存在\(x^*,\alpha^*,\beta^*\)使\(x^*\)是原始问题的解, \(\alpha^*,\beta^*\)是对偶问题的解,并且
\[
p^*=d^*=L(x^*,\alpha^*,\beta^*)
\]
4.4 定理3
对原始问题(公式1~3)和对偶问题(公式10~11), 假设函数\(f(x)\)和\(c_i(x)\)是凸函数,\(h_j(x)\)是仿射函数,并且不等式约束\(c_i(x)\)是严格可行的, 则\(x^*\)和\(\alpha^*,\beta^*\)分别是原始问题和对偶问题的解的充分必要条件是\(x^*,\alpha^*,\beta^*\)满足KKT条件:
\[
\nabla_xL(x^*,\alpha^*,\beta^*)=0
\]
\[
\nabla_\alpha L(x^*,\alpha^*,\beta^*)=0
\]
\[
\nabla_\beta L(x^*,\alpha^*,\beta^*)=0
\]
\[
\alpha_i^*c_i(x^*)=0, \; i=1,2,...,k
\]
\[
c_i(x^*)\leq0, \; i=1,2,...,k
\]
\[
\alpha_i^*\geq0, \; i=1,2,...,k
\]
\[
h_j(x^*)=0, \; j=1,2,...,l
\]
3. 支持向量机(SVM)拉格朗日对偶性(KKT)的更多相关文章
- 机器学习之支持向量机—SVM原理代码实现
支持向量机—SVM原理代码实现 本文系作者原创,转载请注明出处:https://www.cnblogs.com/further-further-further/p/9596898.html 1. 解决 ...
- 复习支持向量机(SVM)没空看书时,掌握下面的知识就够了
支持向量机(support vector machines, SVM)是一种二类分类模型.它的基本模型是定义在特征空间上的间隔最大的线性分类器:支持向量机还包括核技巧,这使它成为实质上的非线性分类器. ...
- 转:机器学习中的算法(2)-支持向量机(SVM)基础
机器学习中的算法(2)-支持向量机(SVM)基础 转:http://www.cnblogs.com/LeftNotEasy/archive/2011/05/02/basic-of-svm.html 版 ...
- 机器学习-支持向量机SVM
简介: 支持向量机(SVM)是一种二分类的监督学习模型,他的基本模型是定义在特征空间上的间隔最大的线性模型.他与感知机的区别是,感知机只要找到可以将数据正确划分的超平面即可,而SVM需要找到间隔最大的 ...
- 拉格朗日对偶性(Lagrange duality)
目录 拉格朗日对偶性(Lagrange duality) 1. 从原始问题到对偶问题 2. 弱对偶与强对偶 3. KKT条件 Reference: 拉格朗日对偶性(Lagrange duality) ...
- 机器学习支持向量机SVM笔记
SVM简述: SVM是一个线性二类分类器,当然通过选取特定的核函数也可也建立一个非线性支持向量机.SVM也可以做一些回归任务,但是它预测的时效性不是太长,他通过训练只能预测比较近的数据变化,至于再往后 ...
- 线性可分支持向量机--SVM(1)
线性可分支持向量机--SVM (1) 给定线性可分的数据集 假设输入空间(特征向量)为,输出空间为. 输入 表示实例的特征向量,对应于输入空间的点: 输出 表示示例的类别. 线性可分支持向量机的定义: ...
- 支持向量机(SVM)原理详解
SVM简介 支持向量机(support vector machines, SVM)是一种二分类模型,它的基本模型是定义在特征空间上的间隔最大的线性分类器,间隔最大使它有别于感知机:SVM还包括核技巧, ...
- 机器学习——支持向量机SVM
前言 学习本章节前需要先学习: <机器学习--最优化问题:拉格朗日乘子法.KKT条件以及对偶问题> <机器学习--感知机> 1 摘要: 支持向量机(SVM)是一种二类分类模型, ...
随机推荐
- 在Hadoop1.2.1上运行第一个Hadoop程序FileSystemCat
- 【MongoDB】MongoDB的安装教程
1,MongoDB简介 MongoDB也是一种数据库,只不过它既不是关系型数据库,也不是非关系型数据库(NoSQL),而是一种介于关系型数据库和NoSQL之间的一种数据库.如果说非关系型数据库是轻量级 ...
- AndroidStudio升级到2.3版本无法编译的解决方法
上周五as提示更新,于是为了体验新功能还在编码过程中就迫不及待的点击了更新,公司网很快,十几分钟就下载好,然后一重启就懵逼了,提示是否更改依赖版本到2.3以及升级gradle到3.3,点了确定就一直在 ...
- 【Algorithm】二分查找
今天在学习<编程之美>的时候,看到一个二分查找的题目,发现原来我真的不懂二分查找. 二分查找时候注意的事项: 在求二分查找的中间点时没有使用 midIndex = (minIndex + ...
- php管理nginx虚拟主机shell脚本
使用php作为shell脚本是一件很方便的事情.理所当然,我们可以使用php脚本来管理 nginx虚拟主机,下面是笔者的 脚本 文件供各位参考 代码如下 复制代码 #!/usr/bin/php -q& ...
- Android数据库安全解决方案,使用SQLCipher
源码:http://files.cnblogs.com/android100/SQLCipherTest.rar 我们都知道,Android系统内置了SQLite数据库,并且提供了一整套的API用于对 ...
- PHP中的$_SERVER超全局变量
详细参数 PHP编程中经常需要用到一些服务器的一些资料,特把$_SERVER的详细参数整理下,方便以后使用. $_SERVER['PHP_SELF'] #当前正在执行脚本的文件名,与 document ...
- http 状态码 码表
HTTP状态码详解 - 查询资料 1xx消息 这一类型的状态码,代表请求已被接受,需要继续处理.这类响应是临时响应,只包含状态行和某些可选的响应头信息,并以空行结束.由于HTTP/1.0协议中没有定义 ...
- 怎么删除Elasticsearch里的index内容
DELETE testindex 请求方式为 DELETE, 跟库名
- Ubuntu java install & config
im:http://jingyan.baidu.com/article/08b6a591cb06f114a8092209.html http://www.cnblogs.com/zknublx/p/5 ...