{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/robust-optimal-transport-with-applications-in","title":"Robust Optimal Transport with Applications in Generative Modeling and Domain Adaptation","arxiv_id":"2010.05862","date":"2020-10-12","proceeding":"NeurIPS 2020 12","authors":["Yogesh Balaji","Rama Chellappa","Soheil Feizi"],"abstract":"Optimal Transport (OT) distances such as Wasserstein have been used in several areas such as GANs and domain adaptation. OT, however, is very sensitive to outliers (samples with large noise) in the data since in its objective function, every sample, including outliers, is weighed similarly due to the marginal constraints. To remedy this issue, robust formulations of OT with unbalanced marginal constraints have previously been proposed. However, employing these methods in deep learning problems such as GANs and domain adaptation is challenging due to the instability of their dual optimization solvers. In this paper, we resolve these issues by deriving a computationally-efficient dual form of the robust OT optimization that is amenable to modern deep learning applications. We demonstrate the effectiveness of our formulation in two applications of GANs and domain adaptation. Our approach can train state-of-the-art GAN models on noisy datasets corrupted with outlier distributions. In particular, our optimization computes weights for training samples reflecting how difficult it is for those samples to be generated in the model. In domain adaptation, our robust OT formulation leads to improved accuracy compared to the standard adversarial adaptation methods. Our code is available at https://github.com/yogeshbalaji/robustOT.","url_abs":"https://arxiv.org/abs/2010.05862v1","url_pdf":"https://arxiv.org/pdf/2010.05862v1.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"robust-optimal-transport-with-applications-in","repo_url":"https://github.com/yogeshbalaji/robustOT","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"pytorch","reach":null},{"paper_slug":"robust-optimal-transport-with-applications-in","repo_url":"https://github.com/kheyer/OTDD","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"domain-adaptation","task_name":"Domain Adaptation"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2010.05862","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2010.05862"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"deterministic:regex_extraction","url":"https://github.com/yogeshbalaji/robustOT","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/kheyer/OTDD","reach":null}],"summary":{"ran":2,"ran_fixture":1,"unverified":3},"by_repo_kind":{"official":{"samples":3,"ran":1,"repositories":1},"listed":{"samples":3,"ran":2,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":6,"samples":[{"code_sha256_prefix":"cf9913d615a39e58","entry":"CostFunction","repo":"kheyer/OTDD","repo_kind":"listed","path":"OTDD/otdd.py","file_url":"https://github.com/kheyer/OTDD/blob/HEAD/OTDD/otdd.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"cf9913d615a39e58"}},{"code_sha256_prefix":"3d9fe47c4edabc35","entry":"ROTSolver","repo":"yogeshbalaji/robustOT","repo_kind":"official","path":"discrete_distributions/solvers/ROT.py","file_url":"https://github.com/yogeshbalaji/robustOT/blob/HEAD/discrete_distributions/solvers/ROT.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"3d9fe47c4edabc35"}},{"code_sha256_prefix":"5dcc11c88abe2da5","entry":"get_class_matrix","repo":"kheyer/OTDD","repo_kind":"listed","path":"OTDD/otdd.py","file_url":"https://github.com/kheyer/OTDD/blob/HEAD/OTDD/otdd.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"5dcc11c88abe2da5"}},{"code_sha256_prefix":"1c8f766a38067582","entry":"RobustOTCost","repo":"kheyer/OTDD","repo_kind":"listed","path":"OTDD/otdd.py","file_url":"https://github.com/kheyer/OTDD/blob/HEAD/OTDD/otdd.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"1c8f766a38067582"}},{"code_sha256_prefix":"d4bc92bd4b4943bd","entry":"generate_scatter_plots","repo":"yogeshbalaji/robustOT","repo_kind":"official","path":"discrete_distributions/solvers/ROT.py","file_url":"https://github.com/yogeshbalaji/robustOT/blob/HEAD/discrete_distributions/solvers/ROT.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"d4bc92bd4b4943bd"}},{"code_sha256_prefix":"f6cbece1ae89dfac","entry":"generate_scatter_plots_with_coupling","repo":"yogeshbalaji/robustOT","repo_kind":"official","path":"discrete_distributions/solvers/ROT.py","file_url":"https://github.com/yogeshbalaji/robustOT/blob/HEAD/discrete_distributions/solvers/ROT.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"f6cbece1ae89dfac"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}