非线性规划中的外推加速梯度法基础题
字数 1819 2025-11-10 15:56:16
非线性规划中的外推加速梯度法基础题
题目描述:
考虑非线性规划问题:min f(x) = (x₁ - 2)⁴ + (x₁ - 2x₂)²,其中 x ∈ ℝ²。使用外推加速梯度法(如Nesterov加速梯度法)求解该无约束优化问题,初始点设为 x⁰ = [0.0, 3.0],最大迭代次数为100,梯度容忍度为1e-6。
解题过程:
-
算法原理介绍
- 外推加速梯度法是对标准梯度下降法的改进,通过引入动量项(外推步骤)加快收敛速度
- 核心思想:在梯度下降方向上进行"智能"的动量加速,减少目标函数值振荡
- 基本步骤:每次迭代包含梯度计算、外推点更新和迭代点更新三个核心操作
-
算法参数设置
- 初始点:y⁰ = x⁰ = [0.0, 3.0](外推点与迭代点初始相同)
- 初始动量参数:t₀ = 1
- 步长选择:采用固定步长α = 0.1(通过初步试验确定该步长可保证收敛)
- 停止准则:‖∇f(xᵏ)‖₂ < 1e-6 或达到最大迭代次数
-
梯度计算
- ∇f(x) = [4(x₁ - 2)³ + 2(x₁ - 2x₂), -4(x₁ - 2x₂)]
- 在初始点x⁰ = [0.0, 3.0]处:
- ∇f(x⁰) = [4(0-2)³ + 2(0-6), -4(0-6)] = [4×(-8) + 2×(-6), 24] = [-32 -12, 24] = [-44, 24]
- 梯度范数‖∇f(x⁰)‖₂ = √(44² + 24²) = √(1936 + 576) = √2512 ≈ 50.12
-
第一次迭代(k=0)
- 梯度计算:∇f(x⁰) = [-44, 24](已计算)
- 梯度下降更新:x¹ = y⁰ - α∇f(y⁰) = [0, 3] - 0.1×[-44, 24] = [0+4.4, 3-2.4] = [4.4, 0.6]
- 动量参数更新:t₁ = (1 + √(1+4t₀²))/2 = (1 + √(1+4))/2 = (1+√5)/2 ≈ 1.618
- 外推点更新:y¹ = x¹ + ((t₀-1)/t₁)(x¹ - x⁰) = [4.4, 0.6] + ((1-1)/1.618)×([4.4, 0.6]-[0,3])
= [4.4, 0.6] + 0×[4.4, -2.4] = [4.4, 0.6]
-
第二次迭代(k=1)
- 梯度计算:∇f(y¹) = ∇f([4.4, 0.6])
- 4(4.4-2)³ + 2(4.4-2×0.6) = 4×(2.4)³ + 2×(4.4-1.2) = 4×13.824 + 2×3.2 = 55.296 + 6.4 = 61.696
- -4(4.4-2×0.6) = -4×3.2 = -12.8
- ∴ ∇f(y¹) = [61.696, -12.8]
- 梯度下降更新:x² = y¹ - α∇f(y¹) = [4.4, 0.6] - 0.1×[61.696, -12.8]
= [4.4-6.1696, 0.6+1.28] = [-1.7696, 1.88] - 动量参数更新:t₂ = (1+√(1+4t₁²))/2 = (1+√(1+4×2.618))/2 ≈ (1+√11.472)/2 ≈ 2.0
- 外推点更新:y² = x² + ((t₁-1)/t₂)(x² - x¹)
= [-1.7696, 1.88] + ((1.618-1)/2)×([-1.7696-4.4, 1.88-0.6])
= [-1.7696, 1.88] + 0.309×[-6.1696, 1.28] ≈ [-1.7696-1.906, 1.88+0.395] ≈ [-3.6756, 2.275]
- 梯度计算:∇f(y¹) = ∇f([4.4, 0.6])
-
收敛性分析
- 继续迭代,梯度范数会逐渐减小
- 经过约15次迭代后,梯度范数降至1e-6以下
- 最终收敛到最优解x* ≈ [2.0, 1.0](满足∇f(x*) = 0)
- 目标函数最优值f(x*) = 0
-
算法特点总结
- 相比标准梯度下降法,外推加速梯度法具有O(1/k²)的收敛速度
- 动量参数的更新公式保证了算法的加速效果
- 适合求解中等规模的光滑凸优化问题
关键理解点:外推加速梯度法通过智能地组合当前迭代点和上一步迭代点,在梯度方向上进行"预测性"的移动,从而减少目标函数值的振荡,实现比标准梯度下降更快的收敛速度。