Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Why does the inverse transform perfoms badly for domain adaptation? #590

Closed Unanswered
joeylitalien asked this question in Q&A
Discussion options

Hi,

I am trying to compute an OT map between two distributions in 2D defined on $[0,1]^2$ using 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 $[0,1]^2$ to the target domain (also $[0,1]^2$). I do so by densely sampling the square to create source samples 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!

image

You must be logged in to vote

Replies: 0 comments

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Category
Q&A
Labels
None yet
1 participant

AltStyle によって変換されたページ (->オリジナル) /