The `HiddenMarkovModel`

distribution implements a (batch of) hidden
Markov models where the initial states, transition probabilities
and observed states are all given by user-provided distributions.

tfd_hidden_markov_model(initial_distribution, transition_distribution, observation_distribution, num_steps, validate_args = FALSE, allow_nan_stats = TRUE, name = "HiddenMarkovModel")

initial_distribution | A |
---|---|

transition_distribution | A |

observation_distribution | A |

num_steps | The number of steps taken in Markov chain. An |

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.

This model assumes that the transition matrices are fixed over time.
In this model, there is a sequence of integer-valued hidden states:
`z[0], z[1], ..., z[num_steps - 1]`

and a sequence of observed states:
`x[0], ..., x[num_steps - 1]`

.

The distribution of `z[0]`

is given by `initial_distribution`

.
The conditional probability of `z[i + 1]`

given `z[i]`

is described by
the batch of distributions in `transition_distribution`

.
For a batch of hidden Markov models, the coordinates before the rightmost one
of the `transition_distribution`

batch correspond to indices into the hidden
Markov model batch. The rightmost coordinate of the batch is used to select
which distribution `z[i + 1]`

is drawn from. The distributions corresponding
to the probability of `z[i + 1]`

conditional on `z[i] == k`

is given by the
elements of the batch whose rightmost coordinate is `k`

.

Similarly, the conditional distribution of `z[i]`

given `x[i]`

is given by
the batch of `observation_distribution`

.
When the rightmost coordinate of `observation_distribution`

is `k`

it
gives the conditional probabilities of `x[i]`

given `z[i] == k`

.
The probability distribution associated with the `HiddenMarkovModel`

distribution is the marginal distribution of `x[0],...,x[num_steps - 1]`

.

For usage examples see e.g. `tfd_sample()`

, `tfd_log_prob()`

, `tfd_mean()`

.

Other distributions: `tfd_autoregressive`

,
`tfd_batch_reshape`

,
`tfd_bernoulli`

, `tfd_beta`

,
`tfd_binomial`

,
`tfd_categorical`

, `tfd_cauchy`

,
`tfd_chi2`

, `tfd_chi`

,
`tfd_cholesky_lkj`

,
`tfd_deterministic`

,
`tfd_dirichlet_multinomial`

,
`tfd_dirichlet`

, `tfd_empirical`

,
`tfd_exponential`

,
`tfd_gamma_gamma`

, `tfd_gamma`

,
`tfd_gaussian_process_regression_model`

,
`tfd_gaussian_process`

,
`tfd_geometric`

, `tfd_gumbel`

,
`tfd_half_cauchy`

,
`tfd_half_normal`

,
`tfd_horseshoe`

,
`tfd_independent`

,
`tfd_inverse_gamma`

,
`tfd_inverse_gaussian`

,
`tfd_joint_distribution_named`

,
`tfd_joint_distribution_sequential`

,
`tfd_kumaraswamy`

, `tfd_laplace`

,
`tfd_linear_gaussian_state_space_model`

,
`tfd_lkj`

, `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_probit_bernoulli`

,
`tfd_quantized`

,
`tfd_relaxed_bernoulli`

,
`tfd_relaxed_one_hot_categorical`

,
`tfd_sample_distribution`

,
`tfd_sinh_arcsinh`

,
`tfd_student_t_process`

,
`tfd_student_t`

,
`tfd_transformed_distribution`

,
`tfd_triangular`

,
`tfd_truncated_normal`

,
`tfd_uniform`

,
`tfd_variational_gaussian_process`

,
`tfd_vector_diffeomixture`

,
`tfd_vector_exponential_diag`

,
`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_wishart_linear_operator`

,
`tfd_wishart_tri_l`

,
`tfd_wishart`

, `tfd_zipf`