code: def brownian_motion_as_markov_chain(
      num_timesteps, innovation_noise_scale
  ):
      return tfd.MarkovChain(
          initial_state_prior=tfd.Normal(
              loc=0.0, scale=innovation_noise_scale
          ),
          transition_fn=lambda _, x_t: tfd.Normal(  # pylint: disable=g-long-lambda
              loc=x_t, scale=innovation_noise_scale
          ),
          num_steps=num_timesteps,
          name="locs",
      )
  
imports: import functools
  import tensorflow.compat.v2
  import tensorflow_probability
  from inference_gym.internal import data
  from inference_gym.targets import bayesian_model
  from inference_gym.targets import model
  from inference_gym.targets.ground_truth import brownian_motion_missing_middle_observations
  from inference_gym.targets.ground_truth import brownian_motion_unknown_scales_missing_middle_observations
label_desc: Use image node_id 1 for calling a global function with example usage: brownian_motion_as_markov_chain(num_timesteps, innovation_noise_scale) and returns: tfd