nicolasboumal / manopt Goto Github PK
View Code? Open in Web Editor NEWManopt, a Matlab toolbox for optimization on manifolds
Home Page: http://www.manopt.org
License: Other
Manopt, a Matlab toolbox for optimization on manifolds
Home Page: http://www.manopt.org
License: Other
Is there a quick workaround for having a solver that alternatively minimizes the parameters X={x_i}_i on a product manifold? I am talking about for instance a trust-region solver that can perform alternating updates between two matrices one on Stiefel and one on EDM. There might be two ways to accomplish this: (1) Tangent Subspace Descent as in (https://arxiv.org/pdf/1912.10627.pdf) or (2) Running one step of update per each manifold (and thus x_i) in a sequential manner.
Hello Nicolas,
The compuations of acosh(-mink_inners) is not same as 2asinh(.5mink_norms). We should use
Regards,
Bamdev
Hi everyone!
I noticed manopt may take a long time to clone. Looking closer at the repo distribution, I see most of the content (22.5/24.8MB) is due to web/ and releases/. This is quite inconvenient for people (like me) packaging manopt as a local submodule in their projects (for solving dependencies).
Given the size of this project, I think it might be great to move those two heavy components (not directly related to the manopt functionality) to independent repositories (maybe NicolasBoumal/manopt-web and NicolasBoumal/manopt-releases). Worst case you can have those repositories as submodules in NicolasBoumal/manopt, although I would discourage that altogether.
Let me know what you think :)
Hello, thanks so much for your work on Manopt!
Minor issue - the function tensorprod
inside the ttfixedrank/TTeMPS_1.1
folder now collides with the new R2022a built-in [ https://www.mathworks.com/help/matlab/ref/tensorprod.html ].
I'd be happy to submit a PR with all the references renamed to something. Perhaps tt_tensorprod
or tensormatrixprod
?
Thanks!
Dan
Here is the following code:
G = rotations factory(3); g = G.rand(); v = G.randvec(g)
When ran, I found that v is a skew-symmetric matrix, which is a tangent vector at the identity of SO3. However G.randvec() shouldn't be a skew-symmetric matrix, it should be v=g*xi, where xi is some skew-symmetric matrix.
I just notices that the parallel transport on the positive numbers, see
manopt/manopt/manifolds/positive/positivefactory.m
Lines 132 to 135 in 116fbae
can be optimised: Since that is an element wise operation, the multiplication commutes and can just be done by
function zeta = parallel_transport(X, Y, eta)
zeta = eta.*Y./X;
end
and could maybe even set as default?
The following code fails to produce 0 (or even something numerically close to zero):
clc; clear all; close all;
M = fixedTTrankfactory([2 2 2 2], [1 2 2 2 1]);
X = M.rand()
V = M.randvec(X)
norm(M.tangent(X, V) - V) % should be zero, but it's 0.5
This might be related to the fact that when we run checkmanifold(M), we see that the dimension test fails. Perhaps the vectors generated by M.randvec(X) are not quite tangent?
I recently came across a statement in (added link https://arxiv.org/abs/2304.01467 - that I forgot in the first version), that claimed “there is no publicly released Riemannian solvers for [constraint problems].” when they talked about about ALM/EPM/FW. While they might not have speant so much time researching this, currently ALM/EPM are in this repository from Changshuo Liu.
I today also came across this interior point method code, which looks interesting.
Sure integrating both here bears its problems maybe, but they could be linked in the docs somewhere?
The following code fails:
M = fixedTTrankfactory([2 2 2 2], [1 2 2 2 1]);
X = M.rand()
V = M.randvec(X)
v = M.vec(X, V) % fails
with the follow error message:
Index exceeds the number of array elements (4).
Error in fixedTTrankfactory/vec (line 277)
ind_step = numel(Z.dU{index});
Nicolas,
First thanks for building ManOpt. It's just great. I have been looking into the source code, but could not figure out whether the strong Wolfe conditions are employed at any stage/version of the line search algorithms. As far as I know, this is essential for achieving descent in the L-BFGS algorithm. Or are there other line-search methods in ManOpt that can ensure this?
All the best,
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.