Skip to content

Implement more generic distributions on Manifolds #57

@sethaxen

Description

@sethaxen

This issue narrows the discussion in #3 to implementing distributions on Manifolds. It also continues some discussion from https://discourse.julialang.org/t/rfc-taking-directional-orientational-statistics-seriously/31951 and on the Slack channel.

There are a few generic distributions on manifolds that we'll want, with examples in directional statistics noted where available and not obvious:

  • Dirac: Dirac measure, has 0 density everywhere but at a fixed point.
  • Mixture: alias of Distributions.MixtureModel typed on our supports and variates
  • Uniform: similar to Distributions.Uniform but defined on manifolds.
  • Product: product distribution analogous to Distributions.Product on ProductManifold
  • Power: product distribution on sub-manifolds of the power-manifold
    • Probably need something more general as well for cases where one wants something like Product but on a PowerManifold. Useful for cases like Matrix von Mises-Fisher on the Steifel manifold which can be composed from a product of von Mises-Fisher distributions with different means and concentrations on the spherical submanifolds
  • Projected: distribution on ambient space projected to submanifold
    • e.g. Projected Normal
  • Restricted, Conditioned, or Intersection: distribution on manifold resulting from intersection of a distribution on ambient space to the manifold
    • e.g. Fisher-Bingham which has as special cases von Mises-Fisher and many other directional distributions
  • Retracted: distribution on tangent space at point retracted to manifold
    • e.g. tangential normal (aka Log-normal, but that's confusing)
  • Riemannian??: Similar to Retracted but with adjustment for curvature (name chosen because "Riemannian normal" is the only well-studied example of this I know).
    • e.g. "spherical normal"
  • IsotropicDiffusion or Brownian: Distribution resulting from brownian motion for a fixed time aka solution to the heat equation on the manifold
    • e.g. Spherical brownian motion distribution

There are plenty of Lie group specific ones that we can address when we've finished implementing Lie groups, i.e distributions resulting from quotient, actions, etc.

I've intentionally abbreviated the names above. While descriptive names like we currently have (e.g. ProductPointDistribution) provide clarity, they're a major eyesore if one wants to use the distribution e.g. in PPLs. We could have a Distributions submodule that contains these types so we can drop Distribution from the name, and we could use types to drop Point, etc., but I've not put much thought in this.

It's worth noting that implementing these generic distributions will handle nearly every case covered in the above Discourse post on directional statistics and also make it a lot easier to construct new distributions that haven't to my knowledge been tested (e.g. a Riemannian Cauchy distribution) for research purposes.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions