拉格朗日对偶性详解(手推笔记)

个人原创笔记,转载请附上本文链接。


拉格朗日对偶性其实也没有那么难理解,在我梳理过后你会发现也就是那一回事罢了。

围绕着拉格朗日对偶性探讨的整个流程下来,实际上牵扯到 三个问题

  1. 原始问题,我们记作 P。
  2. 拉格朗日函数的极小极大问题,我们记作 P'。(后来会发现 极小极大问题 与 原始问题 是等价的)
  3. 拉格朗日函数的极大极小问题,我们记作 D。

以及需要注意的 p* 与 d* 之间的关系:

  1. 原始问题的解 p* 与拉格朗日对偶问题的解 d* 之间的关系。
  2. p* 与 d* 什么时候相等?
  3. 怎么计算 p*,d* ?

 原始问题 P

我们的 原始优化问题 表述出来就是:x 的可行域内,找到使得目标函数 f(x) 的最小值,以及 f(x) 取最小值时候的优化变量 x 。

把 f(x) 最小值记作 p^{*},同时 x^{*} 使得 f(x^{*}) = p^{*}。这两个就是我们想要求出的解。

原始问题使用数学语言表达形式见下图。

拉格朗日对偶性详解(手推笔记)_第1张图片


 拉格朗日极小极大问题 P'

我们首先引入了拉格朗日函数。函数见图片中 公式② 

拉格朗日函数的作用:等式约束条件不等式约束 都通过引入 拉格朗日乘子 整合到一个新函数里,使得原本的复杂的多约束优化问题变成了最简单的无约束优化问题。

 我们提出的 拉格朗日极小极大问题:希望在 \alpha 和 \beta 在取极大值的情况下,使得整个式子的值最小。其表达式见下图 公式③

拉格朗日对偶性详解(手推笔记)_第2张图片

通过上面证明,我们发现,我们所研究的 原始问题 P 实际上就是与 拉格朗日极小极大问题 P' 等价的(也就是他们的解都是相同的)。我们只要记住这一点即可!


拉格朗日极大极小问题 D

这时候,就出现了 “对偶” 的概念了。拉格朗日极大极小问题D 就是 拉格朗日极小极大问题 的对偶问题,也即是,拉格朗日极大极小问题D 就是 原始问题 的对偶问题。(因为原始问题 P 实际上就是与 拉格朗日极小极大问题 P' 等价的

别被绕晕了哈!其实不难的。

拉格朗日极大极小问题的表达式见下图 公式④

拉格朗日对偶性详解(手推笔记)_第3张图片


到目前为止,我们已经完全掌握了这 三个问题 了,同时,我们知道求解 原始问题 就可以等价于求解 拉格朗日极小极大问题 ,也知道原始问题P 与 拉格朗日极大极小问题D 是对偶问题,但他们之间具体又是什么关系呢?我们接着来看。


探究 d* 与 p* 之间的关系

拉格朗日对偶性详解(手推笔记)_第4张图片

我们通过对 x 的范围限定,可以推导出 d^{*} \leq p^{*}说明:对偶问题的最优解为原问题的最优解提供了一个下限!


什么时候 d* = p* ?

  •  d^{*} = p^{*} 为 强对偶性
  •  d^{*}\leq p^{*} 为 弱对偶性

只有在这两个条件下才满足强对偶性!

拉格朗日对偶性详解(手推笔记)_第5张图片

拉格朗日对偶性详解(手推笔记)_第6张图片


KKT条件

当问题满足强对偶性时,我们就可以利用KKT条件,列出下面的方程组求解。

拉格朗日对偶性详解(手推笔记)_第7张图片

 总结

某些条件下,把原始的约束问题通过拉格朗日函数转化为无约束问题,如果原始问题求解棘手,在满足KKT的条件下用求解对偶问题来代替求解原始问题,使得问题求解更加容易。

你可能感兴趣的:(简简单单机器学习,数学基础杂谈,机器学习,算法,python,人工智能,数学建模)