{"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/understanding-domain-generalization-a-noise","title":"Understanding Domain Generalization: A Noise Robustness Perspective","arxiv_id":"2401.14846","date":"2024-01-26","proceeding":null,"authors":["Rui Qiao","Bryan Kian Hsiang Low"],"abstract":"Despite the rapid development of machine learning algorithms for domain generalization (DG), there is no clear empirical evidence that the existing DG algorithms outperform the classic empirical risk minimization (ERM) across standard benchmarks. To better understand this phenomenon, we investigate whether there are benefits of DG algorithms over ERM through the lens of label noise. Specifically, our finite-sample analysis reveals that label noise exacerbates the effect of spurious correlations for ERM, undermining generalization. Conversely, we illustrate that DG algorithms exhibit implicit label-noise robustness during finite-sample training even when spurious correlation is present. Such desirable property helps mitigate spurious correlations and improve generalization in synthetic experiments. However, additional comprehensive experiments on real-world benchmark datasets indicate that label-noise robustness does not necessarily translate to better performance compared to ERM. We conjecture that the failure mode of ERM arising from spurious correlations may be less pronounced in practice.","url_abs":"https://arxiv.org/abs/2401.14846v2","url_pdf":"https://arxiv.org/pdf/2401.14846v2.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":"understanding-domain-generalization-a-noise","repo_url":"https://github.com/qiaoruiyt/noiserobustdg","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"domain-generalization","task_name":"Domain Generalization"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2401.14846","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2401.14846"}},"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/qiaoruiyt/NoiseRobustDG","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/qiaoruiyt/noiserobustdg","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran_draft_wrong":4,"ran":8,"ran_honours":1,"unverified":5},"by_repo_kind":{"official":{"samples":18,"ran":13,"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":0,"samples":[{"code_sha256_prefix":"ce7990d7ad5821ff","entry":"Classifier","repo":"qiaoruiyt/NoiseRobustDG","repo_kind":"official","path":"domainbed/networks.py","file_url":"https://github.com/qiaoruiyt/NoiseRobustDG/blob/HEAD/domainbed/networks.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"ce7990d7ad5821ff"}},{"code_sha256_prefix":"00e569acd6b45ef0","entry":"conv3x3","repo":"qiaoruiyt/NoiseRobustDG","repo_kind":"official","path":"domainbed/lib/wide_resnet.py","file_url":"https://github.com/qiaoruiyt/NoiseRobustDG/blob/HEAD/domainbed/lib/wide_resnet.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"00e569acd6b45ef0"}},{"code_sha256_prefix":"f3acf46e82ea9bf0","entry":"create_temp_bash_script","repo":"qiaoruiyt/NoiseRobustDG","repo_kind":"official","path":"domainbed/command_launchers.py","file_url":"https://github.com/qiaoruiyt/NoiseRobustDG/blob/HEAD/domainbed/command_launchers.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"f3acf46e82ea9bf0"}},{"code_sha256_prefix":"fbb8c05a0a7696ec","entry":"distance","repo":"qiaoruiyt/NoiseRobustDG","repo_kind":"official","path":"domainbed/lib/misc.py","file_url":"https://github.com/qiaoruiyt/NoiseRobustDG/blob/HEAD/domainbed/lib/misc.py","link_basis":"harvester_set","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"well_formed","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"fbb8c05a0a7696ec"}},{"code_sha256_prefix":"9d1aed5c27329c07","entry":"get_projections","repo":"qiaoruiyt/NoiseRobustDG","repo_kind":"official","path":"toy_example/random_feature_utils.py","file_url":"https://github.com/qiaoruiyt/NoiseRobustDG/blob/HEAD/toy_example/random_feature_utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"9d1aed5c27329c07"}},{"code_sha256_prefix":"6bee5175f6c9e4a2","entry":"get_random_features","repo":"qiaoruiyt/NoiseRobustDG","repo_kind":"official","path":"toy_example/random_feature_utils.py","file_url":"https://github.com/qiaoruiyt/NoiseRobustDG/blob/HEAD/toy_example/random_feature_utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"6bee5175f6c9e4a2"}},{"code_sha256_prefix":"53fac8d8d949e72b","entry":"get_test_records","repo":"qiaoruiyt/NoiseRobustDG","repo_kind":"official","path":"domainbed/model_selection.py","file_url":"https://github.com/qiaoruiyt/NoiseRobustDG/blob/HEAD/domainbed/model_selection.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"53fac8d8d949e72b"}},{"code_sha256_prefix":"71a3a61ceed99bf3","entry":"hashable","repo":"qiaoruiyt/NoiseRobustDG","repo_kind":"official","path":"domainbed/lib/query.py","file_url":"https://github.com/qiaoruiyt/NoiseRobustDG/blob/HEAD/domainbed/lib/query.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"71a3a61ceed99bf3"}},{"code_sha256_prefix":"1fdaff04251a0d51","entry":"l2_between_dicts","repo":"qiaoruiyt/NoiseRobustDG","repo_kind":"official","path":"domainbed/lib/misc.py","file_url":"https://github.com/qiaoruiyt/NoiseRobustDG/blob/HEAD/domainbed/lib/misc.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"1fdaff04251a0d51"}},{"code_sha256_prefix":"2f8af5779e1edcb6","entry":"make_selector_fn","repo":"qiaoruiyt/NoiseRobustDG","repo_kind":"official","path":"domainbed/lib/query.py","file_url":"https://github.com/qiaoruiyt/NoiseRobustDG/blob/HEAD/domainbed/lib/query.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"2f8af5779e1edcb6"}},{"code_sha256_prefix":"17202e0de9779f70","entry":"proj","repo":"qiaoruiyt/NoiseRobustDG","repo_kind":"official","path":"domainbed/lib/misc.py","file_url":"https://github.com/qiaoruiyt/NoiseRobustDG/blob/HEAD/domainbed/lib/misc.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"17202e0de9779f70"}},{"code_sha256_prefix":"196cab71d7129d62","entry":"remove_batch_norm_from_resnet","repo":"qiaoruiyt/NoiseRobustDG","repo_kind":"official","path":"domainbed/networks.py","file_url":"https://github.com/qiaoruiyt/NoiseRobustDG/blob/HEAD/domainbed/networks.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"196cab71d7129d62"}},{"code_sha256_prefix":"0a57f8c6ed773a07","entry":"sample_from_sphere","repo":"qiaoruiyt/NoiseRobustDG","repo_kind":"official","path":"toy_example/random_feature_utils.py","file_url":"https://github.com/qiaoruiyt/NoiseRobustDG/blob/HEAD/toy_example/random_feature_utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"0a57f8c6ed773a07"}},{"code_sha256_prefix":"b0bc80b1655a6802","entry":"get_algorithm_class","repo":"qiaoruiyt/NoiseRobustDG","repo_kind":"official","path":"domainbed/algorithms.py","file_url":"https://github.com/qiaoruiyt/NoiseRobustDG/blob/HEAD/domainbed/algorithms.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"b0bc80b1655a6802"}},{"code_sha256_prefix":"2d2f64d7a41ad2de","entry":"get_dataset_class","repo":"qiaoruiyt/NoiseRobustDG","repo_kind":"official","path":"domainbed/datasets.py","file_url":"https://github.com/qiaoruiyt/NoiseRobustDG/blob/HEAD/domainbed/datasets.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"2d2f64d7a41ad2de"}},{"code_sha256_prefix":"19940f022dbba01d","entry":"initialize_bert_transform","repo":"qiaoruiyt/NoiseRobustDG","repo_kind":"official","path":"domainbed/datasets.py","file_url":"https://github.com/qiaoruiyt/NoiseRobustDG/blob/HEAD/domainbed/datasets.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"19940f022dbba01d"}},{"code_sha256_prefix":"944fbdf77623d13b","entry":"num_environments","repo":"qiaoruiyt/NoiseRobustDG","repo_kind":"official","path":"domainbed/datasets.py","file_url":"https://github.com/qiaoruiyt/NoiseRobustDG/blob/HEAD/domainbed/datasets.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"944fbdf77623d13b"}},{"code_sha256_prefix":"39b946021cb18647","entry":"run_sbatch","repo":"qiaoruiyt/NoiseRobustDG","repo_kind":"official","path":"domainbed/command_launchers.py","file_url":"https://github.com/qiaoruiyt/NoiseRobustDG/blob/HEAD/domainbed/command_launchers.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"39b946021cb18647"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}