Skip to content

知识点卡片:拉格朗日乘子与约束优化

基本信息

属性内容
知识点拉格朗日乘子法 / KKT条件
掌握程度★★★☆☆
学习优先级P2
预估时间4小时
面试频率★★☆☆☆

核心原理

拉格朗日乘子法

解决等式约束优化问题:

min f(x)  s.t.  g(x) = 0

拉格朗日函数:
L(x, λ) = f(x) + λ g(x)

最优条件:
∂L/∂x = 0  (∇f + λ∇g = 0)
∂L/∂λ = 0  (g(x) = 0)

KKT条件(不等式约束)

min f(x)  s.t.  g_i(x) ≤ 0,  h_j(x) = 0

KKT条件:
1. ∇f + Σ λ_i ∇g_i + Σ μ_j ∇h_j = 0  (梯度条件)
2. g_i(x) ≤ 0, h_j(x) = 0             (约束条件)
3. λ_i ≥ 0                             (不等式乘子非负)
4. λ_i g_i(x) = 0                      (互补松弛条件)

在深度学习中的应用

1. SVM的对偶问题

python
"""
原始问题(硬间隔SVM):
min ½‖w‖²  s.t.  y_i(w^T x_i + b) ≥ 1

拉格朗日函数:
L(w, b, α) = ½‖w‖² - Σ α_i (y_i(w^T x_i + b) - 1)

求导并代入得对偶问题:
max Σ α_i - ½ Σ Σ α_i α_j y_i y_j (x_i^T x_j)
s.t. α_i ≥ 0, Σ α_i y_i = 0

这引入了核函数 K(x_i, x_j) = x_i^T x_j!
"""

2. PCA的约束优化视角

python
"""
PCA: max w^T Σ w  s.t. w^T w = 1

拉格朗日函数:
L(w, λ) = w^T Σ w - λ(w^T w - 1)

∂L/∂w = 2Σw - 2λw = 0
→ Σw = λw

结论:w是协方差矩阵Σ的特征向量!
"""

3. 对比学习中的约束

python
"""
SimCLR / InfoNCE中有隐含的归一化约束:
‖z_i‖ = 1(特征归一化到单位球面)

这可以看作在球面约束上的优化问题
"""

面试高频问题

Q1: KKT条件是什么?

: KKT条件是约束优化问题最优解的必要条件:

  1. 梯度条件:拉格朗日函数对x的梯度为0
  2. 原始可行性:满足原始约束
  3. 对偶可行性:不等式约束的乘子≥0
  4. 互补松弛:λ_i g_i(x) = 0(要么约束活跃,要么乘子为零)

Q2: SVM中的对偶问题为什么重要?

  1. 引入核技巧:对偶形式只涉及内积 x_i^T x_j,可替换为 K(x_i, x_j)
  2. 支持向量的稀疏性:互补松弛条件保证只有支持向量的α_i > 0
  3. 计算效率:对偶变量数=样本数,而原始变量数=特征数(高维时优势明显)

相关知识点

  • SVM - 对偶问题应用
  • PCA - 约束优化视角
  • 梯度下降 - 无约束优化