{"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/nas-ood-neural-architecture-search-for-out-of","title":"NAS-OoD: Neural Architecture Search for Out-of-Distribution Generalization","arxiv_id":"2109.02038","date":"2021-09-05","proceeding":"ICCV 2021 10","authors":["Haoyue Bai","Fengwei Zhou","Lanqing Hong","Nanyang Ye","S. -H. Gary Chan","Zhenguo Li"],"abstract":"Recent advances on Out-of-Distribution (OoD) generalization reveal the robustness of deep learning models against distribution shifts. However, existing works focus on OoD algorithms, such as invariant risk minimization, domain generalization, or stable learning, without considering the influence of deep model architectures on OoD generalization, which may lead to sub-optimal performance. Neural Architecture Search (NAS) methods search for architecture based on its performance on the training data, which may result in poor generalization for OoD tasks. In this work, we propose robust Neural Architecture Search for OoD generalization (NAS-OoD), which optimizes the architecture with respect to its performance on generated OoD data by gradient descent. Specifically, a data generator is learned to synthesize OoD data by maximizing losses computed by different neural architectures, while the goal for architecture search is to find the optimal architecture parameters that minimize the synthetic OoD data losses. The data generator and the neural architecture are jointly optimized in an end-to-end manner, and the minimax training process effectively discovers robust architectures that generalize well for different distribution shifts. Extensive experimental results show that NAS-OoD achieves superior performance on various OoD generalization benchmarks with deep models having a much fewer number of parameters. In addition, on a real industry dataset, the proposed NAS-OoD method reduces the error rate by more than 70% compared with the state-of-the-art method, demonstrating the proposed method's practicality for real applications.","url_abs":"https://arxiv.org/abs/2109.02038v1","url_pdf":"https://arxiv.org/pdf/2109.02038v1.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":"nas-ood-neural-architecture-search-for-out-of","repo_url":"https://github.com/HaoyueBaiZJU/NAS-OoD","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"domain-generalization","task_name":"Domain Generalization"},{"task_slug":"architecture-search","task_name":"Neural Architecture Search"},{"task_slug":"out-of-distribution-generalization","task_name":"Out-of-Distribution Generalization"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/domain-generalization-on-nico-animal","task":"Domain Generalization","dataset":"NICO Animal","model":"NAS-OoD","rank_in_archive_order":1,"of":5,"metrics":{"Accuracy":"88.72"},"uses_additional_data":false},{"leaderboard":"/sota/domain-generalization-on-nico-vehicle","task":"Domain Generalization","dataset":"NICO Vehicle","model":"NAS-OoD","rank_in_archive_order":1,"of":5,"metrics":{"Accuracy":"81.59"},"uses_additional_data":false},{"leaderboard":"/sota/domain-generalization-on-pacs-2","task":"Domain Generalization","dataset":"PACS","model":"NAS-OoD (R","rank_in_archive_order":64,"of":133,"metrics":{"Average Accuracy":"84.23"},"uses_additional_data":false}],"syntology":{"syntology_url":"https://syntology.ai/paper/2109.02038","atlas_url":"https://app.syntology.ai/?focus=2109.02038","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2109.02038"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-25T09:33:49+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":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/HaoyueBaiZJU/NAS-OoD","reach":null}],"summary":{"ran":2,"ran_fixture":1,"unverified":3},"by_repo_kind":{"listed":{"samples":6,"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":6,"samples":[{"code_sha256_prefix":"c60969c546a6c606","entry":"AuxiliaryHeadCIFAR","repo":"HaoyueBaiZJU/NAS-OoD","repo_kind":"listed","path":"nas_ood_single/search/models/model_search.py","file_url":"https://github.com/HaoyueBaiZJU/NAS-OoD/blob/HEAD/nas_ood_single/search/models/model_search.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":"c60969c546a6c606"}},{"code_sha256_prefix":"033c37e041ba38d1","entry":"GradReverse","repo":"HaoyueBaiZJU/NAS-OoD","repo_kind":"listed","path":"nas_ood_single/search/models/model_search.py","file_url":"https://github.com/HaoyueBaiZJU/NAS-OoD/blob/HEAD/nas_ood_single/search/models/model_search.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":"033c37e041ba38d1"}},{"code_sha256_prefix":"b1286732acea8936","entry":"drop_path","repo":"HaoyueBaiZJU/NAS-OoD","repo_kind":"listed","path":"nas_ood_single/search/models/model_search.py","file_url":"https://github.com/HaoyueBaiZJU/NAS-OoD/blob/HEAD/nas_ood_single/search/models/model_search.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"b1286732acea8936"}},{"code_sha256_prefix":"19970c3cb7f707a3","entry":"Cell","repo":"HaoyueBaiZJU/NAS-OoD","repo_kind":"listed","path":"nas_ood_single/search/models/model_search.py","file_url":"https://github.com/HaoyueBaiZJU/NAS-OoD/blob/HEAD/nas_ood_single/search/models/model_search.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":"19970c3cb7f707a3"}},{"code_sha256_prefix":"b971ce38ddfedc71","entry":"MixedOp","repo":"HaoyueBaiZJU/NAS-OoD","repo_kind":"listed","path":"nas_ood_single/search/models/model_search.py","file_url":"https://github.com/HaoyueBaiZJU/NAS-OoD/blob/HEAD/nas_ood_single/search/models/model_search.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":"b971ce38ddfedc71"}},{"code_sha256_prefix":"a4aaef7d022dae5a","entry":"NetWork","repo":"HaoyueBaiZJU/NAS-OoD","repo_kind":"listed","path":"nas_ood_single/search/models/model_search.py","file_url":"https://github.com/HaoyueBaiZJU/NAS-OoD/blob/HEAD/nas_ood_single/search/models/model_search.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":"a4aaef7d022dae5a"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}