-
Notifications
You must be signed in to change notification settings - Fork 0
CompatHelper: bump compat for ExponentialFamilyManifolds to 3, (keep existing compat) #55
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
base: main
Are you sure you want to change the base?
CompatHelper: bump compat for ExponentialFamilyManifolds to 3, (keep existing compat) #55
Conversation
98ec6e3
to
5138562
Compare
@Nimrais is there any updates on this? |
@bvdmitri I am super busy right now with another task. My hands will become free in a week or two. So if there is any chance to separate this work among more than one dev, I can describe what should be done to fix this. The main problem is that we did tricks in the ExponentialFamilyManifolds.jl (EFM) to cancel out some mistakes here. Now these mistakes are fixed, but we our tricks right does not work. Basically, our gradients were slightly off, and there were many actual problems with that (like any Conjugate Gradients algorithms underperformed). There is a super easy fix which is to just replace our manual computation with ManifoldDiff, but I do not want to go this way because it's slow, and generally our gradients have a closed form - they just need to be corrected according to the last changes in EFM. However, this work is hard in the sense that someone needs to sit with a pen and correct the gradients. What I would really like to do is the following: to have a benchmark test that our performance is not degraded, implement a fix that will pass all unit tests, and then optimize it with hand-crafted gradients. The benchmarking part is just Julia coding, so I think anyone can do it. |
@Nimrais I’m not sure I’m following — I’m not aware of any mistakes we made by cross-covering with two packages. I can understand if slight changes in EFM require slight changes in EFP, but I don’t see how that would justify a complete overhaul of all hand-written gradients — unless I’m misunderstanding your point.
Are you referring to the gradients implemented in ExponentialFamily.jl?
Where exactly?
Could you clarify what you mean here? |
The main assumption in this package was that we can treat a point on the manifolds from EFM always as a natural parameter, right now this assumption is broken. We have quite some code written based on this assumption. For example, this line https://github.com/ReactiveBayes/ExponentialFamilyProjection.jl/blob/main/src/manopt/projection_objective.jl#L36.
I am not talking about the gradients in Exponential Family, which are correct. I am talking about the
Before when I tried to use Conjugate Gradient with EFM manifolds it always diverged now it works. |
P.S. |
@Nimrais ping |
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## main #55 +/- ##
=========================================
Coverage 100.00% 100.00%
=========================================
Files 7 8 +1
Lines 278 324 +46
=========================================
+ Hits 278 324 +46 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
This pull request changes the compat entry for the
ExponentialFamilyManifolds
package from2.0.0
to2.0.0, 3
.This keeps the compat entries for earlier versions.
Note: I have not tested your package with this new compat entry.
It is your responsibility to make sure that your package tests pass before you merge this pull request.