近似梯度法在非光滑优化中的应用基础题
字数 1033 2025-10-29 11:32:03
近似梯度法在非光滑优化中的应用基础题
题目描述
考虑非光滑优化问题:min f(x) = |x₁ - 1| + |x₂ - 2| + (x₁ + x₂ - 3)²,其中x = (x₁, x₂) ∈ ℝ²。目标函数包含不可微的绝对值项和可微的二次项。由于绝对值函数在转折点不可微,传统梯度法不适用。请使用近似梯度法求解该问题,初始点设为(0,0),容忍误差ε=1e-4。
解题过程
-
问题分析
目标函数f(x)由非光滑部分g(x)=|x₁-1|+|x₂-2|和光滑部分h(x)=(x₁+x₂-3)²组成。在点(1,2)处,绝对值函数不可微,需用次梯度或近似梯度处理。近似梯度法的核心是在不可微点附近用可微函数逼近原函数,从而计算梯度。 -
光滑近似构造
将绝对值函数|u|用可微函数φ(u) = √(u² + μ)近似,其中μ>0为小常数(如μ=1e-3)。此时近似函数为:
f_μ(x) = √((x₁-1)² + μ) + √((x₂-2)² + μ) + (x₁ + x₂ - 3)²
当μ→0时,f_μ(x)一致收敛于f(x)。 -
近似梯度计算
计算f_μ(x)的梯度:- ∂f_μ/∂x₁ = (x₁-1)/√((x₁-1)² + μ) + 2(x₁+x₂-3)
- ∂f_μ/∂x₂ = (x₂-2)/√((x₂-2)² + μ) + 2(x₁+x₂-3)
当x₁≠1且x₂≠2时,梯度与经典梯度一致;在不可微点附近,分母中的μ避免梯度爆炸。
-
梯度下降迭代
设学习率α=0.1,迭代格式:
x^(k+1) = x^(k) - α∇f_μ(x^(k))
从x⁰=(0,0)开始:- 第1步:计算梯度∇f_μ(0,0)=[-1/√(1+μ) -6, -2/√(4+μ) -6]≈[-1.0005,-6.0005]
更新x¹=(0,0)-0.1*(-1.0005,-6.0005)=(0.10005, 0.60005) - 第2步:计算x¹处梯度,继续迭代直至梯度范数‖∇f_μ(x)‖<ε。
- 第1步:计算梯度∇f_μ(0,0)=[-1/√(1+μ) -6, -2/√(4+μ) -6]≈[-1.0005,-6.0005]
-
收敛性判断
经过k次迭代后,当‖∇f_μ(x^(k))‖<1e-4时停止。最终解接近理论最优解(1,2),此时f(x)=0。由于近似函数的光滑性,算法稳定收敛。
关键点
- μ平衡近似精度和数值稳定性:μ过大会引入误差,过小会导致梯度计算不稳定。
- 本例通过光滑化处理将非光滑问题转化为可应用梯度法的形式,体现了近似梯度法在处理非光滑优化中的通用性。