低差异序列中的加扰和相关性 (Halton/Sobol)

机器算法验证 假设检验 蒙特卡洛 随机生成 随机性
2022-02-15 05:12:38

我目前正在做一个项目,我使用低差异/准随机点集生成随机值,例如 Halton 和 Sobol 点集。这些本质上是d模拟 a 的维向量d维统一(0,1)变量,但具有更好的传播。从理论上讲,它们应该有助于减少我在项目另一部分的估计的方差。

不幸的是,我一直在与他们合作时遇到问题,而且很多关于他们的文献都很密集。因此,我希望从有经验的人那里获得一些见解,或者至少想出一种方法来凭经验评估正在发生的事情:

如果您与他们合作过:

  • 究竟什么是加扰?它对生成的点流有什么影响?特别是,当生成的点的维度增加时会产生影响吗?

  • 为什么如果我用 MatousekAffineOwen 加扰生成两个 Sobol 点流,我会得到两个不同的点流。当我对 Halton 点使用反向基数加扰时,为什么不是这种情况?这些点集是否存在其他加扰方法 - 如果有,是否有它们的 MATLAB 实现?

如果您没有与他们合作过:

  • 说我有n序列S1,S2,,Sn假设是随机数,我应该使用什么类型的统计数据来表明它们彼此不相关?什么号码n我需要证明我的结果具有统计学意义吗?另外,如果我有,我怎么能做同样的事情n序列S1,S2,,Snd维随机[0,1]载体?

红衣主教回答的后续问题

  1. 从理论上讲,我们可以将任何加扰方法与任何低差异序列配对吗?MATLAB 只允许我在 Halton 序列上应用反向基数加扰,我想知道这只是一个实现问题还是一个兼容性问题。

  2. 我正在寻找一种方法,可以让我生成两个彼此不相关的 (t,m,s) 网络。MatouseAffineOwen 会允许我这样做吗?如果我使用确定性加扰算法并简单地决定选择 k 是素数的每个“第 k 个”值,怎么样?

1个回答

加扰通常是应用于(t,m,s)使用一些基础的数字网络b. Sobol' 网使用b=2,例如,虽然 Faure 网络使用素数b.

加扰的目的是(希望)获得更均匀的分布,特别是如果您只能使用少量点。一个很好的例子来了解为什么这个工作是看 Halton 序列d=2并选择两个“较大”的素数,例如 29 和 31。使用标准 Halton 序列,正方形会非常缓慢地填充。但是,通过加扰,它可以更快地更均匀地填充。这是使用确定性加扰方法绘制的前几百个点的图。

在此处输入图像描述

最基本的加扰形式本质上是对基数进行置换b原始数字的扩展n点之间。有关更多详细信息,这里有一个明确的说明。

加扰的好处是,如果你从一个(t,m,s)上网并打乱它,你会得到一个(t,m,s)净退。因此,涉及到一个闭包属性。既然你想利用一个理论的好处(t,m,s)net 首先,这是非常可取的。

关于加扰的类型,反向基数加扰是确定性加扰。Matousek 加扰算法是一种随机加扰,再次以保持闭包属性的方式完成。如果你在调用加扰函数之前设置了随机种子,你应该总是得到相同的网络。

您可能还对MinT 项目感兴趣。