更新、更全的《机器学习》的更新网站,更有python、go、数据结构与算法、爬虫、人工智能教学等着你:https://www.cnblogs.com/nickchen121/p/11686958.html
拉格朗日对偶性
在约束最优化问题中,拉格朗日对偶性(Lagrange duality)可以将原始问题转换为对偶问题,然后通过求解对偶问题的解得到原始问题的解。
一、原始问题
1.1 约束最优化问题
假设(f(x),c_i(x),h_j(x))是定义在(R^n)上的连续可微函数,则约束最优化问题的原始问题为
如果不考虑约束条件,约束问题就是
因为已经假设(f(x),c_i(x),h_j(x))连续可微,直接对(f(x))求导取0,即可求出最优解,但是这里有约束条件,因此得想办法去掉约束条件,而拉格朗日函数正是干这个的。
1.2 广义拉格朗日函数
为了解决上述原始问题,引入广义拉格朗日函数(generalized Lagrange function)
其中(x=(x^{(1)},x^{(2)},cdots,x^{(n)})^Tin{R^n}),(alpha_igeq0,eta_j)是拉格朗日乘子。
如果把(L(x,alpha,eta))看作是关于(alpha_i,eta_j)的函数,求其最大值,即
由于(alpha_i,eta_j)作为拉格朗日乘子已经可知,因此可以把(L(x,alpha,eta))看作是关于(x)的函数
其中下标(P)表示原始问题。
1.3 约束条件的考虑
假设给定某个(x)。
- 如果(x)违反原始问题的约束条件,即存在某个(i)使得(c_i(w)>0)或存在某个(j)使得(h_j(w) eq0),则有
因为如果某个(i)使得约束条件(c_i(x)>0),则可以令(alpha_i
ightarrow{+infty});如果某个(j)使得(h_j(x)
eq0),则可以使得(eta_jh_j(x)
ightarrow{+infty})。
2. 如果(x)满足原始问题的约束条件,(h_j(x)=0)并且(alpha_ic_i(x)leq0),因此( heta_P{(x)})的最大值即为(f(x)),即( heta_P{(x)}=f(x))。
通过对约束条件的考虑即可得
所以如果考虑极小化问题
它与原始问题是等价的,其中(underbrace{min}_{x}\,underbrace{max}_{alpha,eta}L(x,alpha,eta))被称作广义拉格朗日函数的极小极大问题。
通过广义拉格朗日函数的极小极大问题,可以定义原始问题的最优值
这一节主要通过使用拉格朗日函数把原始约束问题转化为无约束问题,即将约束问题无约束化。
二、对偶问题
定义一个关于(alpha,eta)的函数
其中等式右边是关于(x)的函数的最小化,即确定了(x)的值,最小值只与(alpha,eta)有关。
如果极大化( heta_D(alpha,eta)),即
上述就是原始问题的对偶问题,其中(underbrace{max}_{alpha,eta}underbrace{min}_{x}L(x,alpha,eta))也称为广义拉格朗日函数的极大极小问题。
该对偶问题的原始问题为
原始问题是先固定(L(x,alpha,eta))中的(x),优化出参数(alpha,eta),再优化(x);对偶问题是先固定(alpha,eta),优化出(x),然后再确定(alpha,eta)。
对偶问题的最优值为
三、原始问题和对偶问题的关系
3.1 定理1
如果原始问题和对偶问题都有最优解,则
因为对任意的(alpha,eta,x),都有
即
由于原始问题和对偶问题都有最优值,所以
即
上述说明了原始问题的最优值不小于对偶问题的最优值,但是我们要通过对偶问题来求解原始问题,就必须得使原始问题的最优值与对偶问题的最优值相等。
3.2 推论1
通过定理1可以推出:假设(x^*,alpha^*,eta^*)分别是原始问题和对偶问题的可行解,如果(d^*=p^*),则(x^*,alpha^*,eta^*)分别是原始问题和对偶问题的最优解。
当原始问题和对偶问题的最优值相等(d^*=p^*),如果使用对偶问题比求解原始问题简单,则可以用对偶问题求解原始问题。
3.3 定理2
对于原始问题和对偶问题,假设函数(f(x))和(c_i(x))是凸函数,(h_j(x))是仿射函数(注:仿射函数是一阶多项式构成的函数,(f(x)=Ax+b),(A)是矩阵,(x,b)是向量);并且假设不等式约束(c_i(x))是严格可行的,即存在(x),对所有的(i)有(c_i(x)<0),则存在(x^*,alpha^*,eta^*),使(x^*)是原始问题的解,(alpha^*,eta^*)是对偶问题的解,并且会有
3.4 定理3(KTT条件)
对于原始问题和对偶问题,假设函数(f(x))和(c_i(x))是凸函数,(h_j(x))是仿射函数;并且假设不等式约束(c_i(x))是严格可行的,即存在(x),对所有的(i)有(c_i(x)<0),则(x^*)是原始问题的解,(alpha^*,eta^*)是对偶问题的解的充分必要条件是(x^*,alpha^*,eta^*)满足下面的Karush-Kuhn-Tucker(KKT)条件
其中(alpha_i^*c_i(x^*)=0,quad{i=1,2,cdots,k})是KKT的对偶互补条件,由该条件可知:如果(alpha_i^*>0),则(c_i(x^*)=0)。