{"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/foogd-federated-collaboration-for-both-out-of","title":"FOOGD: Federated Collaboration for Both Out-of-distribution Generalization and Detection","arxiv_id":"2410.11397","date":"2024-10-15","proceeding":null,"authors":["Xinting Liao","Weiming Liu","Pengyang Zhou","Fengyuan Yu","Jiahe Xu","Jun Wang","Wenjie Wang","Chaochao Chen","Xiaolin Zheng"],"abstract":"Federated learning (FL) is a promising machine learning paradigm that collaborates with client models to capture global knowledge. However, deploying FL models in real-world scenarios remains unreliable due to the coexistence of in-distribution data and unexpected out-of-distribution (OOD) data, such as covariate-shift and semantic-shift data. Current FL researches typically address either covariate-shift data through OOD generalization or semantic-shift data via OOD detection, overlooking the simultaneous occurrence of various OOD shifts. In this work, we propose FOOGD, a method that estimates the probability density of each client and obtains reliable global distribution as guidance for the subsequent FL process. Firstly, SM3D in FOOGD estimates score model for arbitrary distributions without prior constraints, and detects semantic-shift data powerfully. Then SAG in FOOGD provides invariant yet diverse knowledge for both local covariate-shift generalization and client performance generalization. In empirical validations, FOOGD significantly enjoys three main advantages: (1) reliably estimating non-normalized decentralized distributions, (2) detecting semantic shift data via score values, and (3) generalizing to covariate-shift data by regularizing feature extractor. The prejoct is open in https://github.com/XeniaLLL/FOOGD-main.git.","url_abs":"https://arxiv.org/abs/2410.11397v2","url_pdf":"https://arxiv.org/pdf/2410.11397v2.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":"foogd-federated-collaboration-for-both-out-of","repo_url":"https://github.com/xenialll/foogd-main","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}}],"tasks":[{"task_slug":"federated-learning","task_name":"Federated Learning"},{"task_slug":"out-of-distribution-generalization","task_name":"Out-of-Distribution Generalization"}],"methods":[{"method_slug":"sag-1","method_name":"SAG"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2410.11397","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2410.11397"}},"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/XeniaLLL/FOOGD-main","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/xenialll/foogd-main","reach":{"status":"ok"}}],"summary":{"ran":8,"ran_draft_wrong":2,"unverified":2},"by_repo_kind":{"official":{"samples":12,"ran":10,"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":12,"samples":[{"code_sha256_prefix":"2347ddf282a47878","entry":"SE_kernel","repo":"XeniaLLL/FOOGD-main","repo_kind":"official","path":"src/algorithms/FOOGD/ksd.py","file_url":"https://github.com/XeniaLLL/FOOGD-main/blob/HEAD/src/algorithms/FOOGD/ksd.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":"2347ddf282a47878"}},{"code_sha256_prefix":"437515ae11d6b153","entry":"SE_kernel_multi","repo":"XeniaLLL/FOOGD-main","repo_kind":"official","path":"src/algorithms/FOOGD/ksd.py","file_url":"https://github.com/XeniaLLL/FOOGD-main/blob/HEAD/src/algorithms/FOOGD/ksd.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":"437515ae11d6b153"}},{"code_sha256_prefix":"e53fb6349536a307","entry":"anneal_langevin_dynamics","repo":"XeniaLLL/FOOGD-main","repo_kind":"official","path":"src/algorithms/FOOGD/functional.py","file_url":"https://github.com/XeniaLLL/FOOGD-main/blob/HEAD/src/algorithms/FOOGD/functional.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":"e53fb6349536a307"}},{"code_sha256_prefix":"581a8583346c6d6e","entry":"compute_auroc","repo":"XeniaLLL/FOOGD-main","repo_kind":"official","path":"src/utils/accuracy.py","file_url":"https://github.com/XeniaLLL/FOOGD-main/blob/HEAD/src/utils/accuracy.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"581a8583346c6d6e"}},{"code_sha256_prefix":"ed9d175eff211a68","entry":"compute_fnr","repo":"XeniaLLL/FOOGD-main","repo_kind":"official","path":"src/utils/accuracy.py","file_url":"https://github.com/XeniaLLL/FOOGD-main/blob/HEAD/src/utils/accuracy.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"ed9d175eff211a68"}},{"code_sha256_prefix":"50efec97e3cc12bc","entry":"conv1x1","repo":"XeniaLLL/FOOGD-main","repo_kind":"official","path":"src/models/resnet.py","file_url":"https://github.com/XeniaLLL/FOOGD-main/blob/HEAD/src/models/resnet.py","link_basis":"plan_row","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"50efec97e3cc12bc"}},{"code_sha256_prefix":"7e98e1d315e2ea27","entry":"conv3x3","repo":"XeniaLLL/FOOGD-main","repo_kind":"official","path":"src/models/resnet.py","file_url":"https://github.com/XeniaLLL/FOOGD-main/blob/HEAD/src/models/resnet.py","link_basis":"plan_row","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"7e98e1d315e2ea27"}},{"code_sha256_prefix":"5e49b512be46ee83","entry":"langevin_dynamics","repo":"XeniaLLL/FOOGD-main","repo_kind":"official","path":"src/algorithms/FOOGD/functional.py","file_url":"https://github.com/XeniaLLL/FOOGD-main/blob/HEAD/src/algorithms/FOOGD/functional.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":"5e49b512be46ee83"}},{"code_sha256_prefix":"e21b938b56a7bf4e","entry":"sample","repo":"XeniaLLL/FOOGD-main","repo_kind":"official","path":"src/algorithms/FOOGD/functional.py","file_url":"https://github.com/XeniaLLL/FOOGD-main/blob/HEAD/src/algorithms/FOOGD/functional.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":"e21b938b56a7bf4e"}},{"code_sha256_prefix":"7f9376da27ec7817","entry":"trace_SE_kernel_multi","repo":"XeniaLLL/FOOGD-main","repo_kind":"official","path":"src/algorithms/FOOGD/ksd.py","file_url":"https://github.com/XeniaLLL/FOOGD-main/blob/HEAD/src/algorithms/FOOGD/ksd.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":"7f9376da27ec7817"}},{"code_sha256_prefix":"50817bc217ceccd7","entry":"get_server_and_client","repo":"XeniaLLL/FOOGD-main","repo_kind":"official","path":"src/utils/main_utils.py","file_url":"https://github.com/XeniaLLL/FOOGD-main/blob/HEAD/src/utils/main_utils.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":"50817bc217ceccd7"}},{"code_sha256_prefix":"46f608336b42cbd4","entry":"make_save_path","repo":"XeniaLLL/FOOGD-main","repo_kind":"official","path":"src/utils/main_utils.py","file_url":"https://github.com/XeniaLLL/FOOGD-main/blob/HEAD/src/utils/main_utils.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":"46f608336b42cbd4"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}