{"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/rethinking-continual-learning-with","title":"Rethinking Continual Learning with Progressive Neural Collapse","arxiv_id":"2505.24254","date":"2025-05-30","proceeding":null,"authors":["Zheng Wang","Wanhao Yu","Li Yang","Sen Lin"],"abstract":"Continual Learning (CL) seeks to build an agent that can continuously learn a sequence of tasks, where a key challenge, namely Catastrophic Forgetting, persists due to the potential knowledge interference among different tasks. On the other hand, deep neural networks (DNNs) are shown to converge to a terminal state termed Neural Collapse during training, where all class prototypes geometrically form a static simplex equiangular tight frame (ETF). These maximally and equally separated class prototypes make the ETF an ideal target for model learning in CL to mitigate knowledge interference. Thus inspired, several studies have emerged very recently to leverage a fixed global ETF in CL, which however suffers from key drawbacks, such as impracticability and limited performance.To address these challenges and fully unlock the potential of ETF in CL, we propose Progressive Neural Collapse (ProNC), a novel framework that completely removes the need of a fixed global ETF in CL. Specifically, ProNC progressively expands the ETF target in a principled way by adding new class prototypes as vertices for new tasks, ensuring maximal separability across all encountered classes with minimal shifts from the previous ETF. We next develop a new CL framework by plugging ProNC into commonly used CL algorithm designs, where distillation is further leveraged to balance between target shifting for old classes and target aligning for new classes. Extensive experiments show that our approach significantly outperforms related baselines while maintaining superior flexibility, simplicity, and efficiency.","url_abs":"https://arxiv.org/abs/2505.24254v1","url_pdf":"https://arxiv.org/pdf/2505.24254v1.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":[],"tasks":[{"task_slug":"continual-learning","task_name":"Continual Learning"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2505.24254","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2505.24254"}},"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/Continue-Edge-AI-Lab/ProNC","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran":4,"ran_draft_wrong":2},"by_repo_kind":{"found_in_text":{"samples":6,"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":"7e7efa6d1976111a","entry":"calculate_output_image_size","repo":"Continue-Edge-AI-Lab/ProNC","repo_kind":"found_in_text","path":"backbone/EfficientNet.py","file_url":"https://github.com/Continue-Edge-AI-Lab/ProNC/blob/HEAD/backbone/EfficientNet.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":"7e7efa6d1976111a"}},{"code_sha256_prefix":"2a80220dabcb742a","entry":"conv1x1","repo":"Continue-Edge-AI-Lab/ProNC","repo_kind":"found_in_text","path":"backbone/ResNetBottleneck.py","file_url":"https://github.com/Continue-Edge-AI-Lab/ProNC/blob/HEAD/backbone/ResNetBottleneck.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"2a80220dabcb742a"}},{"code_sha256_prefix":"600ff2c45e0de056","entry":"conv3x3","repo":"Continue-Edge-AI-Lab/ProNC","repo_kind":"found_in_text","path":"backbone/ResNetBottleneck.py","file_url":"https://github.com/Continue-Edge-AI-Lab/ProNC/blob/HEAD/backbone/ResNetBottleneck.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"600ff2c45e0de056"}},{"code_sha256_prefix":"25e04c3b7a8cc075","entry":"conv3x3","repo":"Continue-Edge-AI-Lab/ProNC","repo_kind":"found_in_text","path":"backbone/ResNetBlock.py","file_url":"https://github.com/Continue-Edge-AI-Lab/ProNC/blob/HEAD/backbone/ResNetBlock.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":"25e04c3b7a8cc075"}},{"code_sha256_prefix":"f1e3c822763f3ebb","entry":"drop_connect","repo":"Continue-Edge-AI-Lab/ProNC","repo_kind":"found_in_text","path":"backbone/EfficientNet.py","file_url":"https://github.com/Continue-Edge-AI-Lab/ProNC/blob/HEAD/backbone/EfficientNet.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":"f1e3c822763f3ebb"}},{"code_sha256_prefix":"1e2dad967f965366","entry":"get_width_and_height_from_size","repo":"Continue-Edge-AI-Lab/ProNC","repo_kind":"found_in_text","path":"backbone/EfficientNet.py","file_url":"https://github.com/Continue-Edge-AI-Lab/ProNC/blob/HEAD/backbone/EfficientNet.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":"1e2dad967f965366"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}