非线性规划中的随机梯度哈密顿蒙特卡洛(SGHMC)在非凸、非光滑随机优化中的应用进阶题
1. 题目描述
考虑一个非凸且可能非光滑的随机优化问题:
\[\min_{x \in \mathbb{R}^d} \mathbb{E}_{\xi \sim \mathcal{D}} [F(x, \xi) + r(x)] \]
其中:
- \(F(x, \xi)\) 是一个关于 \(x\) 的非凸、可微(但梯度可能不是 Lipschitz 连续)的随机函数,\(\xi\) 是从分布 \(\mathcal{D}\) 中随机抽取的样本。
- \(r(x)\) 是一个可能非光滑的凸正则项(例如 \(l_1\) 范数 \(\|x\|_1\) 或 \(l_2\) 范数 \(\|x\|_2^2\)),用于引入稀疏性或稳定性。
- 目标函数是期望形式,我们无法直接计算精确梯度或函数值,只能通过随机采样得到噪声估计。
你的任务是:使用随机梯度哈密顿蒙特卡洛(Stochastic Gradient Hamiltonian Monte Carlo, SGHMC)方法求解该问题,并解释如何通过引入动量(惯性)和随机噪声来逃离非凸区域的局部极小值,同时处理非光滑项。
2. 背景与动机
传统的随机梯度下降(SGD)在非凸问题中容易陷入局部极小值,且对非光滑项敏感。哈密顿蒙特卡洛(HMC)是一种基于物理动力学的 MCMC 采样方法,能有效探索复杂后验分布。SGHMC 将 HMC 的思想与随机梯度结合,适用于大规模随机优化。其核心是在梯度更新中引入动量项和可控的噪声,使算法在非凸表面上能“穿越”能量壁垒,找到更优的解。
3. 问题形式化
记 \(f(x) = \mathbb{E}[F(x, \xi)]\),则问题为:
\[\min_x f(x) + r(x) \]
假设我们只能获得随机梯度 \(\nabla F(x, \xi)\),满足 \(\mathbb{E}[\nabla F(x, \xi)] = \nabla f(x)\),且方差有限。
4. SGHMC 算法推导(循序渐进)
步骤1:从哈密顿动力学到朗之万扩散
标准 HMC 基于哈密顿方程:
\[\begin{cases} dx = M^{-1} p \, dt \\ dp = -\nabla f(x) \, dt \end{cases} \]
其中 \(p\) 是动量变量,\(M\) 是质量矩阵(通常设为单位矩阵)。
为了适用于随机梯度并引入噪声以逃离局部极小,我们向动量更新中加入摩擦项和随机噪声:
\[\begin{cases} dx = p \, dt \\ dp = -\nabla f(x) \, dt - B p \, dt + \sqrt{2B} \, dW_t \end{cases} \]
其中 \(B \succ 0\) 是摩擦系数矩阵,\(W_t\) 是维纳过程(布朗运动)。这称为朗之万扩散,其平稳分布是 \(p(x,p) \propto \exp(-[f(x) + \frac{1}{2}\|p\|^2])\)。
步骤2:离散化并引入随机梯度
将连续时间方程离散化(欧拉-Maruyama格式),步长为 \(\epsilon\),并用随机梯度 \(g(x, \xi) = \nabla F(x, \xi)\) 替代真实梯度:
\[\begin{cases} p_{t+1} = p_t - \epsilon g(x_t, \xi_t) - \epsilon B p_t + \sqrt{2\epsilon B} \, \zeta_t \\ x_{t+1} = x_t + \epsilon p_{t+1} \end{cases} \]
其中 \(\zeta_t \sim \mathcal{N}(0, I)\) 是高斯噪声。
步骤3:处理非光滑项 \(r(x)\)
由于 \(r(x)\) 可能不可微,我们采用近似点梯度(Proximal Gradient)的思想进行混合更新。具体来说,在更新 \(x\) 时,对 \(r(x)\) 做近似点映射(proximal mapping):
\[x_{t+1} = \text{prox}_{\epsilon r}(x_t + \epsilon p_{t+1}) \]
其中 \(\text{prox}_{\epsilon r}(y) = \arg\min_z \left\{ r(z) + \frac{1}{2\epsilon} \|z - y\|^2 \right\}\)。
步骤4:完整 SGHMC 算法流程
- 初始化:选取初始点 \(x_0\),初始动量 \(p_0 = 0\),步长 \(\epsilon > 0\),摩擦系数 \(B > 0\)(标量简化),迭代次数 \(T\)。
- 迭代:对于 \(t = 0, 1, \dots, T-1\):
- 随机采样小批量数据 \(\xi_t \sim \mathcal{D}\),计算随机梯度 \(g_t = \nabla F(x_t, \xi_t)\)。
- 更新动量:
\[ p_{t+1} = (1 - \epsilon B) p_t - \epsilon g_t + \sqrt{2\epsilon B} \, \zeta_t, \quad \zeta_t \sim \mathcal{N}(0, I) \]
- 更新位置:
\[ y_{t+1} = x_t + \epsilon p_{t+1} \]
\[ x_{t+1} = \text{prox}_{\epsilon r}(y_{t+1}) \]
- 输出:最后迭代的 \(x_T\),或遍历平均 \(\bar{x} = \frac{1}{T}\sum_{t=1}^T x_t\)。
5. 关键点解释
为什么 SGHMC 能逃离局部极小?
- 动量项 \(p_t\):相当于物理惯性,使更新方向不仅依赖当前梯度,还积累历史梯度方向,有助于穿越平坦区域或跳出局部极小。
- 注入噪声 \(\sqrt{2\epsilon B} \zeta_t\):与摩擦项 \(-B p_t\) 平衡,确保动力学收敛到平稳分布。噪声提供随机扰动,使算法能够探索不同能量区域。
- 在非凸问题中,这种“梯度 + 动量 + 噪声”的混合机制比纯 SGD 更有可能找到全局更优解。
如何处理非光滑项?
- 近似点映射:将非光滑项从梯度更新中分离出来,在位置更新时单独处理。例如:
- 若 \(r(x) = \lambda \|x\|_1\),则 \(\text{prox}_{\epsilon r}(y) = \text{sign}(y) \max(|y| - \epsilon \lambda, 0)\)(软阈值)。
- 若 \(r(x) = \frac{\lambda}{2} \|x\|_2^2\),则 \(\text{prox}_{\epsilon r}(y) = y / (1 + \epsilon \lambda)\)。
- 这样既保留了梯度信息(来自 \(F\)),又精确处理了非光滑部分。
参数选择建议
- 步长 \(\epsilon\):需足够小以保证稳定性,通常通过试验选取(如 \(10^{-3} \sim 10^{-5}\))。
- 摩擦系数 \(B\):控制噪声与动量的平衡。较大的 \(B\) 增强耗散(更快稳定),较小的 \(B\) 保留更多探索能力。可设为 \(B = 0.01 \sim 0.1\)。
- 质量矩阵 \(M\):通常设为 \(I\),若变量尺度差异大,可设为对角矩阵调整。
6. 简单示例
假设:
\[F(x, \xi) = (x - \xi)^4, \quad \xi \sim \text{Uniform}(-2, 2), \quad r(x) = 0.1 |x| \]
目标:最小化 \(\mathbb{E}[(x - \xi)^4] + 0.1|x|\)。
随机梯度:\(g(x, \xi) = 4(x - \xi)^3\)。
近似点映射:\(\text{prox}_{\epsilon \cdot 0.1|\cdot|}(y) = \text{sign}(y) \max(|y| - 0.1\epsilon, 0)\)。
按上述算法迭代,最终 \(x_t\) 会围绕最优值(接近 \(x=0\) 附近)波动,但平均结果比纯 SGD 更稳定且更优。
7. 总结
SGHMC 通过引入物理动量和可控噪声,将随机优化问题转化为一种扩散过程的离散采样。其优势在于:
- 能有效探索非凸函数的多模态结构,避免陷入局部极小。
- 通过近似点映射自然处理非光滑正则项。
- 适用于大规模随机优化(只需小批量梯度)。
在实际应用中,需要调参(\(\epsilon, B\))并可能使用自适应步长以平衡探索与收敛。