想象你是班主任,要敲定一次春游的最终方案 x。你最大的心愿是让同学们的“折腾指数”最低,但两条班规必须同时遵守:总花费不能超过预算,车辆座位必须不多不少正好坐满。直接对着班规找最优方案,就像在迷宫里走路——这边省钱却腾不出车,那边活动精彩却超了支,处处碰壁。 这时候有位老教师教你一招“把班规变成价格”的巧思:给每条班规定一个单价——超支一块钱扣多少分、空一个座位扣多少分,然后把所有扣分折进“折腾指数”,合成一个“综合折腾指数”。这样一来,选方案的人不再盯着规则,只要算出哪个方案综合分最低就行;而定价格的人则站在另一个方向思考:把单价定多高,才能让“全班最佳反应”对应的分数尽量贴近真实底线? 这就是拉格朗日对偶:把带约束问题变成“目标 + 带价约束”的拉格朗日函数,再从“定价者”视角构造对偶问题。对偶问题往往更简单,而且永远只给出原问题的下界;在凸性等理想条件下,这个下界恰好够到真实答案。SVM、资源调度、广告预算分配里,处处都有它的身影。

岗位关联

一句话职业价值:拉格朗日对偶是理解 SVM、设计对偶优化算法、求解带约束训练目标的必备思想。掌握了它,你就建立了“规则不好解,就把它变成价格”的专业直觉。

目录
  1. 可视化演示
  2. 约束优化困境
  3. 拉格朗日函数
  4. 对偶函数定义
  5. 对偶问题构造
  6. 弱对偶定理
  7. 强对偶条件
  8. 实际应用价值
  9. AI 应用场景
  10. Python 演示
  11. 常见误区
  12. 面试题

可视化演示

动态展示拉格朗日对偶理论:原问题约束优化转换为对偶无约束问题,对偶函数给出原问题下界,切换弱对偶/强对偶查看对偶间隙变化和KKT条件作用。

本节配有交互动效(进入视口后自动加载,约 3KB)。

弱对偶性与对偶间隙 对偶问题最优值d*始终≤原问题最优值p*,差值为对偶间隙 非凸问题或约束不满足Slater条件时存在正的对偶间隙 d* ≤ p*, gap = p* - d* 弱对偶:d*≤p*有间隙

约束优化困境

班主任站在讲台前,面前摆着十几份春游策划书:方案 A 去植物园,省钱但往返要挤一辆大巴;方案 B 去科技馆,活动丰富但预算超标;方案 C 折中,车位却空出两个……每份方案都在“不超预算”和“座位正好 45 个”这两条班规之间摇摆,想挑一份全都满意的,越挑越头疼。

这种“在硬性班规下找最优”的问题,数学上叫约束优化。我们用 f0(x) 描述方案 x 的折腾指数,把班规写成约束:花费减预算 f1(x) ≤ 0 是不等式约束,人数减座位 h1(x) = 0 是等式约束。所有同时满足约束的方案 x 构成可行域——就像只有落在“规则围栏”内的方案才允许被翻牌。

直接求解的难处在于:可行域常被约束切割得七拐八拐,最优解往往卡在边界上,约束一多,平日里顺手的“沿着梯度往下走”的无约束工具全部失效。标准形式写出来是这样:

班主任隐隐觉得,与其在迷宫里硬闯,不如把班规本身变成可以讨价还价的东西——给每条规则贴上“价格标签”。这正是下一节拉格朗日函数的起点。

min⁡xf0(x)s.t.fi(x)≤0,i=1,…,mhj(x)=0,j=1,…,p\begin{aligned}\min_{x} \quad & f_0(x) \\\text{s.t.} \quad & f_i(x) \le 0, \quad i=1,\dots,m \\& h_j(x) = 0, \quad j=1,\dots,p\end{aligned}
标准形式是约束优化问题的“普通话”:第一行说要找一个方案让目标最小,下面两行列出所有硬性要求。
  1. 目标函数f0(x) 是要最小化的折腾指数,x 是待选方案,x 的每个分量代表一项安排。
    f0(x)f_0(x)
  2. 不等式约束fi(x) ≤ 0 表示“花费 − 预算 ≤ 0”这类不能超过的硬杠子,共 m 条。
    fi(x)≤0,i=1,…,mf_i(x) \le 0, \quad i=1,\dots,m
  3. 等式约束hj(x) = 0 表示“人数 − 座位 = 0”这类必须精确匹配的要求,共 p 条。
    hj(x)=0,j=1,…,ph_j(x) = 0, \quad j=1,\dots,p
  4. 可行域定义同时满足所有约束的 x 才被允许,最优解必须躺在可行域里。
    D={x∣fi(x)≤0, hj(x)=0}\mathcal{D} = \{x \mid f_i(x) \le 0,\ h_j(x) = 0\}

拉格朗日函数

班主任灵机一动,把班规改写成“违规定价”:每超预算 1 元,综合折腾指数加 λ₁ 分;每空一个座位或超载一个座位,加 ν₁ 分。规则从“硬性红线”变成了“软性价格”,学生们只要计算综合分,谁低选谁,再也不用绕迷宫。这个“综合折腾指数”就是拉格朗日函数。

形式化地说,拉格朗日函数把原目标 f0(x) 和所有约束放进同一个“计价体系”:

其中 λi 和 νj 就是拉格朗日乘子(也叫对偶变量),它们是给每条班规定的“单价”。为什么不等式约束的单价必须 λi ≥ 0?理由很朴素:fi(x) ≤ 0 意味着“没超预算”,这本身是好事;如果 λi 为负,等于给超支发奖金,罚款逻辑彻底颠倒,后面“地板不破天花板”的性质也会崩溃。而等式约束要求恰好等于 0,偏差可正可负(多了要回购、少了要补贴),所以 νj 可以取任意实数。

罚单发下去容易,但班主任心里还有一盘大棋:单价定多少才不冤枉?定低了约束形同虚设,定高了学生干脆不参加活动。这个“定价是否合理”的问题,逼着我们把目光从选方案的人,转向定价格的人。

L(x,λ,ν)=f0(x)+∑i=1mλifi(x)+∑j=1pνjhj(x)L(x,\lambda,\nu) = f_0(x) + \sum_{i=1}^{m} \lambda_i f_i(x) + \sum_{j=1}^{p} \nu_j h_j(x)
拉格朗日函数就是在说:别管规则本身了,把每条规则折成一个带符号的“违规账单”,加上原始目标,就是方案的最终得分。
  1. 原目标保留第一项 f0(x) 是原来的折腾指数,一个字都没改。
    f0(x)f_0(x)
  2. 不等式折罚把每条不等式 fi(x) 乘以单价 λi 加进来:超支越多,罚分越多。
    ∑i=1mλifi(x)\sum_{i=1}^{m} \lambda_i f_i(x)
  3. 乘子非负单价 λi 必须 ≥ 0,“罚款倒贴”会让下界性质崩溃。
    λi≥0,i=1,…,m\lambda_i \ge 0, \quad i=1,\dots,m
  4. 等式折罚座位偏差 hj(x) 乘以可正可负的单价 νj,坐不满补贴、超载罚款。
    ∑j=1pνjhj(x)\sum_{j=1}^{p} \nu_j h_j(x)

对偶函数定义

假设班主任先随便开出一套价格 (λ, ν)。学生们精得很,立刻在所有方案里挑综合折腾指数最低的那个来响应。这个“全班能做到的最低综合分”,就是给定价格下的一层地板——无论最后选哪个方案,综合分都不会比它更低。

这层地板在数学上叫对偶函数 g(λ, ν),定义是对 x 求拉格朗日函数的无约束最小值:

其中 x̃ 是任意一个可行方案。对偶函数有两个金子般的性质。第一,只要 λ ⪰ 0(每个分量非负),g(λ,ν) 永远不超过原问题最优值 p*:因为对可行方案,罚分项非正、等式项为零,所以 L(x̃) ≤ f0(x̃),再对所有方案取最小,地板自然不会高过真实最优。第二,g 是关于 (λ,ν) 的凹函数——哪怕原问题非凸,对偶函数也一定是凹的,这为后面“对偶问题好解”埋下了伏笔。

地板有了,但地板越低越没用。班主任现在的问题变成:怎样调价,才能把这层地板抬得越来越高?这就引出了对偶问题。

g(λ,ν)=inf⁡x L(x,λ,ν) ≤ L(x~,λ,ν) ≤ f0(x~)g(\lambda,\nu) = \inf_{x}\, L(x,\lambda,\nu) \ \le\ L(\tilde{x},\lambda,\nu) \ \le\ f_0(\tilde{x})
对偶函数就是一个“给定价格下的最低综合分”,它永远够不到真实最优的头顶,只配当地板。
  1. 无约束最小化对偶函数先对方案 x 取“最佳反应”,这是一个无约束优化,不用管 x 可不可行。
    inf⁡x L(x,λ,ν)\inf_{x}\, L(x,\lambda,\nu)
  2. 可行点不被破下限任取可行方案 x̃,不等式罚分非正、等式罚分为零,整体不超过 f0(x̃)。
    ∑i=1mλifi(x~)+∑j=1pνjhj(x~)≤0\sum_{i=1}^{m}\lambda_i f_i(\tilde{x}) + \sum_{j=1}^{p}\nu_j h_j(\tilde{x}) \le 0
  3. 下确界只会更低所有方案综合分的下确界,自然不超过任何一个可行方案的值。
    g(λ,ν)≤L(x~,λ,ν)g(\lambda,\nu) \le L(\tilde{x},\lambda,\nu)
  4. 累成全局下界把 x̃ 换成原问题的最优解,就得到 g(λ,ν) ≤ p*。
    g(λ,ν)≤p⋆g(\lambda,\nu) \le p^{\star}

对偶问题构造

班主任换了个新身份:不再是“选方案的人”,而是“定价格的人”。他的目标只有一个——让地板尽量高。地板越高,离学生们的真实最小折腾指数越近,这套价格就越“懂行”。

于是对偶问题诞生了:在 λ ⪰ 0(不等式乘子非负)、ν 任意的对偶可行域里,最大化对偶函数 g(λ,ν):

对偶问题有个让人惊喜的特点:它永远是凸优化问题,无论原问题多“刺头”。最大化凹函数 g 等价于最小化凸函数 −g,而对偶可行域只是简单的“分量非负”半空间,没有原问题那些复杂耦合的约束。这就是“对偶问题往往更简单”的技术根源——就像班主任发现,与其在班规迷宫里绕,不如直接翻开价格表讨价还价。

班主任兴致勃勃地调起价来,可调了半天发现一个残酷的事实:无论怎么调,地板似乎总是差天花板那么一小截。这个“差一截”的现象,就是下一节的弱对偶。

d⋆=max⁡λ⪰0, νg(λ,ν)d^{\star} = \max_{\lambda \succeq 0,\ \nu} g(\lambda,\nu)
对偶问题就是“把地板抬到最高”的定价问题,它的最优值记作 d*,叫对偶最优值。
  1. 对偶可行域不等式乘子 λ 的每个分量必须非负,等式乘子 ν 不受限制。
    λ⪰0, ν∈Rp\lambda \succeq 0,\ \nu \in \mathbb{R}^{p}
  2. 最大化下界对偶问题在所有“不违法”的定价方案里,挑地板最高的那套。
    max⁡λ⪰0, νg(λ,ν)\max_{\lambda \succeq 0,\ \nu} g(\lambda,\nu)
  3. 对偶最优值记最高地板的高度为 d*,它就是整个对偶问题的答案。
    d⋆=max⁡λ⪰0, νg(λ,ν)d^{\star} = \max_{\lambda \succeq 0,\ \nu} g(\lambda,\nu)

弱对偶定理

班主任画了一张图:横轴是各种定价方案,纵轴是地板高度。每套定价算出的 g(λ,ν) 都趴在天花板下面,没有一块能顶穿天花板——天花板就是原问题最优 p*。

这就是弱对偶定理:d* ≤ p* 对任何优化问题都成立,不需要凸性、不需要任何好运气。两者之差 p* − d* 叫对偶间隙,它永远非负:

弱对偶看着“弱”,用处却很大。它给原问题提供一个永远可靠的分数下界:算法迭代到一半,可以用当前对偶解给最优值把把脉,判断离最优还有多远;近似解质量评估、提前停止规则,背后站的都是它。就像班主任每出一套价格,都能立刻知道“真实最优至少不比这层地板低”,心里顿时有了底。

但班主任还不满足:有没有可能地板真的顶到天花板?当然有,条件苛刻但方向上很自然——得是“讲道理的班级”,还得有“不违规的候选方案”。这就是强对偶。

d⋆≤p⋆,p⋆−d⋆≥0d^{\star} \le p^{\star}, \qquad p^{\star} - d^{\star} \ge 0
弱对偶说:想靠定价摸到真实最优的头顶?最多只能摸到它的脚底板下方——但至少这个下限永远可信。
  1. 逐点成立对任何合法的定价方案,地板都不可能超过真实最优。
    g(λ,ν)≤p⋆,∀ λ⪰0, νg(\lambda,\nu) \le p^{\star}, \quad \forall\ \lambda \succeq 0,\ \nu
  2. 最大值不越界对左边取最大值,不等式方向不变。
    max⁡λ⪰0, νg(λ,ν)≤p⋆\max_{\lambda \succeq 0,\ \nu} g(\lambda,\nu) \le p^{\star}
  3. 间隙非负p* − d* ≥ 0,间隙越大说明这套价格体系越粗糙。
    p⋆−d⋆≥0p^{\star} - d^{\star} \ge 0

强对偶条件

什么样的班级价格体系能“完美”?班主任总结经验:首先班级要理性——折腾指数和班规都必须是凸的(凸优化问题),这样局部最优才等于全局最优;其次要有一个“严格不违规”的备选方案:预算有余量、座位能微调,这就是 Slater 条件。

正式地说:对凸优化问题,若存在严格可行点使所有不等式约束 fi(x) < 0 严格成立、等式约束照常满足,则强对偶成立——地板正好贴住天花板:

强对偶不只是好看。它保证“解对偶、回原解”这条路可行:由 KKT 条件(平稳性、原对偶可行、互补松弛),可以从最优乘子 λ 反推出原问题最优 x。互补松弛 λi fi(x*) = 0 的直觉是:单价为正的班规一定被顶到边界——该省的钱一分没省下;而留有余量的班规则不值得定价,对应乘子为 0。

班主任终于明白:只有当班级够“凸”、又存在不违规的备用方案时,那层地板才能正好贴住天花板。而现实中,SVM 这类精心设计的问题恰好满足条件——于是整套定价哲学被搬进了算法工具箱。

d⋆=p⋆d^{\star} = p^{\star}
强对偶说:当班级够“凸”、又存在可余地的方案时,那层地板能正好顶住天花板。这是“定价—响应”达到完美均衡的时刻。
  1. 凸性前提f0、fi 都是凸函数,hj 是仿射函数,局部最优即是全局最优。
    f0, fi 凸, hj 仿射f_0,\ f_i\ \text{凸},\ h_j\ \text{仿射}
  2. Slater 条件存在一个方案让所有不等式约束都“留有余地”地被满足。
    ∃ x∈D: fi(x)<0,i=1,…,m\exists\, x \in \mathcal{D}:\ f_i(x) < 0, \quad i=1,\dots,m
  3. 间隙为零上述条件成立时,对偶最优值等于原问题最优值。
    p⋆−d⋆=0p^{\star} - d^{\star} = 0

实际应用价值

这套“定价—响应—调价”的机制,后来成了 AI 工程师的日常工具。最经典的一幕发生在支持向量机:最大化分类间隔的带约束问题,写成拉格朗日对偶后,目标里只剩下样本之间的内积,核技巧顺势登场,线性不可分的数据在高维空间被轻松分开。

更一般地,对偶上升算法把难题拆成两步交替:固定当前价格,求原变量的最优反应;再根据违规程度更新价格,并投影回非负区域。ADMM 等分布式算法都是在这个骨架上加了鲁棒性补丁。在资源受限的决策里,对偶乘子还化身“影子价格”:广告预算约束下的出价、云资源的容量规划,都用乘子表达“多一角钱预算带来的边际价值”。

回到春游故事:班主任最终不再亲自在班规迷宫里硬闯,而是把规则变成价格,让学生自己找最优,再根据实际执行情况微调单价。约束不再是绊脚石,而成了可以对话的对象——这就是拉格朗日对偶教给我们的思维转换:约束变无约束,规则变价格。

xk+1=arg min⁡x L(x,λk),λk+1=max⁡(λk+αf(xk+1), 0)x_{k+1} = \operatorname*{arg\,min}_{x}\, L(x,\lambda_k), \qquad \lambda_{k+1} = \max\bigl(\lambda_k + \alpha f(x_{k+1}),\ 0\bigr)
对偶上升就是“学生先按当前价格选最优方案,班主任再根据违规情况调价”的循环,直到价格稳定。
  1. 原变量更新对当前单价 λk,求综合折腾指数最小的方案,这是学生的“最佳反应”。
    xk+1=arg min⁡x L(x,λk)x_{k+1} = \operatorname*{arg\,min}_{x}\, L(x,\lambda_k)
  2. 乘子更新如果方案仍超支(f > 0),就涨价;如果留有余地(f < 0),就降价。
    λk+1=λk+αf(xk+1)\lambda_{k+1} = \lambda_k + \alpha f(x_{k+1})
  3. 投影回非负单价不能为负,所以用 max(·, 0) 把更新后的价格按回非负区域。
    λk+1=max⁡(λk+1, 0)\lambda_{k+1} = \max\bigl(\lambda_{k+1},\ 0\bigr)

AI 应用场景

SVM 支持向量机的对偶化

阶段:模型设计与训练

解决的问题:直接求解“最大化间隔”的带约束二次规划,要同时应付一堆不等式约束,既慢又难引入非线性。转成拉格朗日对偶后,约束被乘子吸收,目标只剩样本内积,配合 SMO 算法可以逐对更新乘子,核函数也顺理成章登场。

具体案例:在 MNIST 手写数字分类中,把 SVM 原问题写成拉格朗日对偶,将线性核替换成 RBF 核,原本线性分不开的数字对在高维特征空间中被轻松分开,训练时间从小时级降到分钟级。

分布式对偶上升训练

阶段:大规模训练优化

解决的问题:传统做法把所有数据集中到一台机器再优化,通信成本和隐私风险都是瓶颈。对偶视角把全局问题拆成“各节点选局部方案 + 服务器统一调价格”两步,每轮只传乘子不传原始数据。

具体案例:联邦学习场景里,各手机端用本地数据做一次局部 argmin 更新,云端汇总偏差后更新 λ 再广播,迭代几十轮后全局模型收敛,原始数据始终不出端。

广告预算约束下的出价优化

阶段:在线决策与约束优化

解决的问题:广告主每天有预算硬约束,直接贪心出价容易前半段花光、后半段没量。把“总花费 ≤ 预算”写成不等式约束并构造对偶,乘子就是每次曝光的影子价格,出价策略按影子价格动态调整,实现接近全局最优的分配。

具体案例:DSP 广告系统的自适应出价模块,用对偶上升实时更新预算单价,高峰期自动压价、低谷期加大投放,整体点击量提升约 15%。

Python 演示

python39 行
import numpy as np def f0(x):    """目标函数:春游方案的折腾指数"""    return (x - 0.8) ** 2 def f_ineq(x):    """不等式约束:x 必须 <= 0.45,即 f(x) = x - 0.45 <= 0"""    return x - 0.45 def lagrangian(x, lam):    """拉格朗日函数:目标 + 单价 * 违规量"""    return f0(x) + lam * f_ineq(x) def best_response(lam):    """对偶函数里的 argmin:学生对当前罚单的最优反应"""    return 0.8 - lam / 2.0 def dual_value(lam):    """对偶函数 g(lam) = min_x L(x, lam)"""    return lagrangian(best_response(lam), lam) if __name__ == "__main__":    p_star = f0(0.45)    print("原问题最优值 p* =", p_star)     for lam in [0.0, 0.3, 0.7, 1.0, 1.5]:        g = dual_value(lam)        print("lambda =", lam, " g =", round(g, 4))        assert g <= p_star + 1e-9     lam = 0.0    for _ in range(100):        x = best_response(lam)        lam = max(lam + 0.35 * (x - 0.45), 0.0)     x = best_response(lam)    print("对偶上升: lambda* =", round(lam, 4), " x* =", round(x, 4))    print("p* =", p_star, " 恢复误差 =", abs(x - 0.45))
目的:用一个一维约束优化问题完整演示“拉格朗日函数 → 对偶函数 → 对偶上升”的全流程,并验证弱对偶永远成立。
  1. def lagrangian(x, lam)把目标与罚分合成综合指数,这是拉格朗日函数的直接实现。
  2. return 0.8 - lam / 2.0对二次函数求导等于零得到的解析最优反应,即“学生对价格的回应”。
  3. assert g <= p_star + 1e-9逐点验证弱对偶:任何价格下地板都不超过真实最优。
  4. lam + 0.35 * (x - 0.45)超支(x > 0.45)就涨价、富余就降价,这是对偶上升的价格更新。
  5. max(..., 0.0)把乘子投影回非负区域,保证单价永远不是负数。

常见误区

误区我总觉得 λ 跟罚函数里的惩罚系数一样,越大越能把约束压得严,所以无限加大 λ 就能让解更接近真实最优。

正解λ 是“价格”而非“力度”。对偶函数 g 是凹函数,λ 太大时学生被罚得太狠,反而选择退缩到极端方案,g 跟着下降。真正把“惩罚力度推向无穷”的是罚函数法;拉格朗日对偶要的是找到那个恰到好处的平衡单价,由互补松弛决定——约束没被卡死时 λ = 0,约束被顶到边界时 λ> 0 才可能起作用。

为何常见:初学者常把 λ 类比成罚函数的大惩罚系数,两者的机制完全不同,且对偶函数在 λ 过大时下降的方向很容易被忽略。

误区既然对偶把约束吸收得这么干净,那对偶最优值应该永远等于原问题最优值吧?

正解弱对偶 d* ≤ p* 无条件成立,但强对偶 d* = p* 需要原问题为凸且满足 Slater 条件。非凸问题或可行域没有内部点时,对偶间隙 p* − d* 可能大于 0,对偶只能给出一个偏保守的下界——就像地板没顶到天花板,中间还空着一段。

为何常见:教程里最常推演的是凸的 SVM 场景,强对偶顺手成立,容易让人误以为“对偶等于原问题”放之四海皆准。

误区对偶函数定义里不是对 x 取最小值了吗?那这个 x 应该就是原问题的最优解,直接取出来用就行。

正解对偶函数里的 x 只是“给定价格下学生的个人最佳反应”,通常根本不在可行域内——它可能超预算,也可能座位对不上。只有当强对偶成立,并借助 KKT 条件(平稳性、互补松弛、可行性)才能从 λ 恢复出真正的原问题最优 x。

为何常见:只盯着 g(λ) = min L(x,λ) 的符号,容易把“里面那个使 L 最小的 x”误当成全局最优,忽略了它不具备可行性的可能。

误区对偶问题是凸优化,所以对偶函数 g 一定是凸函数,求最大化应该用凸优化的直觉。

正解g 是凹函数。它是一族关于 (λ,ν) 的仿射函数的逐点下确界,下确界操作保持凹性。“对偶问题是凸优化”说的是 −g 是凸函数,最大化凹函数等价于最小化凸函数,这两个结论各归其位,不能混为一谈。

为何常见:把“对偶问题是凸优化”这个结论记在了 g 的凹凸性上,张冠李戴;仿射函数逐点下确界取凹的直觉需要反复练才能形成。

面试题

Q1. 拉格朗日函数中,与不等式约束 fi(x) ≤ 0 对应的乘子 λi 必须满足什么?

单选题 · easy

  • A.λi ≥ 0← 正确答案
  • B.λi ≤ 0
  • C.λi 任意实数
  • D.λi 必须大于 1

答案:A。想象罚单单价不能是负数:如果 λ < 0,超支反而被奖励,“地板不破天花板”的下界性质立刻崩坏,对偶就不再是地板了。只有 λ ≥ 0 才能保证“违规一定扣分、守规不加分”的定价逻辑成立。

Q2. 对偶函数 g(λ,ν) 的定义是?

单选题 · easy

  • A.对 x 求最小化的拉格朗日值← 正确答案
  • B.对 x 求最大化的拉格朗日值
  • C.对 λ 求最小化的拉格朗日值
  • D.对 ν 求最大化的拉格朗日值

答案:A。对偶函数是“固定价格后,对方案取最小综合分”,也就是对 x 求拉格朗日值的最小化。选最大化的选项混淆了对偶问题(对 λ、ν 最大化),而对 λ 或 ν 单独取极值更不是对偶函数的定义。

Q3. 弱对偶定理 d* ≤ p* 的成立范围是?

单选题 · mid

  • A.一切优化问题均成立← 正确答案
  • B.仅凸优化问题成立
  • C.仅满足 Slater 条件时成立
  • D.仅线性规划问题成立

答案:A。弱对偶来自“可行方案的罚分项非正”这一个朴素事实,与凸性、Slater 完全无关。它不需要任何前提;B、C 其实是强对偶的额外条件,D 则把适用范围收窄成了线性规划。

Q4. 对偶函数 g(λ,ν) 的凹凸性是?

单选题 · mid

  • A.一定是凹函数← 正确答案
  • B.一定是凸函数
  • C.凹凸取决于原目标
  • D.既非凸也非凹

答案:A。g 是一族仿射函数的逐点下确界,下确界操作保持凹性,所以 g 一定是凹函数。“对偶问题是凸优化”说的是 −g 是凸的,而 g 本身是凹的——两个结论各归其位。

Q5. 下列哪种情况能保证强对偶成立?

单选题 · mid

  • A.原问题为凸且满足 Slater 条件← 正确答案
  • B.原问题为非凸但有严格可行点
  • C.原问题为凸但没有可行点
  • D.对偶问题的值无界时

答案:A。凸性保证局部等于全局,Slater 保证可行域有“内部”,两者合起来才有强对偶。非凸问题哪怕有可行点也难保强对偶;凸但没有可行点则连 p* 都不存在,谈不上相等。

Q6. 原问题为 min(x² − 2x) 且约束 x ≤ 1,则其对偶函数 g(λ)(λ ≥ 0)为?

单选题 · extreme

  • A.−λ²/4 − 1← 正确答案
  • B.λ²/4 − 1
  • C.−λ²/4 + 1
  • D.λ²/4 + 1

答案:A。拉格朗日函数 L = x² − 2x + λ(x − 1),对 x 求导得 2x − 2 + λ = 0,即 x = 1 − λ/2;代入并整理得 g(λ) = −λ²/4 − 1。选 B 是把二次项符号记错,C、D 则混淆了常数项的正负。

Q7. SVM 原问题转对偶后,目标中只出现样本内积 ⟨xᵢ, xⱼ⟩,这样做最大的好处是?

单选题 · hard

  • A.可以引入核函数处理非线性分类← 正确答案
  • B.可以完全省略训练样本存储
  • C.可以保证对所有问题都强对偶
  • D.可以直接用梯度下降求解

答案:A。对偶目标只剩内积,于是任何满足正定性的核函数都能替换内积,实现隐式升维——这是核技巧的关键前提。它不会减少样本存储,也不能凭空保证强对偶,更不是梯度下降的替代方案。

Q8. 关于对偶问题,下列说法正确的是?

多选题 · mid

  • A.对偶问题是最大化对偶函数 g(λ,ν)← 正确答案
  • B.不等式乘子 λ 必须满足 λ ≥ 0← 正确答案
  • C.对偶函数 g 一定是凹函数← 正确答案
  • D.对偶值是原问题的最优值

答案:ABC。对偶问题是最大化 g,约束为 λ ≥ 0,且 g 一定是凹函数,三者都对。D 错在把弱对偶的 d* ≤ p* 说成了必然相等——只有强对偶(凸 + Slater)时等号才成立。

Q9. 什么情况下强对偶(d* = p*)可能不成立?

多选题 · hard

  • A.原问题是非凸优化问题← 正确答案
  • B.Slater 条件不满足的凸问题← 正确答案
  • C.可行域没有内点的凸问题← 正确答案
  • D.变量维数大于一百的问题

答案:ABC。强对偶需要“凸 + Slater”。非凸、Slater 不满足、可行域无内点都会让对偶间隙可能为正。变量维数高低与强对偶无关,所以 D 不成立。

Q10. 拉格朗日对偶在实际 AI 工作中的应用包括?

多选题 · easy

  • A.SVM 推导并引入核函数← 正确答案
  • B.对偶上升与 ADMM 优化← 正确答案
  • C.广告预算约束下的出价← 正确答案
  • D.初始化神经网络的参数

答案:ABC。SVM 对偶、对偶上升与 ADMM、广告预算约束定价都是拉格朗日对偶的直接应用。神经网络参数初始化是独立话题,与对偶无关,所以 D 不选。