Processing math: 2%

统计学习方法 学习笔记(七):拉格朗日对偶性

    在约束最优化问题中,常常利用拉格朗日对偶性(Lagrange duality)将原始问题转换为对偶问题,通过解对偶问题而得到原始问题的解。该方法应用在许多统计学习方法中,例如:最大熵模型与支持向量机。这里简要叙述拉格朗日对偶性的主要概念和结果:

   1. 原始问题

    假设f(x),ci(x),hj(x)是定义在R^n上的连续可微函数。考虑约束最优化问题:

\min_{x \in R^n} f(x)    (C.1)

s.t.    c_i(x) \leq 0, i=1,2,...,k    (C.2)

    h_j(x)=0, j=1,2,...,l    (C.3)

称此约束最优化问题为原始最优化问题或原始问题。

    首先,引进广义拉格朗日函数(generalized Lagrange function)

L(x,\alpha,\beta) = f(x) + \sum_{i=1}^{k}\alpha_ic_i(x) + \sum_{j=1}^{l}\beta_jh_j(x)

这里,x=(x^{(1)},x^{(2)},...,x^{(n)}) \in R^n,\alpha_i,\beta_j是拉格朗日乘子,\alpha_i \geq 0。考虑x的函数:

\Theta_p(x) = \max_{\alpha,\beta:\alpha_i \geq 0}L(x,\alpha,\beta)

这里,下标p表示原始问题。

\Theta_p(x) = \left\{\begin{matrix} f(x), &x 满足原始问题约束\\ +\infty, &其他 \end{matrix}\right.

所以如果考虑极小化问题:

\min_{x}\Theta_p(x) = \min_{x}\max_{\alpha,\beta:\alpha_i \geq 0}L(x,\alpha,\beta)

它是与原始最优化问题(C.1) ~ (C.3)等价的,即它们有相同的解。问题 \min_{x}\max_{\alpha,\beta:\alpha_i \geq 0}L(x,\alpha,\beta)称为广义拉格朗日函数的极小极大问题。这样一来,就把原始最优化问题表示为广义拉格朗日函数的极小极大问题。为了方便,定义原始问题的最优值:

p^{*} = \min_{x}\Theta_p(x)

称为原始问题的值。

    2. 对偶问题

    定义:

\Theta_{D}(\alpha,\beta) = \min_{x}L(x,\alpha,\beta)

再考虑极大化\Theta_{D}(\alpha,\beta) = \min_{x}L(x,\alpha,\beta),即:

\max_{\alpha,\beta:\alpha_i \geq 0}\Theta_{D}(\alpha,\beta) = \max_{\alpha,\beta:\alpha_i \geq 0}\min_{x}L(x,\alpha,\beta)

问题\max_{\alpha,\beta:\alpha_i \geq 0}\min_{x}L(x,\alpha,\beta)称为广义拉格朗日函数的极大极小问题。

    可以将广义拉格朗日函数的极大极小问题表示为约束最优化问题:

\max_{\alpha,\beta}\Theta_{D}(\alpha,\beta) = \max_{\alpha,\beta} \min_{x}L(x,\alpha,\beta)

s.t.    \alpha_i \geq 0, i=1,2,...,k

称为原始问题的对偶问题,定义对偶问题的最优值

d^{*} = \max_{\alpha,\beta:\alpha_i \geq 0}\Theta_{D}(\alpha,\beta)

称为对偶问题的值。

    3. 原始问题和对偶问题的关系

    定理C.1 若原始问题和对偶问题都有最优值,则:

d^{*} = \max_{\alpha,\beta:\alpha_i \geq 0} \min_{x}L(x,\alpha,\beta) \leq \min_{x}\max{\alpha,\beta:\alpha_i \geq 0}L(x,\alpha,\beta) = p^{*}

    推论C.1 设x^{*}\alpha^{*},\beta^{*}分别是原始问题和对偶问题的可行解,并且d^{*} = p^{*},则x^{*}\alpha^{*},\beta^{*}分别是原始问题和对偶问题的最优解。

    在某些条件下(KKT条件),原始问题和对偶问题的最优值相等,d^{*} = p^{*}。这时可以用解对偶问题代替解原始问题。

    KKT条件:

\bigtriangledown _xL(x^{*},\alpha^{*},\beta^{*}) = 0

\alpha_i^{*}c_i(x^{*}) = 0, i=1,2,...,k

c_i(x^{*}) \leq 0, i=1,2,...,k

\alpha_i^{*} \geq 0, i=1,2,...,k

h_j(x^{*}) = 0, j=1,2,...,l

    特别指出,式\alpha_i^{*} \geq 0, i=1,2,...,k称为KKT条件的对偶互补条件,由此条件可知:若\alpha_i^{*} > 0,则c_i(x^*) = 0

posted @   _DoubleLin  阅读(453)  评论(0编辑  收藏  举报
编辑推荐:
· 智能桌面机器人:用.NET IoT库控制舵机并多方法播放表情
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
阅读排行:
· 开发者新选择:用DeepSeek实现Cursor级智能编程的免费方案
· Tinyfox 发生重大改版
· 独立开发经验谈:如何通过 Docker 让潜在客户快速体验你的系统
· 小米CR6606,CR6608,CR6609 启用SSH和刷入OpenWRT 23.05.5
· 近期最值得关注的AI技术报告与Agent综述!
点击右上角即可分享
微信分享提示