{"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/decentralised-collaborative-and-privacy","title":"Decentralised, Collaborative, and Privacy-preserving Machine Learning for Multi-Hospital Data","arxiv_id":"2402.00205","date":"2024-01-31","proceeding":null,"authors":["Congyu Fang","Adam Dziedzic","Lin Zhang","Laura Oliva","Amol Verma","Fahad Razak","Nicolas Papernot","Bo wang"],"abstract":"Machine Learning (ML) has demonstrated its great potential on medical data analysis. Large datasets collected from diverse sources and settings are essential for ML models in healthcare to achieve better accuracy and generalizability. Sharing data across different healthcare institutions is challenging because of complex and varying privacy and regulatory requirements. Hence, it is hard but crucial to allow multiple parties to collaboratively train an ML model leveraging the private datasets available at each party without the need for direct sharing of those datasets or compromising the privacy of the datasets through collaboration. In this paper, we address this challenge by proposing Decentralized, Collaborative, and Privacy-preserving ML for Multi-Hospital Data (DeCaPH). It offers the following key benefits: (1) it allows different parties to collaboratively train an ML model without transferring their private datasets; (2) it safeguards patient privacy by limiting the potential privacy leakage arising from any contents shared across the parties during the training process; and (3) it facilitates the ML model training without relying on a centralized server. We demonstrate the generalizability and power of DeCaPH on three distinct tasks using real-world distributed medical datasets: patient mortality prediction using electronic health records, cell-type classification using single-cell human genomes, and pathology identification using chest radiology images. We demonstrate that the ML models trained with DeCaPH framework have an improved utility-privacy trade-off, showing it enables the models to have good performance while preserving the privacy of the training data points. In addition, the ML models trained with DeCaPH framework in general outperform those trained solely with the private datasets from individual parties, showing that DeCaPH enhances the model generalizability.","url_abs":"https://arxiv.org/abs/2402.00205v2","url_pdf":"https://arxiv.org/pdf/2402.00205v2.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":"decentralised-collaborative-and-privacy","repo_url":"https://github.com/cleverhans-lab/decaph","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"pytorch","reach":{"status":"ok"}}],"tasks":[{"task_slug":"mortality-prediction","task_name":"Mortality Prediction"},{"task_slug":"privacy-preserving","task_name":"Privacy Preserving"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":null,"atlas_url":"https://app.syntology.ai/?focus=2402.00205","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2402.00205"}},"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":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/cleverhans-lab/decaph","reach":{"status":"ok"}}],"summary":{"ran":11,"ran_draft_wrong":1,"ran_honours":1,"unverified":3},"by_repo_kind":{"official":{"samples":16,"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":16,"samples":[{"code_sha256_prefix":"0aafc539f504a96a","entry":"apply_transforms","repo":"cleverhans-lab/decaph","repo_kind":"official","path":"torchxrayvision/datasets.py","file_url":"https://github.com/cleverhans-lab/decaph/blob/HEAD/torchxrayvision/datasets.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":"0aafc539f504a96a"}},{"code_sha256_prefix":"7c5cf1f76dd942a3","entry":"compute_heterogeneous_rdp","repo":"cleverhans-lab/decaph","repo_kind":"official","path":"privacy_utils/rdp_accountant.py","file_url":"https://github.com/cleverhans-lab/decaph/blob/HEAD/privacy_utils/rdp_accountant.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":"7c5cf1f76dd942a3"}},{"code_sha256_prefix":"912cdb3eb1fe08f7","entry":"compute_rdp","repo":"cleverhans-lab/decaph","repo_kind":"official","path":"privacy_utils/rdp_accountant.py","file_url":"https://github.com/cleverhans-lab/decaph/blob/HEAD/privacy_utils/rdp_accountant.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":"912cdb3eb1fe08f7"}},{"code_sha256_prefix":"37428b897e58f749","entry":"densenet121","repo":"cleverhans-lab/decaph","repo_kind":"official","path":"custom_model.py","file_url":"https://github.com/cleverhans-lab/decaph/blob/HEAD/custom_model.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":"37428b897e58f749"}},{"code_sha256_prefix":"6a5ecc7d46510efe","entry":"fix_resolution","repo":"cleverhans-lab/decaph","repo_kind":"official","path":"torchxrayvision/models.py","file_url":"https://github.com/cleverhans-lab/decaph/blob/HEAD/torchxrayvision/models.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":"6a5ecc7d46510efe"}},{"code_sha256_prefix":"5f1fb3a9ffe8b2ad","entry":"get_densenet_params","repo":"cleverhans-lab/decaph","repo_kind":"official","path":"torchxrayvision/models.py","file_url":"https://github.com/cleverhans-lab/decaph/blob/HEAD/torchxrayvision/models.py","link_basis":"plan_row","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"5f1fb3a9ffe8b2ad"}},{"code_sha256_prefix":"b691c3678846a718","entry":"get_list_private_data_pancreas","repo":"cleverhans-lab/decaph","repo_kind":"official","path":"datasets_utils/pancreas/pancreas_utils.py","file_url":"https://github.com/cleverhans-lab/decaph/blob/HEAD/datasets_utils/pancreas/pancreas_utils.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":"b691c3678846a718"}},{"code_sha256_prefix":"b9310565eacff215","entry":"get_log","repo":"cleverhans-lab/decaph","repo_kind":"official","path":"utils.py","file_url":"https://github.com/cleverhans-lab/decaph/blob/HEAD/utils.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":"b9310565eacff215"}},{"code_sha256_prefix":"a450a4b5fa3d8a46","entry":"get_pancreas_data","repo":"cleverhans-lab/decaph","repo_kind":"official","path":"datasets_utils/pancreas/pancreas_utils.py","file_url":"https://github.com/cleverhans-lab/decaph/blob/HEAD/datasets_utils/pancreas/pancreas_utils.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":"a450a4b5fa3d8a46"}},{"code_sha256_prefix":"017e9c76b5691ddd","entry":"get_torch_dataset_pancreas","repo":"cleverhans-lab/decaph","repo_kind":"official","path":"datasets_utils/pancreas/pancreas_utils.py","file_url":"https://github.com/cleverhans-lab/decaph/blob/HEAD/datasets_utils/pancreas/pancreas_utils.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":"017e9c76b5691ddd"}},{"code_sha256_prefix":"741e511d0fe8ea3a","entry":"normalize","repo":"cleverhans-lab/decaph","repo_kind":"official","path":"torchxrayvision/datasets.py","file_url":"https://github.com/cleverhans-lab/decaph/blob/HEAD/torchxrayvision/datasets.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":"741e511d0fe8ea3a"}},{"code_sha256_prefix":"f8f9c1174cfe6bab","entry":"op_norm","repo":"cleverhans-lab/decaph","repo_kind":"official","path":"torchxrayvision/models.py","file_url":"https://github.com/cleverhans-lab/decaph/blob/HEAD/torchxrayvision/models.py","link_basis":"plan_row","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"f8f9c1174cfe6bab"}},{"code_sha256_prefix":"c09abfb52cbe53d5","entry":"sample_clients_id","repo":"cleverhans-lab/decaph","repo_kind":"official","path":"client.py","file_url":"https://github.com/cleverhans-lab/decaph/blob/HEAD/client.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":"c09abfb52cbe53d5"}},{"code_sha256_prefix":"80c560b7316a1c66","entry":"ResNetAE","repo":"cleverhans-lab/decaph","repo_kind":"official","path":"torchxrayvision/autoencoders.py","file_url":"https://github.com/cleverhans-lab/decaph/blob/HEAD/torchxrayvision/autoencoders.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":"80c560b7316a1c66"}},{"code_sha256_prefix":"eae205c7d1648243","entry":"aggregate_models","repo":"cleverhans-lab/decaph","repo_kind":"official","path":"server.py","file_url":"https://github.com/cleverhans-lab/decaph/blob/HEAD/server.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":"eae205c7d1648243"}},{"code_sha256_prefix":"f14a8c13f5b9adda","entry":"compute_rdp_sample_without_replacement","repo":"cleverhans-lab/decaph","repo_kind":"official","path":"privacy_utils/rdp_accountant.py","file_url":"https://github.com/cleverhans-lab/decaph/blob/HEAD/privacy_utils/rdp_accountant.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":"f14a8c13f5b9adda"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}