最优化问题学习笔记1-对偶理论
最优化理论是研究函数在给定一组约束条件下的最小值(或者最大值)的数学问题. 一般而言, 一个最优化问题具有如下的基本形式:
\begin{aligned} \min&f_0(x) \\ s.t. &f_i(x)\leq 0, \quad i=1,\ldots,m\\ &h_i(x)=0, \quad i=1,\ldots,p \end{aligned}
其中 f0(x)f_0(x)为目标函数, fi(x)≤0,i=1,2,…,mf_i(x)≤0,i=1,2,…,m 为不等式约束条件, hj(x)=0,k=1,2,…,ph_j(x)=0,k=1,2,…,p为等式约束条件.
在很多情况下, 不等式约束条件可以通过引入新的变量而转化为等式约束条件, 因此最优化问题的一般形式可以简化为仅仅包含等式约束条件的形式
min.:f(x)
s.t.:g(x)=0
最优化问题可以根据目标函数和约束条件的类型进行分类:
最优化问题可以根据目标函数和约束条件的类型进行分类:
1). 如果目标函数和约束条件都为变量的线性函数, 称该最优化问题为线性规划;
2). 如果目标函数为变量的二次函数, 约束条件为变量的线性函数, 称该最优化问题为二次规划;
3). 如果目标函数或者约束条件为变量的非线性函数, 称该最优化问题为非线性规划.
[来自文献3]
线性规划中的对偶问题
在线性规划早期发展中最重要的发现是对偶问题,即每一个线性规划问题(称为原始问题)有一个与它对应的对偶线性规划问题(称为对偶问题)。 1928年美籍匈牙利数学家 J.von诺伊曼在研究对策论发现线性规划与对策论之间存在着密切的联系。两零和对策可表达成线性规划的原始问题和对偶问题。
典型的对偶思想如:
用线性规划的例子入门,也能比较好解释什么是对偶问题。
线性规划中一个经典问题的描述如下:
某工厂有两种原料A、B,而且能用其生产两种产品: 1、生产第一种产品需要2个A和4个B,能够获利6;
2、生产第二种产品需要3个A和2个B,能够获利4; 此时共有100个A和120个B,问该工厂最多获利多少? 用数学表达式描述如下:
max 6x1+4x2max \ \ \ 6x_1+4x_2
s.t. 2x1+3x2≤100s.t. \ \ \ \ 2x_1+3x_2≤100
4x1+2x2≤120\ \ \ \ \ \ \ \ \ \ \ 4x_1+2x_2≤120
工厂除了拿原料生产成产品卖掉这条出路外,还有一种方法是直接将原料卖掉。当然,不管是怎么做都要利益越大话!也就是说,把原料卖掉赚的钱比生产成产品赚的钱多,才去会这样做。那么最低可以接受多少的价格呢?假设资源A和B的单价分别为:y_1和y_2,那么可以用数学表达式描述如下:
min 100w1+120w2min\ \ \ 100w_1+120w_2
s.t. 2w1+4w2≥6s.t. \ \ \ \ 2w_1+4w_2≥6
3w1+2w2≥4\ \ \ \ \ \ \ \ \ \ \ 3w_1+2w_2≥4
这两个问题互为对偶问题,分别称之为原问题(P)和对偶问题(D)。[例子来自文献4]
每一个线性规划问题都存在一个与其对偶的问题,在求出一个问题解的同时,也给出了另一个问题的解。当对偶问题比原始问题有较少约束时,求解对偶规划比求解原始规划要方便得多。
基本形式LP问题(如果对g(λ,ν)g(\lambda,\nu)和为什么要使用下确界inf不了解,请继续往后面看)
在上面的例子中,g(λ,ν)g(\lambda,\nu)定义为拉格朗日对偶函数,向量向量 λ 和 ν 为对偶变量或者拉格朗日乘子。
g(\lambda,\nu) = \inf_{x\in\mathcal{D}} L(x,\lambda,\nu) =\inf_{x\in\mathcal{D}} \left ( f_0(x) + \sum_{i=1}^m \lambda_i f_i(x) + \sum_{i=1}^p \nu_i h_i(x) \right )
【来自参考文献2】
引入松弛变量,可将一般情形LP问题转换为基本形式LP问题
【来自参考文献1】
但是在机器学习很多算法(比如SVM)中是非线性规划(NP)问题,那么还可以用对偶理论吗?答案是肯定,只是对于一般的问题,定义上需要更加通用一些。
对于任意一个带约束的优化都可以写成这样的形式
\begin{aligned} \min&f_0(x) \\ s.t. &f_i(x)\leq 0, \quad i=1,\ldots,m\\ &h_i(x)=0, \quad i=1,\ldots,p \end{aligned}
我们希望把带约束的优化问题转化为无约束的优化问题。为此,我们定义 Lagrangian 如下:
L(x,\lambda,\nu)=f_0(x)+\sum_{i=1}^m\lambda_if_i(x)+\sum_{i=1}^p\nu_ih_i(x)
\lambda\succeq 0, \nu
因为 ∑mi=1λifi(x)≤0,\sum_{i=1}^m\lambda_if_i(x)\leq0, ∑pi=1νihi(x)=0\sum_{i=1}^p\nu_ih_i(x)=0所以:
L(x,\lambda,\nu)\leq f_0(x)
自然 max L(x,λ,ν)≤f0(x)\ \ max\ \ L(x,\lambda,\nu)\leq f_0(x) ,无论 xx取定义域内任何值,此式恒成立。
对于原问题的最优解x=p∗x=p^*( f0(p∗)f_0(p^*)为最小值),当然 max L(p∗,λ,ν)≤f0(x∗)\ \ max\ \ L(p^*,\lambda,\nu)\leq f_0(x^*)
因此我们可以看到 L(p∗,λ,ν)L(p^*,\lambda,\nu)具有 f0(x) f_0(x)下界的特征,进一步来说为下确界(此处非严格的数学证明!!!)
可以定义拉格朗日对偶函数
g(\lambda,\nu) = \inf_{x\in\mathcal{D}} L(x,\lambda,\nu) =\inf_{x\in\mathcal{D}} \left ( f_0(x) + \sum_{i=1}^m \lambda_i f_i(x) + \sum_{i=1}^p \nu_i h_i(x) \right )
最优解满足的条件是什么?
KKT条件(Karush-Kuhn-Tucker)
强对偶性时,假设 x∗x^∗ 和(λ∗,ν∗) (λ^∗,ν^∗) 分别是 原问题 和 对偶问题的极值点,相应的极值为 p∗p^∗ 和 d∗d^∗ ,首先 p∗=d∗p^∗=d^∗ ,此时我们可以得到
f0(x∗)=g(λ∗,ν∗)f_0(x^∗)=g(λ^∗,ν^∗)(大白话就是如果一个带约束的原函数有一个可行解,对应的函数值和下确界函数上的一个可行解对应的函数值相同,你说这个值是不是最小值?!)
任何满足 强对偶性(不一定要求是通过 Slater 条件得到,也不一定要求是凸优化问题)的问题都满足 KKT 条件,是 强对偶性的一个必要条件。不过,当原始问题是凸优化问题的时候(当然还要求一应函数是可微的,否则 KKT 条件的最后一个式子就没有意义了),KKT 就可以升级为充要条件。(此处略去充要条件的证明部分)
\begin{aligned} f_i(x^*)\leq 0,&\quad i=1,\ldots,m\\ h_i(x^*)=0,&\quad i=1,\ldots,p\\ \lambda_i^*\geq 0,&\quad i=1,\ldots,m\\ \lambda_i^*f_i(x^*)=0,&\quad i=1,\ldots,m\\ \textstyle\nabla f_0(x^*)+\sum_{i=1}^m\lambda_i^*\nabla f_i(x^*)+\sum_{i=1}^p\nu_i^* \nabla h_i(x^*)=0& \end{aligned}
前3个等式是约束条件,第4个等式是 f0(x∗)=g(λ∗,ν∗)f_0(x^∗)=g(λ^∗,ν^∗)必然要求(很容易看出)。由于 g(λ,ν)g(λ,ν)在(λ^∗,ν^∗)处取得极大值, g(λ,ν)g(λ,ν)导在 x∗x^*处为0,得到最后一个等式。
参考文献
(1)最优化方法之 对偶理论讲解 http://wenku.baidu.com/link?url=33XanYORmOUHwge5prDC_3nfGElkKkyQuI4hr5YvTlWxprk9qtbEQSIiLBsN4rdE4A3f63PJLCMJ9w3SUk1Y0tVbg4_WTOX0rrM713GoMsy
(2)http://xiaoyc.com/duality-theory-for-optimization/
(3)最优化理论与KKT条件http://blog.csdn.net/loadstar_kun/article/details/25369017
(4)对偶问题 http://www.cnblogs.com/tianchi/archive/2012/09/18/2691492.html
(5)支持向量机:Duality http://blog.pluskid.org/?p=702 写的非常容易理解,重点推荐的好文章
最优化问题学习笔记1-对偶理论相关推荐
- 陈宝林《最优化理论与算法》超详细学习笔记 (四)————第四章 对偶理论
陈宝林<最优化理论与算法>超详细学习笔记 (四)----第四章 对偶理论 1. 对偶问题的提出 2. 线性规划的对偶理论 2.1 原问题与对偶问题的关系 2.2 对偶问题的基本性质 3. ...
- 拉格朗日乘子法 学习笔记
本来是想写支持向量机的学习笔记的然后觉得内容太多了越写越不想写于是咕掉了. 把写好的拉格朗日乘子法发上来吧QwQ 拉格朗日乘子法 wiki链接 拉格朗日乘子法用来求解带多个等式约束的情况下的多元函数极 ...
- 机器学习入门学习笔记:(4.2)SVM的核函数和软间隔
前言 之前讲了有关基本的SVM的数学模型(机器学习入门学习笔记:(4.1)SVM算法).这次主要介绍介绍svm的核函数.软间隔等概念,并进行详细的数学推导.这里仅将自己的笔记记录下来,以便以后复习查看 ...
- 统计学习方法 学习笔记(十):决策树
这一个学习笔记将要了解决策树,在研一上机器学习这门课的时候,老师在讲到这一节的时候,举了一个例子我现在还能记得:你们坐在这里上课,就像这个决策树一样,在你人生中的每一个重要结点,你都做出了选择,经过多 ...
- 机器学习理论《统计学习方法》学习笔记:第六章 逻辑斯谛回归与最大熵模型
机器学习理论<统计学习方法>学习笔记:第六章 逻辑斯谛回归与最大熵模型 6 逻辑斯谛回归与最大熵模型 6.1 逻辑斯谛回归模型 6.1.1 逻辑斯谛分布 6.1.2 二项逻辑斯蒂回归模型 ...
- 机器学习理论《统计学习方法》学习笔记:第五章 决策树
机器学习理论<统计学习方法>学习笔记:第五章 决策树 决策树 5.1 决策树模型与学习 5.1.1 决策树模型 5.1.2 决策树与if-then规则 5.1.3 决策树与条件概率分布 5 ...
- 机器学习理论《统计学习方法》学习笔记:第二章 感知机
<统计学习方法>学习笔记:第二章 感知机 2 感知机 2.1 感知机模型 2.2 感知机学习策略 2.2.1 数据的线性可分性 2.2.2 感知机学习策略 2.3 感知机学习算法 2.3. ...
- 统计学习方法 学习笔记(五):支持向量机(下)
通过支持向量机(上)和支持向量机(中)的介绍,对支持向量机应该有点感性的认识啦!在这个学习笔记中,来继续探寻带核函数的支持向量机(解决如下图所示的问题) 对解线性分类问题,线性分类支持向量机是一种非常 ...
- 视觉SLAM十四讲学习笔记-第六讲-非线性优化的非线性最小二乘问题
专栏系列文章如下: 视觉SLAM十四讲学习笔记-第一讲_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习笔记-第二讲-初识SLAM_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习 ...
最新文章
- 利用jdt快速实现pmd的功能
- html 页面宽度和背景颜色,CSS:设置背景颜色为窗口宽度的50%
- 浅析大规模DDOS防御架构:应对T级攻防
- [Java基础]字符串中的编码解码问题
- 案例:演示<jsp:include>动作元素
- Java多态的实现方式,实战篇
- linux shell中的流编辑器sed的使用
- stl非变易算法(一)
- 通孔的作用是什么linux,转载:PCB名詞解釋:通孔、盲孔、埋孔
- 苹果手机代数_iPhone所有型号上市顺序
- Win7/Win8安装我们无法创建新的分区,也找不到现有的分区的解决方法
- 提供一个vs6,vs2005,vs2008,office2007可以下载的地址.
- 为啥不建议写内联样式?
- QPS 与 TPS 简介
- 人脸识别的发展和基础概念
- SQL手工注入漏洞测试(Oracle数据库)
- Python 螺旋正方形
- iOS-自定义键盘选择器
- Hbase下载安装部署详细步骤
- 机器学习项目实战——02回归算法之葡萄酒质量与时间的关系
热门文章
- Metasploit 基本使用方法
- 指纹识别与指静脉识别在市场应用的情况
- 计算机应用专科学校哪个好,热门大专计算机应用论文题目 大专计算机应用论文题目哪个好...
- 筹办“萨摩亚峰会全球颂”,创建第一个全球海洋超强智慧岛
- 微信小程序登陆全流程及与PHP后端的交互
- Alien Skin Exposure X4 V4.0.2.43(PS胶片滤镜)
- IPTV盒子与网络机顶盒子的区别
- Unity国际版forM1Mac
- 荣耀秋招嵌入式正式批
- Donald Knuth(高德纳) 真的只是一个人么?