最优化理论是研究函数在给定一组约束条件下的最小值(或者最大值)的数学问题. 一般而言, 一个最优化问题具有如下的基本形式:
在很多情况下, 不等式约束条件可以通过引入新的变量而转化为等式约束条件, 因此最优化问题的一般形式可以简化为仅仅包含等式约束条件的形式
在线性规划早期发展中最重要的发现是对偶问题,即每一个线性规划问题(称为原始问题)有一个与它对应的对偶线性规划问题(称为对偶问题)。 1928年美籍匈牙利数学家 J.von诺伊曼在研究对策论发现线性规划与对策论之间存在着密切的联系。两零和对策可表达成线性规划的原始问题和对偶问题。
典型的对偶思想如:
用线性规划的例子入门,也能比较好解释什么是对偶问题。
线性规划中一个经典问题的描述如下:
某工厂有两种原料A、B,而且能用其生产两种产品: 1、生产第一种产品需要2个A和4个B,能够获利6;
2、生产第二种产品需要3个A和2个B,能够获利4; 此时共有100个A和120个B,问该工厂最多获利多少? 用数学表达式描述如下:
max 6x1+4x2
s.t. 2x1+3x2≤100
4x1+2x2≤120
工厂除了拿原料生产成产品卖掉这条出路外,还有一种方法是直接将原料卖掉。当然,不管是怎么做都要利益越大话!也就是说,把原料卖掉赚的钱比生产成产品赚的钱多,才去会这样做。那么最低可以接受多少的价格呢?假设资源A和B的单价分别为:y_1和y_2,那么可以用数学表达式描述如下:
min 100w1+120w2
s.t. 2w1+4w2≥6
3w1+2w2≥4
这两个问题互为对偶问题,分别称之为原问题(P)和对偶问题(D)。[例子来自文献4]
每一个线性规划问题都存在一个与其对偶的问题,在求出一个问题解的同时,也给出了另一个问题的解。当对偶问题比原始问题有较少约束时,求解对偶规划比求解原始规划要方便得多。
基本形式LP问题(如果对 g(λ,ν) 和为什么要使用下确界inf不了解,请继续往后面看)
在上面的例子中, g(λ,ν) 定义为拉格朗日对偶函数,向量向量 λ 和 ν 为对偶变量或者拉格朗日乘子。
但是在机器学习很多算法(比如SVM)中是非线性规划(NP)问题,那么还可以用对偶理论吗?答案是肯定,只是对于一般的问题,定义上需要更加通用一些。
对于任意一个带约束的优化都可以写成这样的形式
KKT条件(Karush-Kuhn-Tucker)
强对偶性时,假设 x∗ 和 (λ∗,ν∗) 分别是 原问题 和 对偶问题的极值点,相应的极值为 p∗ 和 d∗ ,首先 p∗=d∗ ,此时我们可以得到
f0(x∗)=g(λ∗,ν∗) (大白话就是如果一个带约束的原函数有一个可行解,对应的函数值和下确界函数上的一个可行解对应的函数值相同,你说这个值是不是最小值?!)
任何满足 强对偶性(不一定要求是通过 Slater 条件得到,也不一定要求是凸优化问题)的问题都满足 KKT 条件,是 强对偶性的一个必要条件。不过,当原始问题是凸优化问题的时候(当然还要求一应函数是可微的,否则 KKT 条件的最后一个式子就没有意义了),KKT 就可以升级为充要条件。(此处略去充要条件的证明部分)
(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 写的非常容易理解,重点推荐的好文章