近似点梯度法(Proximal Gradient Method)基础题
字数 1478 2025-11-09 00:09:52
近似点梯度法(Proximal Gradient Method)基础题
题目描述
考虑非光滑优化问题:
minimize f(x) = g(x) + h(x),
其中 g(x) = (x₁ - 2)² + (x₂ - 1)² 是光滑函数,h(x) = 2|x₁| + 3|x₂| 是非光滑的L1正则项。目标是通过近似点梯度法找到使 f(x) 最小的 x。
解题过程
-
问题分析
- 目标函数 f(x) 由光滑部分 g(x) 和非光滑部分 h(x) 组成。
- g(x) 是二次函数,其梯度 ∇g(x) = [2(x₁ - 2), 2(x₂ - 1)]。
- h(x) 是L1范数,导致函数在 x₁=0 和 x₂=0 处不可导。
- 近似点梯度法通过交替进行梯度下降和近似点映射处理非光滑性。
-
算法框架
迭代公式为:
xᵏ⁺¹ = prox_{αh}(xᵏ - α∇g(xᵏ)),
其中 α 是步长,prox_{αh}(v) 是 h(x) 的近似点算子,定义为:
prox_{αh}(v) = argminₓ { h(x) + 1/(2α) ||x - v||² }。 -
计算近似点算子
- 由于 h(x) = 2|x₁| + 3|x₂| 可分离,prox_{αh}(v) 可对每个分量独立计算:
prox_{αh}(v) = [prox_{α·2|·|}(v₁), prox_{α·3|·|}(v₂)]。 - 对于一般形式 prox_{αλ|·|}(vᵢ),其闭式解为软阈值函数:
prox_{αλ|·|}(vᵢ) = sign(vᵢ) · max{ |vᵢ| - αλ, 0 }。 - 代入参数 λ₁=2, λ₂=3,得到:
prox_{αh}(v) = [sign(v₁)·max{|v₁| - 2α, 0}, sign(v₂)·max{|v₂| - 3α, 0}]。
- 由于 h(x) = 2|x₁| + 3|x₂| 可分离,prox_{αh}(v) 可对每个分量独立计算:
-
选择步长 α
- g(x) 的梯度是 Lipschitz 连续的,常数 L = 2(因为 ∇g 的 Hessian 矩阵是 2I)。
- 为保证收敛,需满足 α ∈ (0, 1/L] = (0, 0.5]。这里取 α = 0.5。
-
迭代步骤示例(从初始点 x⁰ = [0, 0])
- 迭代1:
- 计算梯度:∇g(x⁰) = [2(0-2), 2(0-1)] = [-4, -2]。
- 梯度步:x⁰ - α∇g(x⁰) = [0, 0] - 0.5·[-4, -2] = [2, 1]。
- 近似点映射:
v₁ = 2 → prox_{1.0|·|}(2) = sign(2)·max{|2| - 1, 0} = 1,
v₂ = 1 → prox_{1.5|·|}(1) = sign(1)·max{|1| - 1.5, 0} = 0。 - 更新:x¹ = [1, 0]。
- 迭代2:
- ∇g(x¹) = [2(1-2), 2(0-1)] = [-2, -2]。
- 梯度步:[1, 0] - 0.5·[-2, -2] = [2, 1]。
- 近似点映射结果与迭代1相同,x² = [1, 0]。
- 此时 x² = x¹,算法已收敛。
- 迭代1:
-
结果分析
- 最终解 x* = [1, 0],f(x*) = (1-2)² + (0-1)² + 2|1| + 3|0| = 1 + 1 + 2 = 4。
- 由于L1正则项的稀疏性,解的第二分量被压缩到0,体现了特征选择效果。
关键思想:近似点梯度法通过将梯度下降与近似点映射结合,高效处理非光滑优化,特别适用于L1正则化问题。