非线性规划中的随机拟牛顿法(Stochastic Quasi-Newton Method)进阶题
题目描述
考虑如下带有期望形式目标函数的随机优化问题:
\[\min_{x \in \mathbb{R}^n} \ F(x) = \mathbb{E}_{\xi}[f(x, \xi)] \]
其中 \(f(x, \xi)\) 是关于决策变量 \(x\) 和随机变量 \(\xi\) 的可微函数,\(\mathbb{E}_{\xi}[\cdot]\) 表示关于 \(\xi\) 的数学期望。该问题通常出现在机器学习、金融工程等领域,目标函数可能非凸、非光滑(在期望意义下),且其精确梯度 \(\nabla F(x)\) 难以直接计算。我们只能通过采样获取随机梯度 \(\nabla f(x, \xi)\) 的无偏估计。现要求设计一种随机拟牛顿法,在每次迭代中利用历史随机梯度信息动态更新一个正定矩阵 \(B_k\) 来近似 Hessian 矩阵,从而加速收敛并提高稳定性。
解题过程
步骤 1:问题形式与挑战分析
-
问题特性:
- 目标函数是期望形式,无法直接计算 \(F(x)\) 和 \(\nabla F(x)\)。
- 只能通过随机采样获得无偏梯度估计:\(g_k = \nabla f(x_k, \xi_k)\),满足 \(\mathbb{E}[g_k] = \nabla F(x_k)\)。
- 若直接使用随机梯度下降(SGD),收敛速度可能较慢,尤其是当问题条件数较大时。
-
核心思想:
- 拟牛顿法通过利用梯度变化信息构建 Hessian 近似 \(B_k \approx \nabla^2 F(x_k)\),从而引入二阶曲率信息,改进步长选择。
- 在随机环境下,需解决两个关键问题:
- 如何利用随机梯度估计更新 \(B_k\)?
- 如何保证 \(B_k\) 的正定性和稳定性,避免因随机噪声导致的数值问题?
步骤 2:算法框架设计
随机拟牛顿法的基本迭代格式为:
\[x_{k+1} = x_k - \alpha_k B_k^{-1} g_k \]
其中:
- \(g_k\) 是当前点 \(x_k\) 处的随机梯度估计。
- \(B_k\) 是 Hessian 近似矩阵,需迭代更新。
- \(\alpha_k > 0\) 是步长,通常需要递减以满足收敛性。
算法流程概览:
- 初始化 \(x_0\), \(B_0 = I\)(单位矩阵),选择步长序列 \(\{\alpha_k\}\) 和采样批量大小。
- 对于 \(k = 0, 1, 2, \dots\):
a. 采样随机变量 \(\xi_k\),计算随机梯度 \(g_k = \nabla f(x_k, \xi_k)\)。
b. 计算搜索方向 \(d_k = -B_k^{-1} g_k\)。
c. 更新迭代点:\(x_{k+1} = x_k + \alpha_k d_k\)。
d. 采样新的随机变量 \(\xi_{k+1}\),计算 \(g_{k+1} = \nabla f(x_{k+1}, \xi_{k+1})\)。
e. 利用 \(s_k = x_{k+1} - x_k\) 和 \(y_k = g_{k+1} - g_k\) 更新 Hessian 近似 \(B_{k+1}\)。
步骤 3:Hessian 近似更新——随机拟牛顿条件
在确定性拟牛顿法中,更新规则(如 BFGS)要求满足割线方程 \(B_{k+1} s_k = y_k\),其中 \(y_k = \nabla F(x_{k+1}) - \nabla F(x_k)\)。但在随机环境下,我们只有随机梯度估计 \(g_k\),因此:
- 定义 \(y_k = g_{k+1} - g_k\)。
- 由于 \(g_k\) 和 \(g_{k+1}\) 都是无偏估计,但独立采样导致 \(y_k\) 是 \(\nabla F(x_{k+1}) - \nabla F(x_k)\) 的有噪估计。
为了减少噪声影响,常见的做法包括:
- 方差缩减技术:例如,使用 SVRG(Stochastic Variance Reduced Gradient)或 SAGA 方法计算梯度差,使得 \(y_k\) 的方差可控。
- 平均或平滑:使用移动平均 \(\bar{y}_k = \beta \bar{y}_{k-1} + (1-\beta) y_k\) 来平滑梯度差,其中 \(\beta \in (0,1)\) 为衰减因子。
- 投影或裁剪:当 \(s_k^T y_k\) 过小或为负时(可能导致 \(B_k\) 非正定),采用修正策略,如 Powell 修正或直接跳过更新。
步骤 4:具体的更新公式(随机 BFGS 为例)
随机 BFGS(Stochastic BFGS)更新步骤如下:
- 计算 \(s_k = x_{k+1} - x_k\), \(y_k = g_{k+1} - g_k\)。
- 若 \(s_k^T y_k \ge \epsilon \|s_k\|^2\)(其中 \(\epsilon > 0\) 是小常数,确保正定性),则按 BFGS 公式更新:
\[ B_{k+1} = B_k - \frac{B_k s_k s_k^T B_k}{s_k^T B_k s_k} + \frac{y_k y_k^T}{s_k^T y_k} \]
否则,保持 \(B_{k+1} = B_k\)(跳过更新)。
3. 为保持数值稳定,可定期重置 \(B_k = I\) 或在迭代中约束 \(B_k\) 的特征值范围。
步骤 5:步长选择与收敛性保障
- 步长规则:由于随机噪声,步长必须满足 Robbins-Monro 条件:
\[ \sum_{k=1}^\infty \alpha_k = \infty, \quad \sum_{k=1}^\infty \alpha_k^2 < \infty \]
常用选择:\(\alpha_k = \frac{a}{k + b}\),其中 \(a > 0, b \ge 0\)。
- 收敛性:在目标函数 \(F(x)\) 为凸或强凸、梯度估计方差有界的假设下,随机拟牛顿法能以 \(O(1/k)\) 或线性速率收敛到最优解邻域(依赖问题条件)。
步骤 6:算法变体与改进
- 有限内存随机 BFGS(L-SBFGS):仅保存最近的 \(m\) 对 \((s_i, y_i)\) 来更新 \(B_k\),节省存储和计算成本。
- 自适应随机拟牛顿法:结合 Adagrad 或 Adam 的思想,调整 \(B_k\) 的更新强度或引入对角缩放。
- 非凸扩展:当 \(F(x)\) 非凸时,需确保 \(B_k\) 保持正定,并可结合线搜索(随机 Armijo 条件)或信赖域技巧。
总结
随机拟牛顿法通过将拟牛顿思想与随机优化结合,在仅能获取随机梯度的场景下引入了二阶信息,从而加速收敛。其核心挑战在于处理梯度估计的噪声,确保 Hessian 近似的正定性和稳定性。通过方差缩减、平滑更新和适当的步长策略,该算法能在许多实际应用中优于纯随机梯度方法。