class_docstr: A non-identifiable model with a quartic measurement model.
  
  This distribution is defined in [1] as the posterior induced by the following
  model:
  
  ```none
  for i in range(ndims):
    theta[i] ~ Normal(loc=0, scale=1)
  F(theta) = theta[1]**2 + 3 * theta[0]**2 * (theta[0]**2 - 1)
  y ~ Normal(loc=F(theta), scale=noise_scale)
  ```
  
  with an observed `y = 1`. Note that if `ndims` is > 2, the additional
  dimensions are distributed as a standard normal.
  
  This distribution is notable for having density on a narrow manifold which
  requires small step sizes when using HMC. It also happens to be multi-modal (4
  modes), but the modes are not well separated and should not pose challenge to
  most inference methods.
  
  #### References
  
  1. Au, K. X., Graham, M. M., & Thiery, A. H. (2020). Manifold lifting: scaling
     MCMC to the vanishing noise regime. (2), 1-18. Retrieved from
     http://arxiv.org/abs/2003.03950
code: def _prior_distribution(self):
      return self._prior_dist
  
file_path: probability/spinoffs/inference_gym/inference_gym/targets/non_identifiable_quartic.py
imports: import numpy
  import tensorflow.compat.v2
  import tensorflow_probability
  from inference_gym.targets import bayesian_model
  from inference_gym.targets import model
label_desc: Use image node_id 2 for calling the NonIdentifiableQuarticMeasurementModel obj's underlying member method code with example usage: obj._prior_distribution() and returns: self