近似点梯度法(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。

解题过程

  1. 问题分析

    • 目标函数 f(x) 由光滑部分 g(x) 和非光滑部分 h(x) 组成。
    • g(x) 是二次函数,其梯度 ∇g(x) = [2(x₁ - 2), 2(x₂ - 1)]。
    • h(x) 是L1范数,导致函数在 x₁=0 和 x₂=0 处不可导。
    • 近似点梯度法通过交替进行梯度下降和近似点映射处理非光滑性。
  2. 算法框架
    迭代公式为:
    xᵏ⁺¹ = prox_{αh}(xᵏ - α∇g(xᵏ)),
    其中 α 是步长,prox_{αh}(v) 是 h(x) 的近似点算子,定义为:
    prox_{αh}(v) = argminₓ { h(x) + 1/(2α) ||x - v||² }。

  3. 计算近似点算子

    • 由于 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}]。
  4. 选择步长 α

    • g(x) 的梯度是 Lipschitz 连续的,常数 L = 2(因为 ∇g 的 Hessian 矩阵是 2I)。
    • 为保证收敛,需满足 α ∈ (0, 1/L] = (0, 0.5]。这里取 α = 0.5。
  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¹,算法已收敛。
  6. 结果分析

    • 最终解 x* = [1, 0],f(x*) = (1-2)² + (0-1)² + 2|1| + 3|0| = 1 + 1 + 2 = 4。
    • 由于L1正则项的稀疏性,解的第二分量被压缩到0,体现了特征选择效果。

关键思想:近似点梯度法通过将梯度下降与近似点映射结合,高效处理非光滑优化,特别适用于L1正则化问题。

近似点梯度法(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} ]。 选择步长 α 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¹,算法已收敛。 结果分析 最终解 x* = [ 1, 0],f(x* ) = (1-2)² + (0-1)² + 2|1| + 3|0| = 1 + 1 + 2 = 4。 由于L1正则项的稀疏性,解的第二分量被压缩到0,体现了特征选择效果。 关键思想 :近似点梯度法通过将梯度下降与近似点映射结合,高效处理非光滑优化,特别适用于L1正则化问题。