非线性规划中的随机拟牛顿法基础题
字数 3019 2025-10-27 12:20:21
非线性规划中的随机拟牛顿法基础题
题目描述
考虑一个二维无约束非线性优化问题:最小化目标函数 \(f(x) = x_1^4 + 2x_2^2 - x_1 x_2 + 3x_1\),其中 \(x = [x_1, x_2]^T\)。初始点设为 \(x^{(0)} = [0, 0]^T\)。要求使用随机拟牛顿法(Stochastic Quasi-Newton Method)来求解该问题。该方法在标准拟牛顿法的基础上,通过随机采样梯度信息来近似海森矩阵(Hessian Matrix)的逆,适用于梯度计算成本高或问题规模大的场景。本题中,我们将模拟梯度采样过程,并展示算法的迭代步骤。
解题过程
-
算法原理简述
- 拟牛顿法(如BFGS)通过迭代更新海森矩阵逆的近似矩阵 \(H_k\),避免直接计算海森矩阵。其更新公式依赖于当前点 \(x^{(k)}\) 和梯度 \(\nabla f(x^{(k)})\)。
- 随机拟牛顿法引入随机性:在每次迭代中,不计算精确梯度,而是通过随机采样(如随机向量 \(\xi\))构建梯度估计 \(g_k \approx \nabla f(x^{(k)})\)。例如,使用有限差分近似:\(g_k = \frac{f(x^{(k)} + \epsilon \xi) - f(x^{(k)})}{\epsilon} \xi\),其中 \(\epsilon\) 为小常数(如 \(10^{-5}\)),\(\xi\) 为随机单位向量。
- 步骤:
- 随机采样生成梯度估计 \(g_k\)。
- 计算搜索方向 \(d_k = -H_k g_k\)。
- 执行线搜索确定步长 \(\alpha_k\)(如Armijo条件)。
- 更新迭代点 \(x^{(k+1)} = x^{(k)} + \alpha_k d_k\)。
- 用随机采样的梯度差更新 \(H_k\)(BFGS更新公式)。
-
问题初始化
- 目标函数:\(f(x) = x_1^4 + 2x_2^2 - x_1 x_2 + 3x_1\)。
- 初始点:\(x^{(0)} = [0, 0]^T\)。
- 初始海森逆近似:\(H_0 = I\)(单位矩阵)。
- 参数设置:采样噪声尺度 \(\epsilon = 10^{-5}\),线搜索参数 \(\beta = 0.5\),\(\sigma = 0.1\)(Armijo条件)。
-
迭代步骤(以第1轮迭代为例)
-
步骤1: 随机梯度估计
- 生成随机单位向量 \(\xi = [0.6, 0.8]^T\)(示例值)。
- 计算扰动点函数值:\(f(x^{(0)} + \epsilon \xi) = f([0.6 \times 10^{-5}, 0.8 \times 10^{-5}]) \approx f([0, 0]) = 0\)(因 \(\epsilon\) 极小,扰动可忽略)。
- 梯度估计:\(g_0 = \frac{f(x^{(0)} + \epsilon \xi) - f(x^{(0)})}{\epsilon} \xi \approx [0, 0]^T\)。
- 注:实际中需高精度计算,这里为展示,后续用精确梯度加入噪声模拟随机性。
-
步骤2: 计算搜索方向
- \(d_0 = -H_0 g_0 = -I \cdot [0, 0]^T = [0, 0]^T\)。
- 若梯度估计为零,需重新采样。假设重采样后 \(g_0 = [2.9, 0.1]^T\)(模拟精确梯度 \(\nabla f(0,0) = [3, 0]^T\) 加入小噪声)。
- 则 \(d_0 = -I \cdot [2.9, 0.1]^T = [-2.9, -0.1]^T\).
-
步骤3: 线搜索(Armijo规则)
- 尝试步长 \(\alpha = 1\):\(f(x^{(0)} + \alpha d_0) = f(-2.9, -0.1) \approx (-2.9)^4 + 2(-0.1)^2 - (-2.9)(-0.1) + 3(-2.9) = 70.56 + 0.02 - 0.29 - 8.7 = 61.59\)。
- 初始 \(f(x^{(0)}) = 0\)。Armijo条件:\(f(x + \alpha d) \leq f(x) + \sigma \alpha g^T d\)。
- 右侧:\(0 + 0.1 \times 1 \times [2.9, 0.1] \cdot [-2.9, -0.1] = 0.1 \times (-8.41 - 0.01) = -0.842\)。
- 左侧 \(61.59 > -0.842\),条件不满足。
- 缩减步长:\(\alpha = 0.5\),重复直至满足条件(例如 \(\alpha = 0.1\) 时可能满足)。
-
步骤4: 更新迭代点
- 假设 \(\alpha_0 = 0.1\) 满足条件,则 \(x^{(1)} = [0, 0]^T + 0.1 \cdot [-2.9, -0.1]^T = [-0.29, -0.01]^T\).
-
步骤5: 更新海森逆近似 \(H_k\)(BFGS公式)
- 采样新梯度估计 \(g_1 \approx \nabla f(x^{(1)})\)(如 \([1.5, -0.3]^T\))。
- 计算梯度差 \(y_0 = g_1 - g_0 \approx [1.5, -0.3]^T - [2.9, 0.1]^T = [-1.4, -0.4]^T\)。
- 参数 \(s_0 = x^{(1)} - x^{(0)} = [-0.29, -0.01]^T\)。
- BFGS更新:\(H_1 = \left(I - \frac{s_0 y_0^T}{y_0^T s_0}\right) H_0 \left(I - \frac{y_0 s_0^T}{y_0^T s_0}\right) + \frac{s_0 s_0^T}{y_0^T s_0}\)。
- 计算 \(y_0^T s_0 = [-1.4, -0.4] \cdot [-0.29, -0.01] = 0.406 + 0.004 = 0.41\)。
- 代入公式更新 \(H_1\)。
-
-
迭代终止
- 重复以上步骤,直到梯度估计的范数 \(\|g_k\| < 10^{-3}\) 或达到最大迭代次数。
- 最终解应接近理论极小点(通过求导 \(\nabla f(x) = [4x_1^3 - x_2 + 3, 4x_2 - x_1]^T = 0\),解得 \(x^* \approx [-0.9, -0.225]^T\))。
关键点总结
- 随机拟牛顿法通过随机梯度估计降低计算成本,但引入噪声可能影响收敛速度。
- 线搜索确保目标函数下降,BFGS更新保持海森逆的正定性和近似精度。
- 本题中,通过模拟随机采样展示了算法流程,实际应用需根据问题调整采样策略和参数。