近端梯度下降
简介
近端梯度下降(Proximal Gradient Descent,PGD)是一种针对非光滑凸优化的迭代算法。它将梯度下降与近端算子相结合,用于求解具有线性约束或正则化项(如 L1 范数正则化)的问题。
基本原理
PGD 的基本原理可以描述为:``` x_{k+1} = \operatorname{prox}_{\lambda f}(x_k - \eta \nabla g(x_k)) ```其中:
x
是优化变量
f
是凸正则化函数
g
是目标函数
η
是步长
λ
是近端算子的正则化参数
prox
是近端算子,定义为:``` \operatorname{prox}_{\lambda f}(x) = \arg\min_y \left(f(y) + \frac{1}{2\lambda} \|y - x\|_2^2\right) ```
近端算子
近端算子将正则化函数映射到其最接近点。它是求解非光滑问题的关键,因为它允许将非光滑优化问题转化为一组更简单的子问题。一些常用的近端算子示例包括:
L1 范数正则化:
软阈值算子
L2 范数正则化:
投影算子
交替非负最小二乘法:
非负投影算子
算法步骤
PGD 算法的步骤如下:1. 初始化
x
、
η
和
λ
2. 对于每个迭代
k
:
计算梯度
∇g(x_k)
计算近端算子
prox
更新
x
:
x_{k+1} = prox
3. 直到收敛
应用
PGD 用于求解各种非光滑优化问题,包括:
图像去噪
压缩感知
机器学习中的正则化
财务建模与传统梯度下降算法相比,PGD 的优势在于它能够处理非光滑正则化函数,并确保收敛到最优解。
**近端梯度下降****简介**近端梯度下降(Proximal Gradient Descent,PGD)是一种针对非光滑凸优化的迭代算法。它将梯度下降与近端算子相结合,用于求解具有线性约束或正则化项(如 L1 范数正则化)的问题。**基本原理**PGD 的基本原理可以描述为:``` x_{k+1} = \operatorname{prox}_{\lambda f}(x_k - \eta \nabla g(x_k)) ```其中:* **x** 是优化变量 * **f** 是凸正则化函数 * **g** 是目标函数 * **η** 是步长 * **λ** 是近端算子的正则化参数 * **prox** 是近端算子,定义为:``` \operatorname{prox}_{\lambda f}(x) = \arg\min_y \left(f(y) + \frac{1}{2\lambda} \|y - x\|_2^2\right) ```**近端算子**近端算子将正则化函数映射到其最接近点。它是求解非光滑问题的关键,因为它允许将非光滑优化问题转化为一组更简单的子问题。一些常用的近端算子示例包括:* L1 范数正则化:**软阈值算子** * L2 范数正则化:**投影算子** * 交替非负最小二乘法:**非负投影算子****算法步骤**PGD 算法的步骤如下:1. 初始化 **x**、**η** 和 **λ** 2. 对于每个迭代 **k**:* 计算梯度 **∇g(x_k)*** 计算近端算子 **prox*** 更新 **x**:**x_{k+1} = prox**3. 直到收敛**应用**PGD 用于求解各种非光滑优化问题,包括:* 图像去噪 * 压缩感知 * 机器学习中的正则化 * 财务建模与传统梯度下降算法相比,PGD 的优势在于它能够处理非光滑正则化函数,并确保收敛到最优解。