从p范数球()产生均匀噪声


11

我正在尝试编写一个函数,该函数会产生均匀分布的噪声,该噪声来自维的p范数球:n

||x||pr

我找到了可能的圆的解决方案()(http://mathworld.wolfram.com/DiskPointPicking.html),但是我很难将其扩展为不同值。p=2p

我尝试通过仅从均匀分布中抽取随机样本并在不满足给定约束的情况下重绘来进行尝试。但是,除了它是一个丑陋的解决方案之外,它在高尺寸方面在计算上也不可行。


1
在这里可以找到答案,对于使用欧几里德距离(p = 2)具有n个维的球体math.stackexchange.com/questions/87230/… 但是我仍然不确定如何将其用于不同的p范数,我可以只需以不同的距离关系来更改使用的欧几里得距离?
塔克·德·汉

2
有大量的论文,但大多数是落后付费专区: link.springer.com/article/10.1007/s00184-011-0360-x 或看 google.com/...
HALVORSEN的Kjetil b

3
关于什么量度标准的“统一”?毕竟,如果您使用的是球,为什么会引起欧几里得体积的关注?p
ub

@whuber,我实在不确定,因为作业中并未明确说明这一点,但是我希望使用p范数,因为在这种情况下,任何其他指标似乎都是任意的。
塔克·德·汉

1
问题来自机器学习任务;“问题是在204个维度上的两类分类问题。小型带标签的训练集每类有50个样本。未标记的数据提供了20,000个额外的样本。但是,这些样本遭受了某种破坏。我们仅有的关于这种破坏的其他信息是,它是加性均匀噪声,并且噪声来自固定的p范数球,其中和半径都是未知的。” 我需要在未标记的数据上获得最低的错误率。p - [R||x||prpr
Taeke de Haan

Answers:


5

我在kjetil b halvorsen(https://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=758215)建议的论文中找到了完整的解决方案。老实说,我很难理解其背后的数学原理,但是最终的算法非常简单。如果我们有维度,则半径和范数大于:[R pnrp

1)生成独立的随机实标量,其中是广义高斯分布(其中的幂不同指数而不是)ε = ˉ ģ1 / p p ˉ ģμ σ 2ë - | x | p p = 2nεi=G¯(1/p,p)G¯(μ,σ2)e|x|pp=2

2)构造分量的向量,其中是独立的随机符号š * ε 小号xsiεisi

3)生成,其中是在[0,1]区间内均匀分布的随机变量。 wz=w1/nw

4)返回y=rzx||x||p


2
为了完整起见,您能否说出答案中的是什么?G
斯特凡·洛朗

已更新
Taeke de Haan

2
G是广义的高斯分布(在指数具有不同的幂,而不仅仅是)。这将使向量分布取决于p范数,该分布由多个独立的广义高斯分布变量,该变量是单个pdf的乘积。 p = 2 x x i f xe | | x | p pe|x|pp=2xxi
f(x)e|x|pp
Sextus Empiricus

@MartijnWeterings非常感谢,它已经更新。
塔克·德·汉

谢谢。有关信息,R包pgnorm中有一个此分布的采样器。
斯特凡·洛朗

3

使用均匀分布的多元变量

Taeke提供了指向文章的链接,下面的文本通过具体解释2范式和1范式案例而变得更加直观。

2-范数x2r

样本方向

您可以使用此结果http://mathworld.wolfram.com/HyperspherePointPicking.html

多元高斯分布变量(具有恒等协方差矩阵)仅取决于距离或平方和。X

f(X1,X2,...,Xn)=1in12πe12xi2=12πe121inxi2

因此,均匀分布在n维超球面上。XX2


采样距离

要完成此操作,只需采样距离,即可将球上的均匀分布更改为球中的均匀分布。(或多或少与您链接的磁盘点选择示例相似)

如果仅将采样为均匀分布,则在中心附近会具有相对较高的密度(体积缩放为因此,小数点的最终会变成体积,密度更大靠近中心,并不意味着分布均匀)rrnrrn

相反,如果您使用从均匀分布采样的变量的第个根,则得到的是均匀分布。n

1范数x1r

方向

在这种情况下,请从Laplace分布而不是高斯分布中采样,然后除以1-范数。所述在n维1范数球体被均匀地分布。XX|X|1

我没有正式的证据,只是直觉

(由于pdf与位置无关,因此,对于具有相同1范数的无穷小面积/体积,您将期望其具有相同的概率并且将其折叠到单位表面时,其相同)f(x)dVf(x)dA

但是用模拟进行测试看起来不错。

模拟挑选20000个值均匀分布

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范数情况相似(体积仍按缩放)。rn

p范数xpr

在这种情况下,如果您希望遵循相同的原理,则需要使用(我假设)从分布中采样。这些是广义正态分布,可能与Taeke提到的分布。 G f(x)e|x|pG()


1
您能否详细说明如何得出单位向量是均匀分布的?顺便说一句,我相信你想坐次方根。p
ub

1
感谢您的帮助,我在这里找到了完整的解决方案:ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=758215)。老实说,我很难理解其背后的数学原理,但是最终的算法非常简单。如果我们有维度,则半径和范数大于:1)生成n个独立的随机实标量E_i = G(1 / p,p)2)构造分量s_i * E_i的向量x,其中E_i是独立的随机符号3)生成,其中是在[0,1]区间内均匀分布的随机变量。4)returnr p z = w 1 / n w y = r z xnrpz=w1/nwy=rzx||x||p
Taeke de Haan 2018年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.