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

机器算法验证 随机生成
2022-03-20 02:25:13

假设我有一个由向量​​定义的离散分布θ0,θ1,...,θN这样的类别0将被概率绘制θ0等等。然后我发现分布中的一些值非常小,以至于它们下溢了我计算机的浮点数表示,因此,为了补偿,我在对数空间中进行了所有计算。现在我有一个对数空间向量log(θ0),log(θ1),...,log(θN).

是否可以从分布中抽样,使得原始概率成立(类别i是用概率绘制的θi) 但从未离开日志空间?换句话说,我如何在没有下溢的情况下从这个分布中采样?

2个回答

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

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

然后从这样的分布中取样,你可以使用这样一个事实,如果g1,,gkG(0)是从按位置参数化的标准 Gumbel 分布中提取的独立样本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 年),他们提到 Yellott(1977 年)提到他是最先描述该属性的人之一。p1,,pk

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


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

吉耶洛特 (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 年)。蒙特卡洛的泊松过程模型。arXiv 预印本 arXiv:1602.05986。

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

m=maxilog(θi)

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

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