Can Manopt solve the prediction of Matrix on manifold

45 views
Skip to first unread message

sun...@gmail.com

unread,
Dec 25, 2015, 9:09:24 PM12/25/15
to Manopt
Hi,

Let p_0, p_1, . . . , p_N be a finite set of points on a Riemannian manifold M, and let 0 = t_0 < t_1 < ... < t_N = 1 be distinct and ordered instants of time. What I want to do is to predict one point (a matrix p on the manifold) by previous points. For example, using p_0, p_1, and p_2 to predict the p_3. I think it can be regarded as the Autoregressive model on manifold and it is similar to your work about the curve regression on manifold, but I still have no idea to solve it. Can Manopt solve it? Could you please give some suggestion or literature to me?

Best regards
Jiancheng

Nicolas Boumal

unread,
Dec 28, 2015, 11:54:22 AM12/28/15
to Manopt
Hello Jiancheng,

This is indeed similar to some of my work about regression and interpolation on manifolds (see my conference papers on my webpage). But it may be even closer to some work by Quentin Rentmeesters about autoregressive models on manifolds, for example:


and

"A filtering technique on the Grassmann manifold"

(not sure where the latter is available)

Those papers deal with the Grassmannian, but might be extendable.

Manopt can be used of course, but it is not an "out of the box" thing: you will need to model the problem as an optimization problem on a manifold (which should be rather natural for many formulations), then format this optimization problem to be solved with Manopt, as described in the generic purpose tutorial.

(Both sets of papers were written before Manopt was created, so there is no available code in that format to start from, unfortunately.)

Please let us know how thins work out.

Best,
Nicolas

sun...@gmail.com

unread,
Dec 31, 2015, 9:06:48 PM12/31/15
to Manopt
Hi, Nicolas,

I really appreciate your kind help and your suggestion is very useful to me. Another question is how to carry out your work about curve fitting on manifold. I can not find example code in Manopt.  

Thanks again and Happy new year.


Best regards
Jiancheng

Nicolas Boumal

unread,
Jan 5, 2016, 2:38:11 PM1/5/16
to Manopt
Hello Jiancheng,

Unfortunately, I have no good code for this using Manopt.

You would be optimizing over a collection of points on the same manifold, instead of a single point. Certain manifolds allow you to do this directly (and efficiently). For example to optimize over 25 points on the Grassmann manifold of size (n, p), do this:

problem.M = grassmannfactory(n, p, 25);

Some manifolds do not allow to work with "tuples" natively. Instad, you can use the function powermanifold:

So, a (less efficient) way of working on 25 points on the Grassmannian simultaneously is:

problem.M = powermanifold(grassmannfactory(n, p), 25);

In the first case, points and vectors are represented as three-dimensional matrices (arrays) in Matlab, of size n x p x 25

In the second example, they are represented as cells of size n x 1, each entry containing a matrix of size n x p.

I hope this can get you a head start.

Best,
Nicolas

sun...@gmail.com

unread,
Jan 10, 2016, 1:35:47 AM1/10/16
to Manopt
Dear Nicolas,

Many thanks for your help. I am reading your Phd thesis and using Manopt to solve some problem. In addition, Manopt is a great toolbox and I really lucky to find it. 


Best regards
Jiancheng

BM

unread,
Jan 10, 2016, 10:11:36 AM1/10/16
to Manopt
Hello Jiancheng,

It is great to get your feedback on Manopt. Let us know if you have further queries. 

Regards,
Bamdev
Reply all
Reply to author
Forward
0 new messages