{"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/can-bad-teaching-induce-forgetting-unlearning","title":"Can Bad Teaching Induce Forgetting? Unlearning in Deep Networks using an Incompetent Teacher","arxiv_id":"2205.08096","date":"2022-05-17","proceeding":null,"authors":["Vikram S Chundawat","Ayush K Tarun","Murari Mandal","Mohan Kankanhalli"],"abstract":"Machine unlearning has become an important area of research due to an increasing need for machine learning (ML) applications to comply with the emerging data privacy regulations. It facilitates the provision for removal of certain set or class of data from an already trained ML model without requiring retraining from scratch. Recently, several efforts have been put in to make unlearning to be effective and efficient. We propose a novel machine unlearning method by exploring the utility of competent and incompetent teachers in a student-teacher framework to induce forgetfulness. The knowledge from the competent and incompetent teachers is selectively transferred to the student to obtain a model that doesn't contain any information about the forget data. We experimentally show that this method generalizes well, is fast and effective. Furthermore, we introduce the zero retrain forgetting (ZRF) metric to evaluate any unlearning method. Unlike the existing unlearning metrics, the ZRF score does not depend on the availability of the expensive retrained model. This makes it useful for analysis of the unlearned model after deployment as well. We present results of experiments conducted for random subset forgetting and class forgetting on various deep networks and across different application domains.~Source code is at: https://github.com/vikram2000b/bad-teaching-unlearning","url_abs":"https://arxiv.org/abs/2205.08096v2","url_pdf":"https://arxiv.org/pdf/2205.08096v2.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":"can-bad-teaching-induce-forgetting-unlearning","repo_url":"https://github.com/vikram2000b/bad-teaching-unlearning","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"machine-unlearning","task_name":"Machine Unlearning"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2205.08096","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2205.08096"}},"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/vikram2000b/bad-teaching-unlearning","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran":4,"ran_draft_wrong":1,"ran_honours":1,"unverified":3},"by_repo_kind":{"official":{"samples":9,"ran":6,"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":"65e6e724245e6071","entry":"JSDiv","repo":"vikram2000b/bad-teaching-unlearning","repo_kind":"official","path":"metrics.py","file_url":"https://github.com/vikram2000b/bad-teaching-unlearning/blob/HEAD/metrics.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":"65e6e724245e6071"}},{"code_sha256_prefix":"e982685418b19915","entry":"UnLearningScore","repo":"vikram2000b/bad-teaching-unlearning","repo_kind":"official","path":"metrics.py","file_url":"https://github.com/vikram2000b/bad-teaching-unlearning/blob/HEAD/metrics.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":"e982685418b19915"}},{"code_sha256_prefix":"35a220c6eeea45d4","entry":"UnlearnerLoss","repo":"vikram2000b/bad-teaching-unlearning","repo_kind":"official","path":"unlearn.py","file_url":"https://github.com/vikram2000b/bad-teaching-unlearning/blob/HEAD/unlearn.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"35a220c6eeea45d4"}},{"code_sha256_prefix":"e8dbb156b1109cfa","entry":"accuracy","repo":"vikram2000b/bad-teaching-unlearning","repo_kind":"official","path":"utils.py","file_url":"https://github.com/vikram2000b/bad-teaching-unlearning/blob/HEAD/utils.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":"e8dbb156b1109cfa"}},{"code_sha256_prefix":"4a12bd3434683bbc","entry":"entropy","repo":"vikram2000b/bad-teaching-unlearning","repo_kind":"official","path":"metrics.py","file_url":"https://github.com/vikram2000b/bad-teaching-unlearning/blob/HEAD/metrics.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":"4a12bd3434683bbc"}},{"code_sha256_prefix":"7920183b7b2256da","entry":"unlearning_step","repo":"vikram2000b/bad-teaching-unlearning","repo_kind":"official","path":"unlearn.py","file_url":"https://github.com/vikram2000b/bad-teaching-unlearning/blob/HEAD/unlearn.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":"7920183b7b2256da"}},{"code_sha256_prefix":"015561a0364e1ddb","entry":"fit_one_unlearning_cycle","repo":"vikram2000b/bad-teaching-unlearning","repo_kind":"official","path":"unlearn.py","file_url":"https://github.com/vikram2000b/bad-teaching-unlearning/blob/HEAD/unlearn.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":"015561a0364e1ddb"}},{"code_sha256_prefix":"cc6e4e27f3ee438c","entry":"training_step","repo":"vikram2000b/bad-teaching-unlearning","repo_kind":"official","path":"utils.py","file_url":"https://github.com/vikram2000b/bad-teaching-unlearning/blob/HEAD/utils.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":"cc6e4e27f3ee438c"}},{"code_sha256_prefix":"ea77dadbbf5a920e","entry":"validation_step","repo":"vikram2000b/bad-teaching-unlearning","repo_kind":"official","path":"utils.py","file_url":"https://github.com/vikram2000b/bad-teaching-unlearning/blob/HEAD/utils.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":"ea77dadbbf5a920e"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}