-
Couldn't load subscription status.
- Fork 537
Why does the inverse transform perfoms badly for domain adaptation? #590
-
Hi,
I am trying to compute an OT map between two distributions in 2D defined on ot.EMDTransport. My goal is to essentially build a semi-continuous map on dense, regular samples so that I can use it on new, unseen data, similar what is done in the domain adaptation examples.
In my particular case, I only have access to samples xt from the target and I wish to construct an OT map from the unit square xs. When I call my_ot_map.transform(xs) and my_ot_map.inverse_transform(xt), I do get a satisfying result (top row, see plot), except a few missing points which I am not sure of. However, when I try on new, coarser data (bottom row), the inverse map looks wrong. Why is that?
I dug into the code for inverse and saw that is uses nearest neighbors to weight the original transport map. Given my source samples are quite higher resolution, shouldn't the inverse be well approximated? Also, intuitively we should use the barycentric weights instead, is there an implementation of that somewhere?
I should have prefaced this by saying I am not by any mean an expert in optimal transport, so perhaps I am doing/expecting something wrong.
Thank you for your help!
Beta Was this translation helpful? Give feedback.