R/vi-functions.R
vi_arithmetic_geometric.Rd
A Csiszar-function is a member of F = { f:R_+ to R : f convex }
.
vi_arithmetic_geometric(logu, self_normalized = FALSE, name = NULL)
logu |
|
---|---|
self_normalized |
|
name | name prefixed to Ops created by this function. |
arithmetic_geometric_of_u: float
-like Tensor
of the
Csiszar-function evaluated at u = exp(logu)
.
When self_normalized = True
the Arithmetic-Geometric Csiszar-function is:
f(u) = (1 + u) log( (1 + u) / sqrt(u) ) - (1 + u) log(2)
When self_normalized = False
the (1 + u) log(2)
term is omitted.
Observe that as an f-Divergence, this Csiszar-function implies:
D_f[p, q] = KL[m, p] + KL[m, q] m(x) = 0.5 p(x) + 0.5 q(x)
In a sense, this divergence is the "reverse" of the Jensen-Shannon
f-Divergence.
This Csiszar-function induces a symmetric f-Divergence, i.e.,
D_f[p, q] = D_f[q, p]
.
Warning: when self_normalized = Truethis function makes non-log-space calculations and may therefore be numerically unstable for
|logu| >> 0`.
Other vi-functions:
vi_amari_alpha()
,
vi_chi_square()
,
vi_csiszar_vimco()
,
vi_dual_csiszar_function()
,
vi_fit_surrogate_posterior()
,
vi_jeffreys()
,
vi_jensen_shannon()
,
vi_kl_forward()
,
vi_kl_reverse()
,
vi_log1p_abs()
,
vi_modified_gan()
,
vi_monte_carlo_variational_loss()
,
vi_pearson()
,
vi_squared_hellinger()
,
vi_symmetrized_csiszar_function()