{"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/cpr-classifier-projection-regularization-for","title":"CPR: Classifier-Projection Regularization for Continual Learning","arxiv_id":"2006.07326","date":"2020-06-12","proceeding":"ICLR 2021 1","authors":["Sungmin Cha","Hsiang Hsu","Taebaek Hwang","Flavio P. Calmon","Taesup Moon"],"abstract":"We propose a general, yet simple patch that can be applied to existing regularization-based continual learning methods called classifier-projection regularization (CPR). Inspired by both recent results on neural networks with wide local minima and information theory, CPR adds an additional regularization term that maximizes the entropy of a classifier's output probability. We demonstrate that this additional term can be interpreted as a projection of the conditional probability given by a classifier's output to the uniform distribution. By applying the Pythagorean theorem for KL divergence, we then prove that this projection may (in theory) improve the performance of continual learning methods. In our extensive experimental results, we apply CPR to several state-of-the-art regularization-based continual learning methods and benchmark performance on popular image recognition datasets. Our results demonstrate that CPR indeed promotes a wide local minima and significantly improves both accuracy and plasticity while simultaneously mitigating the catastrophic forgetting of baseline continual learning methods. The codes and scripts for this work are available at https://github.com/csm9493/CPR_CL.","url_abs":"https://arxiv.org/abs/2006.07326v2","url_pdf":"https://arxiv.org/pdf/2006.07326v2.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":"cpr-classifier-projection-regularization-for","repo_url":"https://github.com/csm9493/CPR_CL","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"continual-learning","task_name":"Continual Learning"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2006.07326","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2006.07326"}},"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/csm9493/CPR_CL","reach":null}],"summary":{"ran":2,"ran_draft_wrong":2,"unverified":2},"by_repo_kind":{"official":{"samples":5,"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":"cb9317a345f54a2a","entry":"Appr","repo":"csm9493/CPR_CL","repo_kind":"official","path":"approaches/ags_cl_cpr.py","file_url":"https://github.com/csm9493/CPR_CL/blob/HEAD/approaches/ags_cl_cpr.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":"cb9317a345f54a2a"}},{"code_sha256_prefix":"fcb6a94c25b8785b","entry":"CPR","repo":"csm9493/CPR_CL","repo_kind":"official","path":"approaches/ags_cl_cpr.py","file_url":"https://github.com/csm9493/CPR_CL/blob/HEAD/approaches/ags_cl_cpr.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":"fcb6a94c25b8785b"}},{"code_sha256_prefix":"ebd151f2b9fc07af","entry":"get_model","repo":null,"repo_kind":null,"path":null,"file_url":null,"link_basis":"identical_code_first_harvested_elsewhere","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":null,"inline_ok":false,"mcp_get_code":{"code_sha256":"ebd151f2b9fc07af"}},{"code_sha256_prefix":"c5f89c0918a00536","entry":"gs_cal","repo":"csm9493/CPR_CL","repo_kind":"official","path":"approaches/ags_cl_cpr.py","file_url":"https://github.com/csm9493/CPR_CL/blob/HEAD/approaches/ags_cl_cpr.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"c5f89c0918a00536"}},{"code_sha256_prefix":"26c79efcdfaa6774","entry":"freeze_model","repo":"csm9493/CPR_CL","repo_kind":"official","path":"approaches/ags_cl_cpr.py","file_url":"https://github.com/csm9493/CPR_CL/blob/HEAD/approaches/ags_cl_cpr.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":"26c79efcdfaa6774"}},{"code_sha256_prefix":"d445207730f05972","entry":"set_model_","repo":"csm9493/CPR_CL","repo_kind":"official","path":"approaches/ags_cl_cpr.py","file_url":"https://github.com/csm9493/CPR_CL/blob/HEAD/approaches/ags_cl_cpr.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":"d445207730f05972"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}