Hi @6Ulm,
Congrats for your work. I am trying to understand whether your work could be useful for my task.
I am using the following objective function to compute the optimal transport for my input data:
def objective_function(params, Cs_3d, ms_3d, Ct_2d, mt_2d):
"""Objective function to minimize."""
P = params[:6].reshape(2, 3)
t = params[6:]
C = cost_matrix2(Cs_3d, ms_3d, Ct_2d, mt_2d, P, t)
# Compute optimal transport
a = ot.unif(len(Cs_3d), type_as=C)
b = ot.unif(len(Ct_2d), type_as=C)
pi = ot.sinkhorn(a, b, C, reg=0.1)
return torch.sum(pi * C)
This works relatively well as you can see below from the printed transport plans:


which it seems to catch the undergone correlation between my samples. My only issue is that practically due to the noise/outliers that are also apparent in the graphs my accuracy on trying to find the correspondences is not that high since I am getting matches outside the diagonal line which should be the correct one. Thus, I was thinking whether I could use your UCOOT implementation to smoothen a bit more my transport plan and eliminate as much as possible my outliers. Do you think that this would be a valid approach? Also I saw you have also opened a pull request in POT for integrating the algorithm in the library which would be nice to use it directly from there I guess.
Thanks, and I would be interested to hear your opinion.
Hi @6Ulm,
Congrats for your work. I am trying to understand whether your work could be useful for my task.
I am using the following objective function to compute the optimal transport for my input data:
This works relatively well as you can see below from the printed transport plans:


which it seems to catch the undergone correlation between my samples. My only issue is that practically due to the noise/outliers that are also apparent in the graphs my accuracy on trying to find the correspondences is not that high since I am getting matches outside the diagonal line which should be the correct one. Thus, I was thinking whether I could use your UCOOT implementation to smoothen a bit more my transport plan and eliminate as much as possible my outliers. Do you think that this would be a valid approach? Also I saw you have also opened a pull request in POT for integrating the algorithm in the library which would be nice to use it directly from there I guess.
Thanks, and I would be interested to hear your opinion.