R^k
R/distributions.R
tfd_vector_exponential_diag.Rd
The vector exponential distribution is defined over a subset of R^k
, and
parameterized by a (batch of) length-k
loc
vector and a (batch of) k x k
scale
matrix: covariance = scale @ scale.T
, where @
denotes
matrix-multiplication.
tfd_vector_exponential_diag( loc = NULL, scale_diag = NULL, scale_identity_multiplier = NULL, validate_args = FALSE, allow_nan_stats = TRUE, name = "VectorExponentialDiag" )
loc | Floating-point Tensor. If this is set to NULL, loc is
implicitly 0. When specified, may have shape |
---|---|
scale_diag | Non-zero, floating-point Tensor representing a diagonal
matrix added to scale. May have shape |
scale_identity_multiplier | Non-zero, floating-point Tensor representing
a scaled-identity-matrix added to scale. May have shape
|
validate_args | Logical, default FALSE. When TRUE distribution parameters are checked for validity despite possibly degrading runtime performance. When FALSE invalid inputs may silently render incorrect outputs. Default value: FALSE. |
allow_nan_stats | Logical, default TRUE. When TRUE, statistics (e.g., mean, mode, variance) use the value NaN to indicate the result is undefined. When FALSE, an exception is raised if one or more of the statistic's batch members are undefined. |
name | name prefixed to Ops created by this class. |
a distribution instance.
Mathematical Details
The probability density function (pdf) is defined over the image of the
scale
matrix + loc
, applied to the positive half-space:
Supp = {loc + scale @ x : x in R^k, x_1 > 0, ..., x_k > 0}
. On this set,
pdf(y; loc, scale) = exp(-||x||_1) / Z, for y in Supp x = inv(scale) @ (y - loc), Z = |det(scale)|,
where:
loc
is a vector in R^k
,
scale
is a linear operator in R^{k x k}
, cov = scale @ scale.T
,
Z
denotes the normalization constant, and,
||x||_1
denotes the l1
norm of x
, sum_i |x_i|
.
The VectorExponential distribution is a member of the location-scale family, i.e., it can be
constructed as,
X = (X_1, ..., X_k), each X_i ~ Exponential(rate=1) Y = (Y_1, ...,Y_k) = scale @ X + loc
About VectorExponential
and Vector
distributions in TensorFlow.
The VectorExponential
is a non-standard distribution that has useful
properties.
The marginals Y_1, ..., Y_k
are not Exponential random variables, due to
the fact that the sum of Exponential random variables is not Exponential.
Instead, Y
is a vector whose components are linear combinations of
Exponential random variables. Thus, Y
lives in the vector space generated
by vectors
of Exponential distributions. This allows the user to decide the
mean and covariance (by setting loc
and scale
), while preserving some
properties of the Exponential distribution. In particular, the tails of Y_i
will be (up to polynomial factors) exponentially decaying.
To see this last statement, note that the pdf of Y_i
is the convolution of
the pdf of k
independent Exponential random variables. One can then show by
induction that distributions with exponential (up to polynomial factors) tails
are closed under convolution.
The batch_shape is the broadcast shape between loc and scale
arguments.
The event_shape is given by last dimension of the matrix implied by
scale. The last dimension of loc (if provided) must broadcast with this.
Recall that covariance = 2 * scale @ scale.T
.
Additional leading dimensions (if any) will index batches.
If both scale_diag
and scale_identity_multiplier
are NULL
, then
scale
is the Identity matrix.
For usage examples see e.g. tfd_sample()
, tfd_log_prob()
, tfd_mean()
.
Other distributions:
tfd_autoregressive()
,
tfd_batch_reshape()
,
tfd_bates()
,
tfd_bernoulli()
,
tfd_beta_binomial()
,
tfd_beta()
,
tfd_binomial()
,
tfd_categorical()
,
tfd_cauchy()
,
tfd_chi2()
,
tfd_chi()
,
tfd_cholesky_lkj()
,
tfd_continuous_bernoulli()
,
tfd_deterministic()
,
tfd_dirichlet_multinomial()
,
tfd_dirichlet()
,
tfd_empirical()
,
tfd_exp_gamma()
,
tfd_exp_inverse_gamma()
,
tfd_exponential()
,
tfd_gamma_gamma()
,
tfd_gamma()
,
tfd_gaussian_process_regression_model()
,
tfd_gaussian_process()
,
tfd_generalized_normal()
,
tfd_geometric()
,
tfd_gumbel()
,
tfd_half_cauchy()
,
tfd_half_normal()
,
tfd_hidden_markov_model()
,
tfd_horseshoe()
,
tfd_independent()
,
tfd_inverse_gamma()
,
tfd_inverse_gaussian()
,
tfd_johnson_s_u()
,
tfd_joint_distribution_named_auto_batched()
,
tfd_joint_distribution_named()
,
tfd_joint_distribution_sequential_auto_batched()
,
tfd_joint_distribution_sequential()
,
tfd_kumaraswamy()
,
tfd_laplace()
,
tfd_linear_gaussian_state_space_model()
,
tfd_lkj()
,
tfd_log_logistic()
,
tfd_log_normal()
,
tfd_logistic()
,
tfd_mixture_same_family()
,
tfd_mixture()
,
tfd_multinomial()
,
tfd_multivariate_normal_diag_plus_low_rank()
,
tfd_multivariate_normal_diag()
,
tfd_multivariate_normal_full_covariance()
,
tfd_multivariate_normal_linear_operator()
,
tfd_multivariate_normal_tri_l()
,
tfd_multivariate_student_t_linear_operator()
,
tfd_negative_binomial()
,
tfd_normal()
,
tfd_one_hot_categorical()
,
tfd_pareto()
,
tfd_pixel_cnn()
,
tfd_poisson_log_normal_quadrature_compound()
,
tfd_poisson()
,
tfd_power_spherical()
,
tfd_probit_bernoulli()
,
tfd_quantized()
,
tfd_relaxed_bernoulli()
,
tfd_relaxed_one_hot_categorical()
,
tfd_sample_distribution()
,
tfd_sinh_arcsinh()
,
tfd_skellam()
,
tfd_spherical_uniform()
,
tfd_student_t_process()
,
tfd_student_t()
,
tfd_transformed_distribution()
,
tfd_triangular()
,
tfd_truncated_cauchy()
,
tfd_truncated_normal()
,
tfd_uniform()
,
tfd_variational_gaussian_process()
,
tfd_vector_diffeomixture()
,
tfd_vector_exponential_linear_operator()
,
tfd_vector_laplace_diag()
,
tfd_vector_laplace_linear_operator()
,
tfd_vector_sinh_arcsinh_diag()
,
tfd_von_mises_fisher()
,
tfd_von_mises()
,
tfd_weibull()
,
tfd_wishart_linear_operator()
,
tfd_wishart_tri_l()
,
tfd_wishart()
,
tfd_zipf()