gluonts.mx.distribution.lowrank_multivariate_gaussian 模块#
- class gluonts.mx.distribution.lowrank_multivariate_gaussian.LowrankMultivariateGaussian(dim: int, rank: int, mu: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol], D: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol], W: Optional[Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol]] = None)[source]#
- 基类: - gluonts.mx.distribution.distribution.Distribution- 多元高斯分布,其协方差矩阵参数化为对角矩阵和一个低秩矩阵之和。 \[\Sigma = D + W W^T\]- 当 W = None 时,协方差矩阵是对角矩阵。 - 该实现深受 Pytorch 的启发: https://github.com/pytorch/pytorch/blob/master/torch/distributions/lowrank_multivariate_normal.py。 - 计算 log_prob 的复杂度为每个元素 \(O(dim * rank + rank^3)\)。 - 参数
- dim – 分布支持的维度 
- rank – W 的秩 
- mu – 均值张量,形状为 (…, dim) 
- D – 协方差矩阵中的对角项,形状为 (…, dim) 
- W – 协方差矩阵中的低秩因子,形状为 (…, dim, rank) 可选;如果未提供,协方差矩阵仅为对角矩阵。 
 
 - property F#
 - arg_names: Tuple#
 - property batch_shape: Tuple#
- 分布所考虑的事件集合的布局。 - 调用分布的 sample() 方法会生成一个形状为 batch_shape + event_shape 的张量,对该样本计算 log_prob(或更一般地,loss)会生成一个形状为 batch_shape 的张量。 - 此属性通常仅在 mx.ndarray 模式下可用,此时可以访问分布参数的形状。 
 - property event_dim: int#
- 事件维度的数量,即 event_shape 元组的长度。 - 对于标量分布,此值为 0;对于向量分布,此值为 1;对于矩阵分布,此值为 2;以此类推。 
 - property event_shape: Tuple#
- 分布所考虑的每个独立事件的形状。 - 例如,标量分布的 event_shape = (),向量分布的 event_shape = (d, ),其中 d 是向量的长度,矩阵分布的 event_shape = (d1, d2),以此类推。 - 调用分布的 sample() 方法会生成一个形状为 batch_shape + event_shape 的张量。 - 此属性通常仅在 mx.ndarray 模式下可用,此时可以访问分布参数的形状。 
 - classmethod fit(F, samples: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol], rank: int = 0) gluonts.mx.distribution.distribution.Distribution[source]#
- 通过对给定数据拟合参数,返回一个 LowrankMultivariateGaussian 实例。目前仅支持 rank = 0 的特殊情况。 - 参数
- F – 
- samples – 形状为 (num_samples, batch_size, seq_len, target_dim) 的张量 
- rank – W 的秩 
 
- 返回类型
- LowrankMultivariateGaussian 类型的分布实例。 
 
 - is_reparameterizable = True#
 - log_prob(x: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol]) Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol][source]#
- 计算分布在 x 处的对数密度。 - 参数
- x – 形状为 (*batch_shape, *event_shape) 的张量。 
- 返回
- 形状为 batch_shape 的张量,其中包含 x 中每个事件的分布对数密度。 
- 返回类型
- 张量 
 
 - property mean: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol]#
- 包含分布均值的张量。 
 - sample_rep(num_samples: typing.Optional[int] = None, dtype=<class 'numpy.float32'>) Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol][source]#
- 从多元高斯分布中抽取样本 \[s = \mu + D u + W v,\]- 其中 \(u\) 和 \(v\) 是标准正态样本。 - 参数
- num_samples – 要抽取的样本数量。 
- dtype – 样本的数据类型。 
 
- 返回类型
- 形状为 (num_samples, …, dim) 的张量 
 
 - property variance: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol]#
- 包含分布方差的张量。 
 
- class gluonts.mx.distribution.lowrank_multivariate_gaussian.LowrankMultivariateGaussianOutput(dim: int, rank: int, sigma_init: float = 1.0, sigma_minimum: float = 0.001)[source]#
- 基类: - gluonts.mx.distribution.distribution_output.DistributionOutput- args_dim: Dict[str, int]#
 - distr_cls: type#
 - distribution(distr_args, loc=None, scale=None, **kwargs) gluonts.mx.distribution.distribution.Distribution[source]#
- 构建关联的分布,给定构造函数参数集合以及可选的尺度张量。 - 参数
- distr_args – 底层 Distribution 类型的构造函数参数。 
- loc – 可选张量,与结果分布的 batch_shape+event_shape 具有相同的形状。 
- scale – 可选张量,与结果分布的 batch_shape+event_shape 具有相同的形状。 
 
 
 - domain_map(F, mu_vector, D_vector, W_vector=None)[source]#
- 参数
- F – 
- mu_vector – 形状为 (…, dim) 的张量 
- D_vector – 形状为 (…, dim) 的张量 
- W_vector – 形状为 (…, dim * rank ) 的张量 
 
- 返回
- 一个包含张量 mu, D 和 W 的元组,它们的形状分别为 (…, dim), (…, dim) 和 (…, dim, rank)。 
- 返回类型
- 元组 
 
 - property event_shape: Tuple#
- 此对象构建的分布所考虑的每个独立事件的形状。 
 - get_args_proj(prefix: Optional[str] = None) gluonts.mx.distribution.distribution_output.ArgProj[source]#
 
- gluonts.mx.distribution.lowrank_multivariate_gaussian.capacitance_tril(F, rank: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol], W: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol], D: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol]) Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol][source]#
- 参数
- F – 
- rank – 
- W ((..., dim, rank)) – 
- D ((..., dim)) – 
 
- 返回类型
- 电容矩阵 \(I + W^T D^{-1} W\) 
 
- gluonts.mx.distribution.lowrank_multivariate_gaussian.log_det(F, batch_D: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol], batch_capacitance_tril: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol]) Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol][source]#
- 使用矩阵行列式引理。 \[\log|D + W W^T| = \log|C| + \log|D|,\]- 其中 \(C\) 是电容矩阵 \(I + W^T D^{-1} W\),用于计算对数行列式。 - 参数
- F – 
- batch_D – 
- batch_capacitance_tril – 
 
 
- gluonts.mx.distribution.lowrank_multivariate_gaussian.lowrank_log_likelihood(rank: int, mu: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol], D: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol], W: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol], x: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol]) Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol][source]#
- gluonts.mx.distribution.lowrank_multivariate_gaussian.mahalanobis_distance(F, W: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol], D: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol], capacitance_tril: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol], x: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol]) Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol][source]#
- 使用 Woodbury 矩阵恒等式。 \[(W W^T + D)^{-1} = D^{-1} - D^{-1} W C^{-1} W^T D^{-1},\]- 其中 \(C\) 是电容矩阵 \(I + W^T D^{-1} W\),用于计算平方马氏距离 \(x^T (W W^T + D)^{-1} x\)。 - 参数
- F – 
- W – (…, dim, rank) 
- D – (…, dim) 
- capacitance_tril – (…, rank, rank) 
- x – (…, dim)