随机变量的变换的随机逼近方法的Kiefer-Wolfowitz算法
随机逼近是一种在噪声观测下寻找函数极值点(零点)的迭代方法。Kiefer-Wolfowitz算法是随机逼近在最优化问题中的经典应用,专门用于寻找回归函数的最大值点(或最小值点)。
1. 问题起源与核心思想
想象一个“黑箱”函数 \(M(\theta)\),我们无法直接计算它的值或导数,但可以对任意给定的输入 \(\theta\) 进行“实验”,得到一个带有随机噪声的观测 \(Y\),满足 \(E[Y | \theta] = M(\theta)\)。我们的目标是找到使 \(M(\theta)\) 达到最大值的 \(\theta^*\)。
- 核心困难:无法直接计算梯度 \(M'(\theta)\)。
- KW算法的核心思想:利用有限差分来近似梯度,即使这个近似值本身也带有噪声,然后结合Robbins-Monro类型的随机迭代来逼近最优点。
2. 算法步骤详解(以一维参数θ为例)
假设我们处理一维参数 \(\theta \in \mathbb{R}\),目标是最大化 \(M(\theta)\)。Kiefer-Wolfowitz算法定义迭代序列如下:
\[\theta_{n+1} = \theta_n + a_n \cdot \widehat{g}_n(\theta_n) \]
其中:
- \(\theta_n\) 是第 \(n\) 步迭代的参数估计值。
- \(a_n > 0\) 是增益序列(或步长序列),它控制着迭代的步幅,通常要求满足条件:\(\sum a_n = \infty\) 和 \(\sum a_n^2 < \infty\)。这确保了算法既能充分探索空间(\(\sum a_n = \infty\) 保证收敛),又能最终稳定下来(\(\sum a_n^2 < \infty\) 抑制噪声累积)。常见选择是 \(a_n = c/n\) 或 \(a_n = c/n^\gamma, \gamma \in (1/2, 1]\)。
- \(\widehat{g}_n(\theta_n)\) 是当前点 \(\theta_n\) 处梯度的随机有限差分估计量。其构造是关键。
随机梯度估计的构造:
- 在点 \(\theta_n\) 附近选择一个小扰动 \(c_n > 0\)。这个序列也趋于零,但速度通常慢于 \(a_n\),例如 \(c_n = n^{-1/3}\)。
- 在点 \(\theta_n + c_n\) 和 \(\theta_n - c_n\) 处分别进行一次观测,得到:
\[Y_n^+ = M(\theta_n + c_n) + \epsilon_{n}^+ \]
\[Y_n^- = M(\theta_n - c_n) + \epsilon_{n}^- \]
其中 \(\epsilon_n^+\) 和 \(\epsilon_n^-\) 是均值为0、相互独立的观测噪声。
3. 则对称有限差分估计的梯度为:
\[\widehat{g}_n(\theta_n) = \frac{Y_n^+ - Y_n^-}{2c_n} \]
这个估计的期望是:
\[E[\widehat{g}_n(\theta_n) | \theta_n] = \frac{M(\theta_n + c_n) - M(\theta_n - c_n)}{2c_n} \approx M'(\theta_n) \]
当 \(c_n \to 0\) 时,这个近似趋于真实的梯度 \(M'(\theta_n)\)。然而,由于分母是 \(c_n\),观测噪声 \(\epsilon\) 会被放大 \(1/c_n\) 倍,这使得迭代过程是“有偏但低方差”的(如果 \(c_n\) 太小,方差会爆炸;太大则偏差大)。因此,\(c_n\) 的选择需要权衡偏差与方差。
3. 算法流程总结与直观解释
- 初始化:选择初始猜测 \(\theta_0\),步长序列 \(\{a_n\}\),扰动序列 \(\{c_n\}\)。
- 迭代:对于 \(n=0,1,2,\dots\)
- 在 \(\theta_n + c_n\) 和 \(\theta_n - c_n\) 两点进行观测,得到 \(Y_n^+\) 和 \(Y_n^-\)。
- 计算梯度估计:\(\widehat{g}_n = (Y_n^+ - Y_n^-) / (2c_n)\)。
- 更新参数:\(\theta_{n+1} = \theta_n + a_n \widehat{g}_n\)。
- 直观解释:算法像一个“瞎子爬山”。每次它向前后各探一小步(步长为 \(c_n\)),通过比较两处的高度(观测值)来估计当前位置的“坡度”方向(梯度符号)。然后,它就朝着估计的上坡方向迈出一步(步长为 \(a_n\))。随着迭代进行,探步越来越小(\(c_n \to 0\))以提高梯度估计的精度,而迈步也越来越小(\(a_n \to 0\))以稳定在峰值附近。
4. 扩展到多维参数与最小化问题
- 多维情况:当 \(\theta\) 是 \(p\) 维向量时,需要对每个分量分别进行有限差分估计。对于第 \(i\) 个分量,计算:
\[\widehat{g}_n^{(i)}(\theta_n) = \frac{Y_n(\theta_n + c_n e_i) - Y_n(\theta_n - c_n e_i)}{2c_n} \]
其中 \(e_i\) 是第 \(i\) 个单位向量。每次迭代需要进行 \(2p\) 次函数观测,然后更新所有分量:\(\theta_{n+1} = \theta_n + a_n \widehat{g}_n\)。
- 最小化问题:如果要最小化函数 \(L(\theta)\),只需将更新公式中的“+”改为“-”:
\[\theta_{n+1} = \theta_n - a_n \widehat{g}_n(\theta_n) \]
5. 收敛性与理论保证
在一定的正则性条件下(如 \(M(\theta)\) 是单峰的、梯度满足利普希茨连续、噪声序列独立同分布且具有有限方差等),可以证明Kiefer-Wolfowitz算法产生的序列 \(\theta_n\) 以概率1收敛到最大值点 \(\theta^*\):
\[ \theta_n \xrightarrow{a.s.} \theta^* \quad \text{as} \ n \to \infty. \]
进一步,在更严格的条件下,还可以建立其渐近正态性:
\[ \sqrt{n}(\theta_n - \theta^*) \xrightarrow{d} N(0, V) \]
其中渐近方差 \(V\) 依赖于函数 \(M\) 的二阶导数(Hessian矩阵)和噪声的协方差结构。
6. 与Robbins-Monro算法的比较与联系
- 目标不同:
- Robbins-Monro算法:求解方程 \(h(\theta) = 0\),其中观测是 \(h(\theta)\) 的带噪声版本。
- Kiefer-Wolfowitz算法:解决最优化问题 \(\max_\theta M(\theta)\)。它通过有限差分将梯度 \(M'(\theta)\) 的估计问题转化为一个类似Robbins-Monro的迭代格式(求解 \(M'(\theta) = 0\))。
- 计算成本:Kiefer-Wolfowitz每次迭代至少需要两次函数观测(一维)来估计梯度,而Robbins-Monro通常只需要一次。因此,KW算法计算量更大。
- 方差与偏差权衡:KW算法引入了因有限差分近似带来的偏差(由 \(c_n\) 控制),这是RM算法所没有的。
7. 应用与局限性
- 应用场景:适用于仿真优化、参数校准、自适应控制、机器学习中的黑箱函数优化等场景,特别是当目标函数无法求导、计算成本高昂或只能通过随机实验观测时。
- 主要局限性:
- 收敛速度较慢:由于需要权衡偏差、方差以及有限的观测次数,其收敛速度通常慢于使用精确梯度的优化算法(如梯度下降)。
- 高维灾难:在多维情况下,每次迭代需要 \(2p\) 次观测,当维度 \(p\) 很高时计算成本巨大。
- 参数敏感:步长序列 \(\{a_n\}\) 和扰动序列 \(\{c_n\}\) 的选择对算法性能影响很大,且最优选择通常依赖于未知的问题特性。
总结:Kiefer-Wolfowitz算法是随机逼近理论在优化领域的奠基性成果。它巧妙地利用带噪声的有限差分来估计梯度,并结合衰减步长的随机迭代,为在随机环境中寻找函数极值点提供了一个理论严谨且可实现的框架。尽管存在计算成本和收敛速度的局限,但其思想深刻影响了后续的随机优化方法。