{"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/natural-continual-learning-success-is-a","title":"Natural continual learning: success is a journey, not (just) a destination","arxiv_id":"2106.08085","date":"2021-06-15","proceeding":"NeurIPS 2021 12","authors":["Ta-Chu Kao","Kristopher T. Jensen","Gido M. van de Ven","Alberto Bernacchia","Guillaume Hennequin"],"abstract":"Biological agents are known to learn many different tasks over the course of their lives, and to be able to revisit previous tasks and behaviors with little to no loss in performance. In contrast, artificial agents are prone to 'catastrophic forgetting' whereby performance on previous tasks deteriorates rapidly as new ones are acquired. This shortcoming has recently been addressed using methods that encourage parameters to stay close to those used for previous tasks. This can be done by (i) using specific parameter regularizers that map out suitable destinations in parameter space, or (ii) guiding the optimization journey by projecting gradients into subspaces that do not interfere with previous tasks. However, these methods often exhibit subpar performance in both feedforward and recurrent neural networks, with recurrent networks being of interest to the study of neural dynamics supporting biological continual learning. In this work, we propose Natural Continual Learning (NCL), a new method that unifies weight regularization and projected gradient descent. NCL uses Bayesian weight regularization to encourage good performance on all tasks at convergence and combines this with gradient projection using the prior precision, which prevents catastrophic forgetting during optimization. Our method outperforms both standard weight regularization techniques and projection based approaches when applied to continual learning problems in feedforward and recurrent networks. Finally, the trained networks evolve task-specific dynamics that are strongly preserved as new tasks are learned, similar to experimental findings in biological circuits.","url_abs":"https://arxiv.org/abs/2106.08085v2","url_pdf":"https://arxiv.org/pdf/2106.08085v2.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":"natural-continual-learning-success-is-a","repo_url":"https://github.com/tachukao/ncl","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"jax","reach":null}],"tasks":[{"task_slug":"continual-learning","task_name":"Continual Learning"}],"methods":[{"method_slug":"ncl","method_name":"NCL"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2106.08085","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2106.08085"}},"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/tachukao/ncl","reach":null}],"summary":{"ran":1,"unverified":4},"by_repo_kind":{"official":{"samples":5,"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":0,"samples":[{"code_sha256_prefix":"3efa917468087d0d","entry":"TaskSet","repo":"tachukao/ncl","repo_kind":"official","path":"ncl/learners/laplace.py","file_url":"https://github.com/tachukao/ncl/blob/HEAD/ncl/learners/laplace.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":"3efa917468087d0d"}},{"code_sha256_prefix":"4806687f38714cd6","entry":"AbstractLearner","repo":"tachukao/ncl","repo_kind":"official","path":"ncl/learners/laplace.py","file_url":"https://github.com/tachukao/ncl/blob/HEAD/ncl/learners/laplace.py","link_basis":"first_harvest_node","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":"4806687f38714cd6"}},{"code_sha256_prefix":"7cdf217b133bf6fc","entry":"KFAC","repo":"tachukao/ncl","repo_kind":"official","path":"ncl/learners/laplace.py","file_url":"https://github.com/tachukao/ncl/blob/HEAD/ncl/learners/laplace.py","link_basis":"first_harvest_node","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":"7cdf217b133bf6fc"}},{"code_sha256_prefix":"6f73b6a8a0817470","entry":"Laplace","repo":"tachukao/ncl","repo_kind":"official","path":"ncl/learners/laplace.py","file_url":"https://github.com/tachukao/ncl/blob/HEAD/ncl/learners/laplace.py","link_basis":"first_harvest_node","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":"6f73b6a8a0817470"}},{"code_sha256_prefix":"a44c7c07b4f6054e","entry":"NCL","repo":"tachukao/ncl","repo_kind":"official","path":"ncl/learners/laplace.py","file_url":"https://github.com/tachukao/ncl/blob/HEAD/ncl/learners/laplace.py","link_basis":"first_harvest_node","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":"a44c7c07b4f6054e"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}