知识点卡片:拉格朗日乘子与约束优化
基本信息
| 属性 | 内容 |
|---|---|
| 知识点 | 拉格朗日乘子法 / 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条件是约束优化问题最优解的必要条件:
- 梯度条件:拉格朗日函数对x的梯度为0
- 原始可行性:满足原始约束
- 对偶可行性:不等式约束的乘子≥0
- 互补松弛:λ_i g_i(x) = 0(要么约束活跃,要么乘子为零)
Q2: SVM中的对偶问题为什么重要?
答:
- 引入核技巧:对偶形式只涉及内积 x_i^T x_j,可替换为 K(x_i, x_j)
- 支持向量的稀疏性:互补松弛条件保证只有支持向量的α_i > 0
- 计算效率:对偶变量数=样本数,而原始变量数=特征数(高维时优势明显)