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)的更多相关文章

  1. 机器学习之支持向量机—SVM原理代码实现

    支持向量机—SVM原理代码实现 本文系作者原创,转载请注明出处:https://www.cnblogs.com/further-further-further/p/9596898.html 1. 解决 ...

  2. 复习支持向量机(SVM)没空看书时,掌握下面的知识就够了

    支持向量机(support vector machines, SVM)是一种二类分类模型.它的基本模型是定义在特征空间上的间隔最大的线性分类器:支持向量机还包括核技巧,这使它成为实质上的非线性分类器. ...

  3. 转:机器学习中的算法(2)-支持向量机(SVM)基础

    机器学习中的算法(2)-支持向量机(SVM)基础 转:http://www.cnblogs.com/LeftNotEasy/archive/2011/05/02/basic-of-svm.html 版 ...

  4. 机器学习-支持向量机SVM

    简介: 支持向量机(SVM)是一种二分类的监督学习模型,他的基本模型是定义在特征空间上的间隔最大的线性模型.他与感知机的区别是,感知机只要找到可以将数据正确划分的超平面即可,而SVM需要找到间隔最大的 ...

  5. 拉格朗日对偶性(Lagrange duality)

    目录 拉格朗日对偶性(Lagrange duality) 1. 从原始问题到对偶问题 2. 弱对偶与强对偶 3. KKT条件 Reference: 拉格朗日对偶性(Lagrange duality) ...

  6. 机器学习支持向量机SVM笔记

    SVM简述: SVM是一个线性二类分类器,当然通过选取特定的核函数也可也建立一个非线性支持向量机.SVM也可以做一些回归任务,但是它预测的时效性不是太长,他通过训练只能预测比较近的数据变化,至于再往后 ...

  7. 线性可分支持向量机--SVM(1)

    线性可分支持向量机--SVM (1) 给定线性可分的数据集 假设输入空间(特征向量)为,输出空间为. 输入 表示实例的特征向量,对应于输入空间的点: 输出 表示示例的类别. 线性可分支持向量机的定义: ...

  8. 支持向量机(SVM)原理详解

    SVM简介 支持向量机(support vector machines, SVM)是一种二分类模型,它的基本模型是定义在特征空间上的间隔最大的线性分类器,间隔最大使它有别于感知机:SVM还包括核技巧, ...

  9. 机器学习——支持向量机SVM

    前言 学习本章节前需要先学习: <机器学习--最优化问题:拉格朗日乘子法.KKT条件以及对偶问题> <机器学习--感知机> 1 摘要: 支持向量机(SVM)是一种二类分类模型, ...

随机推荐

  1. 关于VC++的增量链接(Incremental Linking)

    增量链接(Incremental Linking)这个词语在使用Visual C++时经常会遇到(其实不只是VS系列,其它链接器也有这个特性), 就比如经常遇到的:上一个增量链接没有生成它, 正在执行 ...

  2. Innodb的内存结构

    1.缓冲池从1.0.x版本开始,允许有多个缓冲池实例. mysql> show variables like 'innodb_buffer_pool_size'\G ************** ...

  3. appium简明教程(3)——appium的安装windows版

    appium的哲学里有一条就是不重新发明轮子.同样,官方已经有明确的安装步骤了,因此在这里纯属搬砖. 原文地址 感谢testerhome的辛勤翻译. 本文版权归乙醇所有,欢迎转载,但请注明作者与出处, ...

  4. es6 对象解构 与 参数默认值

    var abc = ({a = 123, b = 321, c = 456} = {}) => console.log(20181109155055, a) abc()

  5. sublime 技巧与快捷键篇

    技巧大全:https://www.zhihu.com/question/24896283   项目排除文件夹,更便于ctrl + p的搜索,比如可恶的node_modules "folder ...

  6. VB通用数据库操作方法

    1.VB通用数据操作方法. 2.通用数据库查询方法. 3.通用数据库操作方法. 'ERP查询数据库 Public Function YZQuery(sqls As String, msgstring ...

  7. There is no Action mapped for namespace / and action name . - [unknown location]

    今天碰到了这个问题,原因不明白. 在webContent下建立了index.jsp后重启项目不报错了. 原因未知.

  8. activiti Task

    UserTask ScriptTask ServiceTask MailTask ManualTask ReceiveTask BusinessRuleTask callActivity

  9. Android入门-新手如何成功创建一个Android小应用

    原文:http://android.eoe.cn/topic/summary 第一课程:Building Your First App [本课内容简介]欢迎加入到安卓应用的开发大潮中!这门课程会教授你 ...

  10. jquery 取子节点及当前节点属性值

    分享下jquery取子节点及当前节点属性值的方法. <li class="menulink"><a href="#" rel="ex ...