Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Review #28

Open
olivierverdier opened this issue Jan 27, 2025 · 2 comments
Open

Review #28

olivierverdier opened this issue Jan 27, 2025 · 2 comments

Comments

@olivierverdier
Copy link

olivierverdier commented Jan 27, 2025

JuliaCon/proceedings-review#179

The idea of this package is clear: use Manifolds.jl to represent statistical manifolds, in this case exponential families.

There is one fundamental flaw with this package: a manifold is independent of the representation. The choice of coordinates does not matter.

To be perfectly clear, the "natural parameters" (relative to a choice of sufficient statistics) are simply coordinates of a manifold, and should be implemented as such.

For instance, there is just one half line (possibly with different metrics, possibly with different coordinates). Therefore, the implementations of "shifted negative numbers", or "shifted positive numbers" make no sense. It leads to code duplication and wheel reinvention. You should only ever need to use PositiveNumbers from Manifolds.jl (adding different coordinate systems, or custom metrics).

Another (less important) issue that I have is the simplicity of the implemented families: there are no multivariate normal distributions, for instance. Interesting cases could be normal distributions with isotropic variance. Again, that should not be difficult to do using the existing bricks provided in Manifolds.jl.

@Nimrais
Copy link
Member

Nimrais commented Jan 27, 2025

@olivierverdier Thank you for the review. Before I address other parts of your review, there is some misunderstanding about what the package already implements. The paper directly provides examples of two different multivariate normal families. Also, you can find that they are indeed implemented in the code https://github.com/ReactiveBayes/ExponentialFamilyManifolds.jl/blob/main/src/natural_manifolds/normal.jl#L27-L32 (full covariance) and https://github.com/ReactiveBayes/ExponentialFamilyManifolds.jl/blob/main/src/natural_manifolds/normal.jl#L51-L56 (a form of an isotropic gaussian).

@olivierverdier
Copy link
Author

Fair enough, sorry I overlooked those!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants