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. Rplidar学习(二)—— SDK库文件学习

    SDK头文件介绍 1.头文件简介: rplidar.h //一般情况下开发的项目中仅需要引入该头文件即可使用 RPLIDAR SDK 的所有功能. rplidar_driver.h //定义了 SDK ...

  2. Android文件的读写

    Android的文件读写与JavaSE的文件读写相同,都是使用IO流.而且Android使用的正是JavaSE的IO流,下面我们通过一个练习来学习Android的文件读写. 1.创建一个Android ...

  3. JAXBContext处理CDATA

    今天做Lucene数据源接口时,遇到一个问题,就是输出xml时将某些数据放在CDATA区输出: 1.依赖的jar包,用maven管理项目的话, <dependency> <group ...

  4. 基于matplotlib的数据可视化 - 柱状图bar

    柱状图bar 柱状图常用表现形式为: plt.bar(水平坐标数组,高度数组,宽度比例,ec=勾边色,c=填充色,label=图例标签) 注:当高度值为负数时,柱形向下 1 语法 bar(*args, ...

  5. mysql_install_db 运行结果

    # /usr/local/mysql/scripts/mysql_install_db \ > --defaults-file=/etc/my.cnf \ > --basedir=/usr ...

  6. 常用DC-DC;AC-DC电源芯片

    求推荐几个常用的开关电源芯片http://bbs.21ic.com/icview-1245974-1-1.html(出处: 21ic电子技术论坛) 1.1 DC-DC电源转换器 1.低噪声电荷泵DC- ...

  7. Django form入门详解--2

    调整form的输出格式: 默认情况下form的格式化输出是基本table的样式的.但是django中还是为form提供发别的输出样式 1.默认的table样式输出 <html> <h ...

  8. ELK logstash邮件报警

    这个方法有一个问题就是我这边不能给我们公司的邮箱发邮件.还有就是我们有两个邮箱一个是腾讯企业邮箱,还有一个就是我们的集团邮箱 使用下面的这个方法是不能给我们的集团邮箱发邮件的.第二个问题就是这个方法给 ...

  9. vue-client脚手架使用

    1.必须安装node环境 2.安装vue-client脚手架,在命令提示符中运行npm install -g vue-cli 3.创建项目 vue init 模板名 项目名 例如:vue init w ...

  10. 使用MySQL Proxy和MySQL Replication实现读写分离

    MySQL Replication可以将master的数据复制分布到多个slave上,然后可以利用slave来分担master的读压力.那么对于前台应用来说,就要考虑如何将读的压力分布到多个slave ...