Beta

class paddle.distribution. Beta ( alpha: float | Tensor, beta: float | Tensor ) [source]

Beta distribution parameterized by alpha and beta.

In probability theory and statistics, the beta distribution is a family of continuous probability distributions defined on the interval [0, 1] parameterized by two positive shape parameters, denoted by alpha and beta, that appear as exponents of the random variable and control the shape of the distribution. The generalization to multiple variables is called a Dirichlet distribution.

The probability density function (pdf) is

\[f(x; \alpha, \beta) = \frac{1}{B(\alpha, \beta)}x^{\alpha-1}(1-x)^{\beta-1}\]

where the normalization, B, is the beta function,

\[B(\alpha, \beta) = \int_{0}^{1} t^{\alpha - 1} (1-t)^{\beta - 1}\mathrm{d}t\]
Parameters
  • alpha (float|Tensor) – Alpha parameter. It supports broadcast semantics. The value of alpha must be positive. When the parameter is a tensor, it represents multiple independent distribution with a batch_shape(refer to Distribution ).

  • beta (float|Tensor) – Beta parameter. It supports broadcast semantics. The value of beta must be positive(>0). When the parameter is tensor, it represent multiple independent distribution with a batch_shape(refer to Distribution ).

Examples

>>> import paddle

>>> # scale input
>>> beta = paddle.distribution.Beta(alpha=0.5, beta=0.5)
>>> print(beta.mean)
Tensor(shape=[], dtype=float32, place=Place(cpu), stop_gradient=True,
0.50000000)

>>> print(beta.variance)
Tensor(shape=[], dtype=float32, place=Place(cpu), stop_gradient=True,
0.12500000)

>>> print(beta.entropy())
Tensor(shape=[], dtype=float32, place=Place(cpu), stop_gradient=True,
-0.24156499)

>>> # tensor input with broadcast
>>> beta = paddle.distribution.Beta(alpha=paddle.to_tensor([0.2, 0.4]), beta=0.6)
>>> print(beta.mean)
Tensor(shape=[2], dtype=float32, place=Place(cpu), stop_gradient=True,
[0.25000000, 0.40000001])

>>> print(beta.variance)
Tensor(shape=[2], dtype=float32, place=Place(cpu), stop_gradient=True,
[0.10416666, 0.12000000])

>>> print(beta.entropy())
Tensor(shape=[2], dtype=float32, place=Place(cpu), stop_gradient=True,
[-1.91923141, -0.38095081])
property mean : Tensor

Mean of beta distribution.

property variance : Tensor

Variance of beat distribution

prob ( value: Tensor ) Tensor

prob

Probability density function evaluated at value

Parameters

value (Tensor) – Value to be evaluated.

Returns

Probability.

Return type

Tensor

log_prob ( value: Tensor ) Tensor

log_prob

Log probability density function evaluated at value

Parameters

value (Tensor) – Value to be evaluated

Returns

Log probability.

Return type

Tensor

sample ( shape: Sequence[int] = [] ) Tensor

sample

Sample from beta distribution with sample shape.

Parameters

shape (Sequence[int], optional) – Sample shape.

Returns

Tensor, Sampled data with shape sample_shape + batch_shape + event_shape.

entropy ( ) Tensor

entropy

Entropy of dirichlet distribution

Returns

Entropy.

Return type

Tensor

property batch_shape : Sequence[int]

Returns batch shape of distribution

Returns

batch shape

Return type

Sequence[int]

property event_shape : Sequence[int]

Returns event shape of distribution

Returns

event shape

Return type

Sequence[int]

kl_divergence ( other: Distribution ) Tensor [source]

kl_divergence

The KL-divergence between self distributions and other.

probs ( value: Tensor ) Tensor

probs

Probability density/mass function.

Note

This method will be deprecated in the future, please use prob instead.

rsample ( shape: Sequence[int] = [] ) Tensor

rsample

reparameterized sample