序列随机拟牛顿法(Sequential Stochastic Quasi-Newton Method)进阶题
题目描述
考虑如下带有期望约束的非线性规划问题:
\[\min_{x \in \mathbb{R}^n} f(x) = \mathbb{E}[F(x, \xi)] \]
\[ \text{s.t. } g_i(x) = \mathbb{E}[G_i(x, \xi)] \leq 0, \quad i = 1, \dots, m \]
其中,\(F(x, \xi), G_i(x, \xi)\) 是关于随机变量 \(\xi\) 的(可能非光滑)函数,其数学期望难以直接计算。我们只能通过抽样获得随机样本 \(\xi_1, \xi_2, \dots\),并基于样本均值来近似目标与约束。假设 \(f(x)\) 和 \(g_i(x)\) 是连续可微的,但它们的梯度信息只能通过随机样本估计得到。要求设计一种高效的序列随机拟牛顿法,在每次迭代中利用随机样本近似梯度与Hessian信息,结合约束处理技术,逐步逼近问题的局部最优解。
解题过程循序渐进讲解
1. 问题理解与核心挑战
- 这是随机优化问题,目标与约束都涉及数学期望,无法精确计算。
- 直接应用确定性优化方法(如SQP、内点法)不可行,因为每次需要精确的梯度和Hessian矩阵。
- 我们需要一种能在随机噪声下逐步更新迭代点,并保证收敛的方法。
- 拟牛顿法(如BFGS、DFP)用对称正定矩阵近似Hessian,避免计算二阶导数,适合随机环境。
- 序列化思想:每一步利用新样本改进梯度与Hessian估计,并求解一个子问题产生新的迭代点。
2. 方法框架概述
序列随机拟牛顿法的基本迭代格式如下:
在第 \(k\) 次迭代,已知当前点 \(x_k\),我们执行:
① 采集一批随机样本 \(\{\xi_{k,1}, \dots, \xi_{k,N_k}\}\),样本量 \(N_k\) 可随 \(k\) 增大。
② 用样本均值估计梯度与约束值:
\[\hat{\nabla} f_k = \frac{1}{N_k} \sum_{j=1}^{N_k} \nabla_x F(x_k, \xi_{k,j}) \]
\[ \hat{g}_{i,k} = \frac{1}{N_k} \sum_{j=1}^{N_k} G_i(x_k, \xi_{k,j}), \quad \hat{\nabla} g_{i,k} = \frac{1}{N_k} \sum_{j=1}^{N_k} \nabla_x G_i(x_k, \xi_{k,j}) \]
③ 更新拟牛顿矩阵 \(B_k\)(正定,近似 \(\nabla^2 L(x_k, \lambda_k)\),其中 \(L\) 是拉格朗日函数)。
④ 求解一个二次规划子问题得到搜索方向 \(d_k\) 和乘子估计 \(\lambda_{k+1}\)。
⑤ 沿 \(d_k\) 进行线搜索(或信赖域)确定步长 \(\alpha_k\),更新 \(x_{k+1} = x_k + \alpha_k d_k\)。
⑥ 增加样本量 \(N_{k+1} \ge N_k\) 以降低估计方差,进入下一迭代。
3. 拟牛顿矩阵的随机更新
- 在随机环境中,我们不能用精确的梯度差 \(y_k = \nabla L(x_{k+1}, \lambda_{k+1}) - \nabla L(x_k, \lambda_{k+1})\),因为 \(\nabla L\) 未知。
- 替代方案:用随机梯度估计的差
\[\hat{y}_k = \hat{\nabla}_x L(x_{k+1}, \lambda_{k+1}) - \hat{\nabla}_x L(x_k, \lambda_{k+1}) \]
其中 \(\hat{\nabla}_x L = \hat{\nabla} f + \sum \lambda_i \hat{\nabla} g_i\)。
- 更新拟牛顿矩阵 \(B_k\) 采用BFGS公式:
\[B_{k+1} = B_k - \frac{B_k s_k s_k^T B_k}{s_k^T B_k s_k} + \frac{\hat{y}_k \hat{y}_k^T}{s_k^T \hat{y}_k}, \quad s_k = x_{k+1} - x_k \]
- 为保证正定性,需满足曲率条件 \(s_k^T \hat{y}_k > 0\),这在随机样本下不一定成立。常用技巧:若 \(s_k^T \hat{y}_k < \delta \|s_k\|^2\)(\(\delta > 0\) 小常数),则令 \(\hat{y}_k = \hat{y}_k + \theta_k s_k\) 使条件满足。
4. 子问题构建
在第 \(k\) 步,构建以下二次规划(QP):
\[\min_{d \in \mathbb{R}^n} \hat{\nabla} f_k^T d + \frac12 d^T B_k d \]
\[ \text{s.t. } \hat{g}_{i,k} + \hat{\nabla} g_{i,k}^T d \le 0, \quad i=1,\dots,m \]
- 这是局部近似模型:目标用二次项近似,约束线性化。
- 解此QP得到方向 \(d_k\) 和乘子估计 \(\lambda_{k+1}^\text{qp}\)。
- 由于随机噪声,QP可能不相容。可引入松弛变量或采用过滤器(Filter) 处理约束违反。
5. 步长选择与收敛控制
- 采用随机线搜索:试探步长 \(\alpha\),要求满足如下条件(随机Armijo条件):
\[\hat{f}(x_k + \alpha d_k) \le \hat{f}(x_k) + c_1 \alpha \hat{\nabla} f_k^T d_k - \eta_k \]
其中 \(\eta_k > 0\) 是容忍度,用来抵消梯度估计的噪声,且 \(\sum \eta_k < \infty\) 保证最终收敛。
- 或者采用随机信赖域:在半径 \(\Delta_k\) 内求解子问题,根据实际下降与预测下降的比例调整半径。
- 样本量 \(N_k\) 应逐渐增加,例如 \(N_k = \lfloor N_0 k^\rho \rfloor, \rho \in (0,1]\),以降低方差,满足大数定律。
6. 收敛性关键点
- 在随机噪声下,算法只能收敛到稳定点(一阶临界点)的概率为1。
- 需要假设:随机梯度估计是无偏的,方差有限;目标与约束满足一定光滑性;积极集变化有限。
- 拟牛顿矩阵 \(B_k\) 需保持一致正定且有界,以保证搜索方向合理。
- 步长条件与样本量增加策略需协调,确保噪声不干扰收敛方向。
7. 算法步骤总结
① 初始化 \(x_0, B_0 = I, N_0, k=0\)。
② 采集 \(N_k\) 个样本,计算 \(\hat{\nabla} f_k, \hat{g}_{i,k}, \hat{\nabla} g_{i,k}\)。
③ 求解QP子问题得 \(d_k, \lambda_{k+1}^\text{qp}\)。
④ 执行随机线搜索确定步长 \(\alpha_k\)。
⑤ 更新 \(x_{k+1} = x_k + \alpha_k d_k\)。
⑥ 采集新样本(可重用部分旧样本),计算 \(\hat{y}_k\),调整曲率条件。
⑦ 用BFGS更新 \(B_{k+1}\)。
⑧ 增加样本量 \(N_{k+1}\),\(k := k+1\),转②直至收敛准则满足(如 \(\|d_k\|\) 很小且约束违反小)。
重点提示
- 此方法融合了随机逼近、拟牛顿法和序列二次规划,适合期望型约束问题。
- 关键挑战是在噪声下保持拟牛顿矩阵的稳定性和子问题相容性。
- 实际应用中,常结合方差缩减技术(如SVRG、SAGA)来提升梯度估计质量,加速收敛。