如何从 Lua/Torch 中的多元高斯抽取样本

How to draw samples from a multivariate Gaussian in Lua/Torch

我发现 Torch 没有任何内置函数来为给定所需协方差矩阵的多元高斯分布绘制样本。谁能告诉我如何使用所需的协方差矩阵从多元高斯分布中抽取样本?

这是我的尝试:

我在终端中使用 luarocks install randomkithere 安装了 randomkit 包。但是,当我在 Lua 中执行 require 'randomkit' 时,我找不到 multivariate_normal 函数作为 randomkit 的元素之一。我做错了什么吗?

您可以使用 torch-distributions 包。要安装它,运行 在终端中输入以下命令:

luarocks install https://raw.github.com/jucor/torch-distributions/master/distributions-0-0.rockspec

下面是 lua 中的一个工作示例,用于从多元正态分布中抽取样本:

require 'distributions'
mu = torch.Tensor({10, 0})
sigma = torch.eye(2)
sample = distributions.mvn.rnd(mu, sigma) -- a sample from the distribution