如何从日志空间中的离散(分类)分布中采样?


12

假设我有一个由向量定义的离散分布这样将以概率来绘制类别。然后,我发现分布中的某些值是如此之小,以至于淹没了我计算机的浮点数表示形式,因此,为了补偿,我在对数空间中进行了所有计算。现在我有一个日志空间向量。θ0,θ1,...,θN0θ0log(θ0),log(θ1),...,log(θN)

是否可以从分布中采样,以使原始概率成立(类别是用概率绘制的),而又不会离开对数空间?换句话说,如何从该分布中采样而不会出现下溢?iθi

Answers:


15

可以使用Gumbel-max技巧从给定对数概率的类别分布中进行采样而不会留下对数空间。这个想法是,如果给您未标准化的对数概率,则可以使用softmax函数将其转换为适当的概率α1,,αk

pi=exp(αi)jexp(αj)

然后从这样的分布中采样,可以使用以下事实:如果是从位置为参数化的标准Gumbel分布中获取的独立采样,g1,,gkG(0)m

F(Gg)=exp(exp(g+m))

然后可以显示(请参阅下面的参考)

argmaxi{gi+αi}exp(αi)jexp(αj)maxi{gi+αi}G(logiexp{αi})

我们可以拿

z=argmaxi{gi+αi}

作为以概率为参数的分类分布的样本。Ryan AdamsLaurent Dinh在博客条目中对此方法进行了更详细的描述 ,此外Chris J. Maddison,Daniel Tarlow和Tom Minka 在神经信息处理系统会议(2014)上发表了演讲幻灯片),并撰写了一篇题为A *的论文。抽样概括了这些想法(另见Maddison,2016; Maddison,Mnih和Teh,2016; Jang和Poole,2016),提到耶洛特(1977)提到他是最早描述此房产的人之一。p1,,pk

这是很容易用它来实现逆变换采样通过取其中是从均匀分布借鉴了。从分类分布中进行采样当然不是最省时的算法,但可以让您留在日志空间中,这在某些情况下可能是一个优势。gi=log(logui)ui(0,1)


Maddison,CJ,Tarlow,D.和Minka,T.(2014)。A *采样。[输入:]神经信息处理系统的进展(pp。3086-3094)。

耶洛特(Yellott,JI)(1977)。卢斯的选择公理,瑟斯顿的比较判断理论与双指数分布之间的关系。数学心理学杂志,15(2),109-144。

Maddison,CJ,Mnih,A.和Teh,YW(2016)。具体分布:离散随机变量的连续松弛。arXiv预印本arXiv:1611.00712。

Jang,E.,Gu,S.,&Poole,B.(2016年)。使用Gumbel-Softmax进行分类重新参数化。arXiv预印本arXiv:1611.01144。

麦迪逊(CJ)(2016)。蒙特卡洛的Poisson过程模型。arXiv预印本arXiv:1602.05986。


5

这是避免下溢/上溢的一种常用方法。

令。m=maxilog(θi)

令。θi=exp(log(θi)m)

您可以从进行采样。θ=[θ1,θ2,...]


1
只要任何一个值和最大值之间的差异都不太大,就exp可以使用该格式,当这种情况发生时,容器可能会失去精度,从而导致分布像[1.0,3.45e-66,0.0,7.54e-121] 。即使在那种情况下,我也想提供一些可靠的答案。但是目前,我支持您的回答。
乔什·汉森
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.