{"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/overcoming-shortcut-learning-in-a-target","title":"Overcoming Shortcut Learning in a Target Domain by Generalizing Basic Visual Factors from a Source Domain","arxiv_id":"2207.10002","date":"2022-07-20","proceeding":null,"authors":["Piyapat Saranrittichai","Chaithanya Kumar Mummadi","Claudia Blaiotta","Mauricio Munoz","Volker Fischer"],"abstract":"Shortcut learning occurs when a deep neural network overly relies on spurious correlations in the training dataset in order to solve downstream tasks. Prior works have shown how this impairs the compositional generalization capability of deep learning models. To address this problem, we propose a novel approach to mitigate shortcut learning in uncontrolled target domains. Our approach extends the training set with an additional dataset (the source domain), which is specifically designed to facilitate learning independent representations of basic visual factors. We benchmark our idea on synthetic target domains where we explicitly control shortcut opportunities as well as real-world target domains. Furthermore, we analyze the effect of different specifications of the source domain and the network architecture on compositional generalization. Our main finding is that leveraging data from a source domain is an effective way to mitigate shortcut learning. By promoting independence across different factors of variation in the learned representations, networks can learn to consider only predictive factors and ignore potential shortcut factors during inference.","url_abs":"https://arxiv.org/abs/2207.10002v1","url_pdf":"https://arxiv.org/pdf/2207.10002v1.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":"overcoming-shortcut-learning-in-a-target","repo_url":"https://github.com/boschresearch/sourcegen","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2207.10002","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2207.10002"}},"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/boschresearch/sourcegen","reach":null}],"summary":{"ran":1,"ran_fixture":1,"ran_honours":1,"unverified":1},"by_repo_kind":{"official":{"samples":4,"ran":3,"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":4,"samples":[{"code_sha256_prefix":"cdbc5f096210f439","entry":"MLP","repo":"boschresearch/sourcegen","repo_kind":"official","path":"sourcegen/models/sourcegen/models.py","file_url":"https://github.com/boschresearch/sourcegen/blob/HEAD/sourcegen/models/sourcegen/models.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":true,"licence":"AGPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"cdbc5f096210f439"}},{"code_sha256_prefix":"3a05a13349f6cd51","entry":"compute_entropy","repo":"boschresearch/sourcegen","repo_kind":"official","path":"sourcegen/models/sourcegen/models.py","file_url":"https://github.com/boschresearch/sourcegen/blob/HEAD/sourcegen/models/sourcegen/models.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"AGPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"3a05a13349f6cd51"}},{"code_sha256_prefix":"1ed691aec2c75a36","entry":"get_factor_pair_association","repo":"boschresearch/sourcegen","repo_kind":"official","path":"sourcegen/models/sourcegen/models.py","file_url":"https://github.com/boschresearch/sourcegen/blob/HEAD/sourcegen/models/sourcegen/models.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"well_formed","behaviour_fingerprint":false,"licence":"AGPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"1ed691aec2c75a36"}},{"code_sha256_prefix":"f9a8291a9bd2d32c","entry":"SourceGenModel","repo":"boschresearch/sourcegen","repo_kind":"official","path":"sourcegen/models/sourcegen/models.py","file_url":"https://github.com/boschresearch/sourcegen/blob/HEAD/sourcegen/models/sourcegen/models.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"AGPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"f9a8291a9bd2d32c"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}