我正在尝试编写一个函数,该函数会产生均匀分布的噪声,该噪声来自维的p范数球:
我找到了可能的圆的解决方案()(http://mathworld.wolfram.com/DiskPointPicking.html),但是我很难将其扩展为不同值。
我尝试通过仅从均匀分布中抽取随机样本并在不满足给定约束的情况下重绘来进行尝试。但是,除了它是一个丑陋的解决方案之外,它在高尺寸方面在计算上也不可行。
我正在尝试编写一个函数,该函数会产生均匀分布的噪声,该噪声来自维的p范数球:
我找到了可能的圆的解决方案()(http://mathworld.wolfram.com/DiskPointPicking.html),但是我很难将其扩展为不同值。
我尝试通过仅从均匀分布中抽取随机样本并在不满足给定约束的情况下重绘来进行尝试。但是,除了它是一个丑陋的解决方案之外,它在高尺寸方面在计算上也不可行。
Answers:
我在kjetil b halvorsen(https://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=758215)建议的论文中找到了完整的解决方案。老实说,我很难理解其背后的数学原理,但是最终的算法非常简单。如果我们有维度,则半径和范数大于:[R p
1)生成独立的随机实标量,其中是广义高斯分布(其中的幂不同指数而不是)ε 我 = ˉ ģ(1 / p ,p )ˉ ģ(μ ,σ 2)ë - | x | p p = 2
2)构造分量的向量,其中是独立的随机符号š 我 * ε 我小号我
3)生成,其中是在[0,1]区间内均匀分布的随机变量。 w
4)返回
Taeke提供了指向文章的链接,下面的文本通过具体解释2范式和1范式案例而变得更加直观。
您可以使用此结果http://mathworld.wolfram.com/HyperspherePointPicking.html
多元高斯分布变量(具有恒等协方差矩阵)仅取决于距离或平方和。
因此,均匀分布在n维超球面上。
要完成此操作,只需采样距离,即可将球上的均匀分布更改为球中的均匀分布。(或多或少与您链接的磁盘点选择示例相似)
如果仅将采样为均匀分布,则在中心附近会具有相对较高的密度(体积缩放为因此,小数点的最终会变成体积,密度更大靠近中心,并不意味着分布均匀)
相反,如果您使用从均匀分布采样的变量的第个根,则得到的是均匀分布。
在这种情况下,请从Laplace分布而不是高斯分布中采样,然后除以1-范数。所述在n维1范数球体被均匀地分布。
我没有正式的证据,只是直觉
(由于pdf与位置无关,因此,对于具有相同1范数的无穷小面积/体积,您将期望其具有相同的概率并且将其折叠到单位表面时,其相同)
但是用模拟进行测试看起来不错。
library(rmutil)
x <- abs(rlaplace(20000))
y <- abs(rlaplace(20000))
z <- abs(rlaplace(20000))
rn <- abs(x)+abs(y)+abs(z)
xi <- (x/rn)
yi <- (y/rn)
zi <- (z/rn)
plot(sqrt(0.5)*(xi-yi),
sqrt((0.5-0.5*(xi+yi))^2+zi^2),
pc=21,bg=rgb(0,0,0,0.02), col=rgb(0,0,0,0),cex=1)
距离与2范数情况相似(体积仍按缩放)。
在这种情况下,如果您希望遵循相同的原理,则需要使用(我假设)从分布中采样。这些是广义正态分布,可能与Taeke提到的分布。 G ()