基于近似点梯度与自适应步长策略的复合优化问题
题目描述
考虑如下复合优化问题:
\[\min_{x \in \mathbb{R}^n} F(x) = f(x) + g(x) \]
其中 \(f: \mathbb{R}^n \to \mathbb{R}\) 是一个连续可微但可能非凸的函数,其梯度 \(\nabla f\) 是 Lipschitz 连续的(常数为 \(L\));而 \(g: \mathbb{R}^n \to \mathbb{R} \cup \{+\infty\}\) 是一个可能非光滑、但具有易处理的近似点算子(proximal operator)的闭凸函数(例如,\(g\) 可以是 \(\ell_1\) 范数、指示函数等)。目标是在不假设 \(f\) 为凸的前提下,设计一种结合近似点梯度(Proximal Gradient)与自适应步长策略的算法,以高效求解该问题,并分析其收敛行为。
解题过程
-
问题结构分析
- 目标函数 \(F(x)\) 由“光滑部分” \(f(x)\) 与“非光滑部分” \(g(x)\) 复合而成,这是典型的复合优化模型。
- 由于 \(f\) 可能是非凸的,传统的近似点梯度法(适用于凸问题)的收敛保证不再直接成立。
- 但 \(g\) 是凸的,其近似点算子容易计算(这是算法可行的关键)。
- 核心挑战:如何在非凸背景下,利用自适应步长策略加速收敛,同时确保下降性与稳定性。
-
算法设计:自适应步长近似点梯度法(Adaptive Step-size Proximal Gradient Method, ASPG)
- 基本迭代格式:近似点梯度法的迭代公式为
\[x_{k+1} = \text{prox}_{\alpha_k g} (x_k - \alpha_k \nabla f(x_k)) \]
其中 $\alpha_k > 0$ 是步长,$\text{prox}_{\alpha g}(y) = \arg\min_{x} \{ g(x) + \frac{1}{2\alpha} \|x - y\|^2 \}$ 是近似点算子。
- 自适应步长策略:为了加速且避免依赖全局 Lipschitz 常数 \(L\),采用如下自适应规则:
- 初始步长 \(\alpha_0 > 0\)(例如 \(\alpha_0=1\)),收缩因子 \(\beta \in (0,1)\)(如 \(\beta=0.5\)),增长因子 \(\eta > 1\)(如 \(\eta=1.2\))。
- 在每次迭代 \(k\),尝试步长 \(\alpha_k\),计算候选点
\[z = \text{prox}_{\alpha_k g}(x_k - \alpha_k \nabla f(x_k)). \]
- 检验如下下降条件(非凸情形的充分下降条件):
\[f(z) + g(z) \leq f(x_k) + g(x_k) - \frac{c}{\alpha_k} \|z - x_k\|^2 \]
其中 $c > 0$ 是一个小常数(如 $c=10^{-4}$)。若条件满足,则接受 $x_{k+1} = z$,并增大步长:$\alpha_{k+1} = \eta \alpha_k$;否则,拒绝 $z$,缩小步长:$\alpha_k := \beta \alpha_k$,重新尝试。
- 此策略通过回溯调整步长,确保每次迭代目标函数充分下降,同时允许步长在光滑区域增大以加速。
-
具体步骤
- 步骤0:初始化 \(x_0 \in \text{dom}(g)\),初始步长 \(\alpha_0 > 0\),参数 \(\beta \in (0,1), \eta > 1, c > 0\),设置容忍误差 \(\epsilon > 0\),令 \(k=0\)。
- 步骤1:计算梯度 \(\nabla f(x_k)\)。
- 步骤2(自适应步长循环):
a. 计算候选点 \(z = \text{prox}_{\alpha_k g}(x_k - \alpha_k \nabla f(x_k))\)。
b. 若下降条件 \(F(z) \leq F(x_k) - \frac{c}{\alpha_k} \|z - x_k\|^2\) 成立,则跳出循环,进入步骤3;否则,缩小步长 \(\alpha_k := \beta \alpha_k\),返回步骤2a。 - 步骤3:接受迭代点 \(x_{k+1} = z\),更新步长 \(\alpha_{k+1} = \min(\eta \alpha_k, \alpha_{\max})\)(可选上界 \(\alpha_{\max}\) 防止过大)。
- 步骤4:检查停止准则(如 \(\|x_{k+1} - x_k\| < \epsilon\) 或梯度映射范数足够小)。若满足则输出 \(x_{k+1}\);否则令 \(k := k+1\),返回步骤1。
-
收敛性分析
- 在非凸情况下,算法保证每次接受迭代均满足充分下降条件,因此目标函数序列 \(\{F(x_k)\}\) 单调不增。
- 结合 \(f\) 的梯度 Lipschitz 连续性及下降条件,可证明梯度映射 \(\frac{1}{\alpha_k}(x_k - x_{k+1})\) 的范数在极限点处趋于零,这意味着每个极限点都是 \(F\) 的临界点(一阶必要条件满足的点)。
- 若 \(F\) 还满足 Kurdyka–Łojasiewicz(KL)性质(许多实际函数满足),则可进一步证明整个序列收敛到单个临界点。
-
示例与说明
- 例如,若 \(g(x) = \lambda \|x\|_1\)(Lasso 型正则化),则近似点算子为软阈值算子:\([\text{prox}_{\alpha g}(y)]_i = \text{sign}(y_i) \max(|y_i| - \lambda \alpha, 0)\)。
- 通过自适应步长,算法在迭代中自动调整步长:在 \(f\) 曲率较平缓处采用大步长快速推进,在曲率较大处缩小步长保证稳定性。
- 对比固定步长 \(\alpha \leq 1/L\) 的传统近似点梯度法,自适应版本通常更高效,尤其当 \(L\) 未知或局部 Lipschitz 常数变化较大时。
总结
本算法结合了近似点梯度法处理非光滑凸项的优势与自适应步长策略的鲁棒性,适用于非凸光滑项与凸非光滑项复合的优化问题。通过回溯步长调整确保充分下降,在非凸场景下仍能收敛到临界点,且实际计算中往往比固定步长方法更快收敛。