{"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/continually-learning-self-supervised","title":"Continually Learning Self-Supervised Representations with Projected Functional Regularization","arxiv_id":"2112.15022","date":"2021-12-30","proceeding":null,"authors":["Alex Gomez-Villa","Bartlomiej Twardowski","Lu Yu","Andrew D. Bagdanov","Joost Van de Weijer"],"abstract":"Recent self-supervised learning methods are able to learn high-quality image representations and are closing the gap with supervised approaches. However, these methods are unable to acquire new knowledge incrementally -- they are, in fact, mostly used only as a pre-training phase over IID data. In this work we investigate self-supervised methods in continual learning regimes without any replay mechanism. We show that naive functional regularization, also known as feature distillation, leads to lower plasticity and limits continual learning performance. Instead, we propose Projected Functional Regularization in which a separate temporal projection network ensures that the newly learned feature space preserves information of the previous one, while at the same time allowing for the learning of new features. This prevents forgetting while maintaining the plasticity of the learner. Comparison with other incremental learning approaches applied to self-supervision demonstrates that our method obtains competitive performance in different scenarios and on multiple datasets.","url_abs":"https://arxiv.org/abs/2112.15022v2","url_pdf":"https://arxiv.org/pdf/2112.15022v2.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":"continually-learning-self-supervised","repo_url":"https://github.com/alviur/cvpr_pfr","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"},{"task_slug":"incremental-learning","task_name":"Incremental Learning"},{"task_slug":"self-supervised-learning","task_name":"Self-Supervised Learning"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2112.15022","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2112.15022"}},"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/alviur/cvpr_pfr","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran":4,"ran_fixture":1,"ran_honours":1,"unverified":2},"by_repo_kind":{"official":{"samples":8,"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":"132a949a804eb81e","entry":"barlow_loss_func","repo":"alviur/cvpr_pfr","repo_kind":"official","path":"cassle/losses/barlow.py","file_url":"https://github.com/alviur/cvpr_pfr/blob/HEAD/cassle/losses/barlow.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":"132a949a804eb81e"}},{"code_sha256_prefix":"33aef221912d8415","entry":"byol_loss_func","repo":"alviur/cvpr_pfr","repo_kind":"official","path":"cassle/losses/byol.py","file_url":"https://github.com/alviur/cvpr_pfr/blob/HEAD/cassle/losses/byol.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":"33aef221912d8415"}},{"code_sha256_prefix":"2e8bb65a92ffe11e","entry":"dict_to_list","repo":"alviur/cvpr_pfr","repo_kind":"official","path":"main_continual.py","file_url":"https://github.com/alviur/cvpr_pfr/blob/HEAD/main_continual.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":"2e8bb65a92ffe11e"}},{"code_sha256_prefix":"2ade5ee5636e4e1e","entry":"moco_loss_func","repo":"alviur/cvpr_pfr","repo_kind":"official","path":"cassle/losses/moco.py","file_url":"https://github.com/alviur/cvpr_pfr/blob/HEAD/cassle/losses/moco.py","link_basis":"harvester_set","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"2ade5ee5636e4e1e"}},{"code_sha256_prefix":"779f0ded23fd8106","entry":"ressl_loss_func","repo":"alviur/cvpr_pfr","repo_kind":"official","path":"cassle/losses/ressl.py","file_url":"https://github.com/alviur/cvpr_pfr/blob/HEAD/cassle/losses/ressl.py","link_basis":"harvester_set","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"779f0ded23fd8106"}},{"code_sha256_prefix":"0cc8b473b7806887","entry":"str_to_dict","repo":"alviur/cvpr_pfr","repo_kind":"official","path":"main_continual.py","file_url":"https://github.com/alviur/cvpr_pfr/blob/HEAD/main_continual.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":"0cc8b473b7806887"}},{"code_sha256_prefix":"ce432f2e9653c7a3","entry":"deepclusterv2_loss_func","repo":"alviur/cvpr_pfr","repo_kind":"official","path":"cassle/losses/deepclusterv2.py","file_url":"https://github.com/alviur/cvpr_pfr/blob/HEAD/cassle/losses/deepclusterv2.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":"ce432f2e9653c7a3"}},{"code_sha256_prefix":"510ce8dfc2a8228d","entry":"nnclr_loss_func","repo":"alviur/cvpr_pfr","repo_kind":"official","path":"cassle/losses/nnclr.py","file_url":"https://github.com/alviur/cvpr_pfr/blob/HEAD/cassle/losses/nnclr.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":"510ce8dfc2a8228d"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}