{"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/machine-unlearning-via-null-space-calibration","title":"Machine Unlearning via Null Space Calibration","arxiv_id":"2404.13588","date":"2024-04-21","proceeding":null,"authors":["Huiqiang Chen","Tianqing Zhu","Xin Yu","Wanlei Zhou"],"abstract":"Machine unlearning aims to enable models to forget specific data instances when receiving deletion requests. Current research centres on efficient unlearning to erase the influence of data from the model and neglects the subsequent impacts on the remaining data. Consequently, existing unlearning algorithms degrade the model's performance after unlearning, known as \\textit{over-unlearning}. This paper addresses this critical yet under-explored issue by introducing machine \\underline{U}nlearning via \\underline{N}ull \\underline{S}pace \\underline{C}alibration (UNSC), which can accurately unlearn target samples without over-unlearning. On the contrary, by calibrating the decision space during unlearning, UNSC can significantly improve the model's performance on the remaining samples. In particular, our approach hinges on confining the unlearning process to a specified null space tailored to the remaining samples, which is augmented by strategically pseudo-labeling the unlearning samples. Comparative analyses against several established baselines affirm the superiority of our approach. Code is released at this \\href{https://github.com/HQC-ML/Machine-Unlearning-via-Null-Space-Calibration}{URL}.","url_abs":"https://arxiv.org/abs/2404.13588v1","url_pdf":"https://arxiv.org/pdf/2404.13588v1.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":"machine-unlearning-via-null-space-calibration","repo_url":"https://github.com/hqc-ml/machine-unlearning-via-null-space-calibration","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"pytorch","reach":{"status":"ok"}}],"tasks":[{"task_slug":"machine-unlearning","task_name":"Machine Unlearning"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2404.13588","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2404.13588"}},"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/hqc-ml/machine-unlearning-via-null-space-calibration","reach":{"status":"ok"}},{"provenance":"deterministic:regex_extraction","url":"https://github.com/HQC-ML/UNSC","reach":null}],"summary":{"ran":6,"ran_honours":1,"unverified":2},"by_repo_kind":{"official":{"samples":7,"ran":6,"repositories":1},"found_in_text":{"samples":2,"ran":1,"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":9,"samples":[{"code_sha256_prefix":"69dc867f3bb650cf","entry":"Base","repo":"HQC-ML/UNSC","repo_kind":"found_in_text","path":"agents/boundary_unlearning.py","file_url":"https://github.com/HQC-ML/UNSC/blob/HEAD/agents/boundary_unlearning.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":"69dc867f3bb650cf"}},{"code_sha256_prefix":"2d2167892d059397","entry":"calc_feat_linear_cifar","repo":"hqc-ml/machine-unlearning-via-null-space-calibration","repo_kind":"official","path":"models/allcnn.py","file_url":"https://github.com/hqc-ml/machine-unlearning-via-null-space-calibration/blob/HEAD/models/allcnn.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":"2d2167892d059397"}},{"code_sha256_prefix":"e71c2a2bc2fc8909","entry":"compute_conv_output_size","repo":"hqc-ml/machine-unlearning-via-null-space-calibration","repo_kind":"official","path":"utils.py","file_url":"https://github.com/hqc-ml/machine-unlearning-via-null-space-calibration/blob/HEAD/utils.py","link_basis":"plan_row","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"well_formed","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"e71c2a2bc2fc8909"}},{"code_sha256_prefix":"f1e6cdb446bf4f82","entry":"compute_maximum_length","repo":"hqc-ml/machine-unlearning-via-null-space-calibration","repo_kind":"official","path":"utils.py","file_url":"https://github.com/hqc-ml/machine-unlearning-via-null-space-calibration/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":"f1e6cdb446bf4f82"}},{"code_sha256_prefix":"3068ed82cef91c51","entry":"make_layers","repo":"hqc-ml/machine-unlearning-via-null-space-calibration","repo_kind":"official","path":"models/vgg.py","file_url":"https://github.com/hqc-ml/machine-unlearning-via-null-space-calibration/blob/HEAD/models/vgg.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":"3068ed82cef91c51"}},{"code_sha256_prefix":"9aa3ad2a67059145","entry":"size_conv","repo":"hqc-ml/machine-unlearning-via-null-space-calibration","repo_kind":"official","path":"models/allcnn.py","file_url":"https://github.com/hqc-ml/machine-unlearning-via-null-space-calibration/blob/HEAD/models/allcnn.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":"9aa3ad2a67059145"}},{"code_sha256_prefix":"06d1fa6bd516130d","entry":"size_max_pool","repo":"hqc-ml/machine-unlearning-via-null-space-calibration","repo_kind":"official","path":"models/allcnn.py","file_url":"https://github.com/hqc-ml/machine-unlearning-via-null-space-calibration/blob/HEAD/models/allcnn.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":"06d1fa6bd516130d"}},{"code_sha256_prefix":"020b794c9d939f2c","entry":"Boundary_Unlearn","repo":"HQC-ML/UNSC","repo_kind":"found_in_text","path":"agents/boundary_unlearning.py","file_url":"https://github.com/HQC-ML/UNSC/blob/HEAD/agents/boundary_unlearning.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":"020b794c9d939f2c"}},{"code_sha256_prefix":"55f71aa994b5a19a","entry":"get_representation_matrix","repo":"hqc-ml/machine-unlearning-via-null-space-calibration","repo_kind":"official","path":"utils.py","file_url":"https://github.com/hqc-ml/machine-unlearning-via-null-space-calibration/blob/HEAD/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":"55f71aa994b5a19a"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}