ContinuousBernoulli¶
- class paddle.distribution. ContinuousBernoulli ( probs, lims=(0.499, 0.501) ) ¶
ContinuousBernoulli 是一种定义在 [0,1] 区间上的连续型概率分布,参数 probs
描述了其概率密度函数的形状。它可以被视为连续型的伯努利分布。 出自 The continuous Bernoulli: fixing a pervasive error in variational autoencoders.
其概率密度函数(pdf)为:
其中:
\(x\) 在 [0, 1] 区间内是连续的。
\(\lambda\) 表示事件发生的概率。
\(C(\lambda)\) 表示归一化常数因子,表达式如下:
参数¶
probs (int|float|Tensor) - 即上述公式中 \(\lambda\) 参数,在 [0, 1] 内,刻画 ContinuousBernoulli 分布的 概率密度函数的形状。如果
probs
的输入数据类型是 int 或 float ,则会被转换为数据类型为 paddle 全局默认数据类型的 1-D Tensor。lims (tuple,可选) - 表示概率计算非稳定区域的区域宽度,非稳定区域的概率计算使用泰勒展开做近似。默认值为 (0.499, 0.501)。
代码示例¶
COPY-FROM: paddle.distribution.ContinuousBernoulli
方法¶
log_prob(value)¶
计算 value 的对数概率。
参数
value (Tensor) - 待计算值。
返回
Tensor,value
的对数概率。数据类型与 self.probs 相同。
cdf(value)¶
计算 value
的累计分布 quantile 值。
参数
value (Tensor) - 待计算值。
返回
Tensor: value
的累积分布函数对应的 quantile 值。数据类型与 self.probs 相同。
icdf(value)¶
计算 value 的逆累计分布值。
参数
value (Tensor) - 待计算 quantile。
返回
Tensor,ContinuousBernoulli 随机变量在对应 quantile 下的值。数据类型与 self.probs 相同。
sample(shape=())¶
从 ContinuousBernoulli 分布中生成满足特定形状的样本数据。最终生成样本形状为 shape+batch_shape
。
参数
shape (Sequence[int],可选):采样次数。
返回
Tensor,样本数据。其维度为 \(\text{sample shape} + \text{batch shape}\) 。
rsample(shape=())¶
重参数化采样,生成指定维度的样本。最终生成样本形状为 shape+batch_shape
。
参数
shape (Sequence[int],可选):采样次数。
返回
Tensor:样本数据。其维度为 \(\text{sample shape} + \text{batch shape}\) 。
entropy()¶
计算 ContinuousBernoulli 分布的信息熵。
返回
连续伯努利分布的信息熵。
kl_divergence(other)¶
相对于另一个连续伯努利分布的 KL 散度,两个分布需要有相同的 \(\text{batch shape}\)。
参数
other (ContinuousBernoulli) - 输入的另一个连续伯努利分布。
返回
相对于另一个连续伯努利分布的 KL 散度。