-
Notifications
You must be signed in to change notification settings - Fork 54
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
Hyperrectangle #720
Hyperrectangle #720
Conversation
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## master #720 +/- ##
========================================
Coverage 99.57% 99.58%
========================================
Files 113 114 +1
Lines 10986 11229 +243
========================================
+ Hits 10939 11182 +243
Misses 47 47 ☔ View full report in Codecov by Sentry. |
Regarding activity analysis: https://web.mit.edu/dimitrib/www/ProjectedNewton.pdf . A small modification to direction update rule would be needed so that update is diagonal in directions orthogonal to boundary. |
We have an ambiguity here: injectivity_radius(M::AbstractManifold, m::AbstractRetractionMethod) @ ManifoldsBase ~/.julia/packages/ManifoldsBase/Sk7lI/src/ManifoldsBase.jl:528
injectivity_radius(M::Hyperrectangle, p) @ Manifolds ~/work/Manifolds.jl/Manifolds.jl/src/manifolds/Hyperrectangle.jl:173 I thought I would leave the global |
I mean you could still define the global one to be zero if it is the case? For the ambiguity, I would have to carefully check (maybe not this week, last week of lectures, drowning a bit in emails); Overall I have not yet understood this manifold, I think. |
OK, defining it to be 0 will fix the ambiguity. I can try to explain if you have any specific questions 🙂 |
I think my main problems are twofold
Besides that I think the inner product might not be correctly documented at first sight. For i=2 X^TY is still a matrix not a number – maybe there is a trace or so missing for this case? |
Mostly optimization with box constraints, at least that's my idea.
I think we can't assume exponential map is always well-defined for arbitrary vectors. Note that the default retraction is |
Yes, it should have a trace. I copied it from |
I never considered Probability simplex with euclidean metric a serious candidate for a manifold ;) |
It surely is not, it's a manifold with boundary. A different thing 🙂 . |
Or, more precisely, those are manifolds with corners: https://arxiv.org/abs/0910.3518 |
Ok, while I do not see much how this manifold is useful – I think I also do not have to find it useful. The only think I would like to see a bit more proimentnly – maybe in the docs before the list of doc strings starts – would be the note that this is a manifold with boundary, and their interface might not yet bet 100% fixed. |
With L-BFGS-B being one of the most widely used optimization algorithm, and working exactly on a hyperrectangle manifold, I think utility should be fairly clear 🙂 . Manopt's qN requires some small tweaks to ensure reasonable convergence for manifolds with boundary or corners but I'm planning on adding that soon-ish.
Sure, I will add a note. And the interface would definitely have to be extended a bit but I haven't designed that yet in detail.
Locally they both map into the manifold. I'm not sure how to explain that idea clearly but for standard Riemannian manifolds you also may have tangent vectors for which |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think all discussed points are clarified. I am looking forward to seeing this “in action”.
Great. I will sketch something soon-ish. |
Mostly to make Manopt work with box constraints. The trick is just projecting gradients and projection retraction but it's still better than nothing IMO. Activity analysis needs to be done on Manopt's side.