{"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/continual-learning-with-weight-interpolation","title":"Continual Learning with Weight Interpolation","arxiv_id":"2404.04002","date":"2024-04-05","proceeding":null,"authors":["Jędrzej Kozal","Jan Wasilewski","Bartosz Krawczyk","Michał Woźniak"],"abstract":"Continual learning poses a fundamental challenge for modern machine learning systems, requiring models to adapt to new tasks while retaining knowledge from previous ones. Addressing this challenge necessitates the development of efficient algorithms capable of learning from data streams and accumulating knowledge over time. This paper proposes a novel approach to continual learning utilizing the weight consolidation method. Our method, a simple yet powerful technique, enhances robustness against catastrophic forgetting by interpolating between old and new model weights after each novel task, effectively merging two models to facilitate exploration of local minima emerging after arrival of new concepts. Moreover, we demonstrate that our approach can complement existing rehearsal-based replay approaches, improving their accuracy and further mitigating the forgetting phenomenon. Additionally, our method provides an intuitive mechanism for controlling the stability-plasticity trade-off. Experimental results showcase the significant performance enhancement to state-of-the-art experience replay algorithms the proposed weight consolidation approach offers. Our algorithm can be downloaded from https://github.com/jedrzejkozal/weight-interpolation-cl.","url_abs":"https://arxiv.org/abs/2404.04002v2","url_pdf":"https://arxiv.org/pdf/2404.04002v2.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":"continual-learning-with-weight-interpolation","repo_url":"https://github.com/jedrzejkozal/weight-interpolation-cl","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"continual-learning","task_name":"Continual Learning"}],"methods":[{"method_slug":"experience-replay","method_name":"Experience Replay"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2404.04002","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2404.04002"}},"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/jedrzejkozal/weight-interpolation-cl","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran":4,"unverified":1},"by_repo_kind":{"official":{"samples":5,"ran":4,"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":"jedrzejkozal/weight-interpolation-cl","repo_kind":"official","path":"backbone/EfficientNet.py","file_url":"https://github.com/jedrzejkozal/weight-interpolation-cl/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":"f1e3c822763f3ebb","entry":"drop_connect","repo":"jedrzejkozal/weight-interpolation-cl","repo_kind":"official","path":"backbone/EfficientNet.py","file_url":"https://github.com/jedrzejkozal/weight-interpolation-cl/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":"jedrzejkozal/weight-interpolation-cl","repo_kind":"official","path":"backbone/EfficientNet.py","file_url":"https://github.com/jedrzejkozal/weight-interpolation-cl/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"}},{"code_sha256_prefix":"0cfcbb13d0c1869a","entry":"select_best","repo":"jedrzejkozal/weight-interpolation-cl","repo_kind":"official","path":"hyperparameters.py","file_url":"https://github.com/jedrzejkozal/weight-interpolation-cl/blob/HEAD/hyperparameters.py","link_basis":"first_harvest_node","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":"0cfcbb13d0c1869a"}},{"code_sha256_prefix":"4c2989ace7c5c0da","entry":"conv3x3","repo":"jedrzejkozal/weight-interpolation-cl","repo_kind":"official","path":"backbone/ResNet18.py","file_url":"https://github.com/jedrzejkozal/weight-interpolation-cl/blob/HEAD/backbone/ResNet18.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":"4c2989ace7c5c0da"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}