gluonts.mx.distribution.lds 模块#
- class gluonts.mx.distribution.lds.LDS(emission_coeff: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol], transition_coeff: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol], innovation_coeff: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol], noise_std: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol], residuals: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol], prior_mean: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol], prior_cov: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol], latent_dim: int, output_dim: int, seq_length: int)[source]#
- 基类: - gluonts.mx.distribution.distribution.Distribution- 实现线性动力系统(LDS)作为一种分布。 - LDS 由以下公式给出 \[\begin{split}z_t = A_t l_{t-1} + b_t + \epsilon_t \\ l_t = C_t l_{t-1} + g_t \nu\end{split}\]- 其中 \[\begin{split}\epsilon_t = N(0, S_v) \\ \nu = N(0, 1)\end{split}\]- \(A_t\)、\(C_t\) 和 \(g_t\) 分别是发射、转移和创新系数。残差项记为 \(b_t\)。 - 目标 \(z_t\) 可以是 \(d\) 维的,此时 \[A_t \in R^{d \times h}, b_t \in R^{d}, C_t \in R^{h \times h}, g_t \in R^{h}\]- 其中 \(h\) 是潜在状态的维度。 - 参数
- emission_coeff – 形状为 (batch_size, seq_length, obs_dim, latent_dim) 的张量 
- transition_coeff – 形状为 (batch_size, seq_length, latent_dim, latent_dim) 的张量 
- innovation_coeff – 形状为 (batch_size, seq_length, latent_dim) 的张量 
- noise_std – 形状为 (batch_size, seq_length, obs_dim) 的张量 
- residuals – 形状为 (batch_size, seq_length, obs_dim) 的张量 
- prior_mean – 形状为 (batch_size, latent_dim) 的张量 
- prior_cov – 形状为 (batch_size, latent_dim, latent_dim) 的张量 
- latent_dim – 潜在状态的维度 
- output_dim – 输出的维度 
- seq_length – 序列长度 
- F – 
 
 - 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 模式下可用,此时可以访问分布参数的形状。 
 - kalman_filter(targets: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol], observed: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol]) Tuple[Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol], ...][source]#
- 根据观测执行卡尔曼滤波。 - 参数
- targets – 观测值,形状为 (batch_size, seq_length, output_dim) 
- observed – 标志张量,指示哪些观测值是真实的 (1.0),哪些是缺失的 (0.0) 
 
- 返回
- 张量 – 对数概率,形状为 (batch_size, seq_length) 
- 张量 – p(l_T | l_{T-1}) 的均值,其中 T 是序列长度,形状为 (batch_size, latent_dim) 
- 张量 – p(l_T | l_{T-1}) 的协方差,其中 T 是序列长度,形状为 (batch_size, latent_dim, latent_dim) 
 
 
 - log_prob(x: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol], scale: Optional[Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol]] = None, observed: Optional[Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol]] = None)[source]#
- 计算观测值的对数概率。 - 此方法也返回系统的最终状态。 - 参数
- x – 观测值,形状为 (batch_size, seq_length, output_dim) 
- scale – x 中每个序列的尺度,形状为 (batch_size, output_dim) 
- observed – 标志张量,指示哪些观测值是真实的 (1.0),哪些是缺失的 (0.0) 
 
- 返回
- 张量 – 对数概率,形状为 (batch_size, seq_length) 
- 张量 – 最终均值,形状为 (batch_size, latent_dim) 
- 张量 – 最终协方差,形状为 (batch_size, latent_dim, latent_dim) 
 
 
 - sample(num_samples: Optional[int] = None, scale: Optional[Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol]] = None) Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol][source]#
- 从 LDS 生成样本:p(z_1, z_2, ldots, z_{seq_length})。 - 参数
- num_samples – 要生成的样本数量 
- scale – x 中每个序列的尺度,形状为 (batch_size, output_dim) 
 
- 返回
- 样本,形状为 (num_samples, batch_size, seq_length, output_dim) 
- 返回类型
- 张量 
 
 - sample_marginals(num_samples: Optional[int] = None, scale: Optional[Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol]] = None) Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol][source]#
- 从边际分布 p(z_t), t = 1, ldots, seq_length 生成样本。 - 参数
- num_samples – 要生成的样本数量 
- scale – x 中每个序列的尺度,形状为 (batch_size, output_dim) 
 
- 返回
- 样本,形状为 (num_samples, batch_size, seq_length, output_dim) 
- 返回类型
- 张量 
 
 
- class gluonts.mx.distribution.lds.LDSArgsProj(output_dim: int, noise_std_bounds: gluonts.mx.distribution.lds.ParameterBounds, innovation_bounds: gluonts.mx.distribution.lds.ParameterBounds)[source]#
- 基类: - mxnet.gluon.block.HybridBlock- hybrid_forward(F, x: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol]) Tuple[Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol], Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol], Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol]][source]#
- 覆盖方法以构建此 Block 的符号图。 - 参数
- x (Symbol 或 NDArray) – 第一个输入张量。 
- *args (Symbol 列表 或 NDArray 列表) – 额外的输入张量。 
 
 
 
- gluonts.mx.distribution.lds.kalman_filter_step(F, target: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol], prior_mean: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol], prior_cov: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol], emission_coeff: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol], residual: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol], noise_std: Union[mxnet.ndarray.ndarray.NDArray, mxnet.symbol.symbol.Symbol], latent_dim: int, output_dim: int)[source]#
- 卡尔曼滤波的一个步骤。 - 此函数根据线性系统系数、先验状态(均值和方差)以及观测值计算滤波后的状态(均值和协方差)。 - 参数
- F – 
- target – 系统输出的观测值,形状为 (batch_size, output_dim) 
- prior_mean – 潜在状态的先验均值,形状为 (batch_size, latent_dim) 
- prior_cov – 潜在状态的先验协方差,形状为 (batch_size, latent_dim, latent_dim) 
- emission_coeff – 发射系数,形状为 (batch_size, output_dim, latent_dim) 
- residual – 残差分量,形状为 (batch_size, output_dim) 
- noise_std – 输出噪声的标准差,形状为 (batch_size, output_dim) 
- latent_dim – 潜在状态向量的维度 
 
- 返回
- 张量 – 滤波后的均值,形状为 (batch_size, latent_dim) 
- 张量 – 滤波后的协方差,形状为 (batch_size, latent_dim, latent_dim) 
- 张量 – 对数概率,形状为 (batch_size, )