Manifolds.jl
Manifolds.jl copied to clipboard
Add parallel transport to SPD with BW metric
Described here: https://arxiv.org/abs/2109.05768 .
Hm, I tried understanding what they actually compute but I am lost to find what $d_i, d_j, \delta_i, \delta_j$ are in the formula for the PT.
edit: The authors might have implemented it here https://geomstats.github.io/_modules/geomstats/geometry/spd_matrices.html#SPDMetricBuresWasserstein.parallel_transport but since that is for arbitrary backends, its a little hard to read and also there is no formula (just input/output) documented.
edit 2: The $d_i,d_j$ might be eigenvalues, at least while not mentioned on page 15 with the formula, it is mentioned on page 2, so if they use that consistently, it might be eigenvalues.
edit 3: $d_i,d_j$ seem to be the eigenvalues, what $\delta_i, \delta_j$ are I can not find out, but it seems also that the general case does not have a closed form, also in the code above they apply a solver for the ODE in general, so I am not sure we should/can include it in out setting (we could go for a solver of the ODE for sure if a package is loaded and such, as a loose dependency).
I think $d_i, \delta_i$ are eigenvalues of SPD matrices, that's how it's used in Section 2. d
should correspond to D
and \delta
to $\Delta$.
EDIT: Github doesn't handle multiple formulas well...
Regarding ODE solving, I think there are three reasonable directions:
- Use ManifoldDiffEq.jl to solve the ODE.
- Work in charts (not polished yet).
- Roll out a simple first or second order solver for a particular case.
I think di,δi are eigenvalues of SPD matrices, that's how it's used in Section 2.
d
should correspond toD
and\delta
to Δ.
but in the formula they use (delta_j+delta_i) / (d_i+d_j) so if both are eigenvalues of some SPD matrices, I do not know which one wis which. I also have not seen the single-index delta in sec 2?
Regarding ODE solving, I think there are three reasonable directions:
- Use ManifoldDiffEq.jl to solve the ODE.
- Work in charts (not polished yet).
- Roll out a simple first or second order solver for a particular case.
Ok, neither of those three is what I could provide, since I also do not seem able to get their notation, this might not be an issue for me.
This suggests how d_i
and D
are related:
so here:
I think
d_i
are eigenvalues in D
and \delta_i
are eigenvalues in \Delta
.
But they could have written that more clearly.
Ok, neither of those three is what I could provide, since I also do not seem able to get their notation, this might not be an issue for me.
Yes, none of them is particularly simple. The easiest thing to start here is most likely a rolled-out implementation of a solver for the Sasaki metric I still mean to finish...
I think
d_i
are eigenvalues inD
and\delta_i
are eigenvalues in\Delta
. But they could have written that more clearly.
That is possible, for D it is impicitly mentioned somewhere in section 2, for Delta that is not mentioned at all. Still it only solves a specific case, so this Issue really has to wait until we have some ODE framework.