{"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/elastic-feature-consolidation-for-cold-start","title":"Elastic Feature Consolidation for Cold Start Exemplar-Free Incremental Learning","arxiv_id":"2402.03917","date":"2024-02-06","proceeding":null,"authors":["Simone Magistri","Tomaso Trinci","Albin Soutif-Cormerais","Joost Van de Weijer","Andrew D. Bagdanov"],"abstract":"Exemplar-Free Class Incremental Learning (EFCIL) aims to learn from a sequence of tasks without having access to previous task data. In this paper, we consider the challenging Cold Start scenario in which insufficient data is available in the first task to learn a high-quality backbone. This is especially challenging for EFCIL since it requires high plasticity, which results in feature drift which is difficult to compensate for in the exemplar-free setting. To address this problem, we propose a simple and effective approach that consolidates feature representations by regularizing drift in directions highly relevant to previous tasks and employs prototypes to reduce task-recency bias. Our method, called Elastic Feature Consolidation (EFC), exploits a tractable second-order approximation of feature drift based on an Empirical Feature Matrix (EFM). The EFM induces a pseudo-metric in feature space which we use to regularize feature drift in important directions and to update Gaussian prototypes used in a novel asymmetric cross entropy loss which effectively balances prototype rehearsal with data from new tasks. Experimental results on CIFAR-100, Tiny-ImageNet, ImageNet-Subset and ImageNet-1K demonstrate that Elastic Feature Consolidation is better able to learn new tasks by maintaining model plasticity and significantly outperform the state-of-the-art.","url_abs":"https://arxiv.org/abs/2402.03917v3","url_pdf":"https://arxiv.org/pdf/2402.03917v3.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":"elastic-feature-consolidation-for-cold-start","repo_url":"https://github.com/simomagi/elastic_feature_consolidation","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"class-incremental-learning","task_name":"Class Incremental Learning"},{"task_slug":"exemplar-free","task_name":"Exemplar-Free"},{"task_slug":"incremental-learning","task_name":"Incremental Learning"},{"task_slug":"class-incremental-learning-1","task_name":"class-incremental learning"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2402.03917","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2402.03917"}},"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/simomagi/elastic_feature_consolidation","reach":null}],"summary":{"ran":2,"ran_draft_wrong":1,"unverified":10},"by_repo_kind":{"official":{"samples":13,"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":0,"samples":[{"code_sha256_prefix":"4cd79b2db832de96","entry":"compute_rotations","repo":"simomagi/elastic_feature_consolidation","repo_kind":"official","path":"continual_learning/ElasticFeatureConsolidation.py","file_url":"https://github.com/simomagi/elastic_feature_consolidation/blob/HEAD/continual_learning/ElasticFeatureConsolidation.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":"4cd79b2db832de96"}},{"code_sha256_prefix":"f0c51a2aeac2c22d","entry":"get_old_new_features","repo":"simomagi/elastic_feature_consolidation","repo_kind":"official","path":"continual_learning/ElasticFeatureConsolidation.py","file_url":"https://github.com/simomagi/elastic_feature_consolidation/blob/HEAD/continual_learning/ElasticFeatureConsolidation.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":"f0c51a2aeac2c22d"}},{"code_sha256_prefix":"140a2e224e6c74b7","entry":"isPSD","repo":"simomagi/elastic_feature_consolidation","repo_kind":"official","path":"continual_learning/ElasticFeatureConsolidation.py","file_url":"https://github.com/simomagi/elastic_feature_consolidation/blob/HEAD/continual_learning/ElasticFeatureConsolidation.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"140a2e224e6c74b7"}},{"code_sha256_prefix":"a398f8a6914af58e","entry":"BaseModel","repo":"simomagi/elastic_feature_consolidation","repo_kind":"official","path":"continual_learning/ElasticFeatureConsolidation.py","file_url":"https://github.com/simomagi/elastic_feature_consolidation/blob/HEAD/continual_learning/ElasticFeatureConsolidation.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":"a398f8a6914af58e"}},{"code_sha256_prefix":"d728f908ea887920","entry":"Buffer","repo":"simomagi/elastic_feature_consolidation","repo_kind":"official","path":"continual_learning/ElasticFeatureConsolidation.py","file_url":"https://github.com/simomagi/elastic_feature_consolidation/blob/HEAD/continual_learning/ElasticFeatureConsolidation.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":"d728f908ea887920"}},{"code_sha256_prefix":"85ba4c27ed6db438","entry":"ElasticFeatureConsolidation","repo":"simomagi/elastic_feature_consolidation","repo_kind":"official","path":"continual_learning/ElasticFeatureConsolidation.py","file_url":"https://github.com/simomagi/elastic_feature_consolidation/blob/HEAD/continual_learning/ElasticFeatureConsolidation.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":"85ba4c27ed6db438"}},{"code_sha256_prefix":"d4648823762d5814","entry":"EmpiricalFeatureMatrix","repo":"simomagi/elastic_feature_consolidation","repo_kind":"official","path":"continual_learning/ElasticFeatureConsolidation.py","file_url":"https://github.com/simomagi/elastic_feature_consolidation/blob/HEAD/continual_learning/ElasticFeatureConsolidation.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":"d4648823762d5814"}},{"code_sha256_prefix":"a3dbe9c6582e4c7a","entry":"IncrementalApproach","repo":"simomagi/elastic_feature_consolidation","repo_kind":"official","path":"continual_learning/ElasticFeatureConsolidation.py","file_url":"https://github.com/simomagi/elastic_feature_consolidation/blob/HEAD/continual_learning/ElasticFeatureConsolidation.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":"a3dbe9c6582e4c7a"}},{"code_sha256_prefix":"c8481ff740d222a8","entry":"MetricEvaluator","repo":"simomagi/elastic_feature_consolidation","repo_kind":"official","path":"continual_learning/ElasticFeatureConsolidation.py","file_url":"https://github.com/simomagi/elastic_feature_consolidation/blob/HEAD/continual_learning/ElasticFeatureConsolidation.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":"c8481ff740d222a8"}},{"code_sha256_prefix":"29713ca926090a41","entry":"OptimizerManager","repo":"simomagi/elastic_feature_consolidation","repo_kind":"official","path":"continual_learning/ElasticFeatureConsolidation.py","file_url":"https://github.com/simomagi/elastic_feature_consolidation/blob/HEAD/continual_learning/ElasticFeatureConsolidation.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":"29713ca926090a41"}},{"code_sha256_prefix":"a16107eebc2360c6","entry":"ProtoGenerator","repo":"simomagi/elastic_feature_consolidation","repo_kind":"official","path":"continual_learning/ElasticFeatureConsolidation.py","file_url":"https://github.com/simomagi/elastic_feature_consolidation/blob/HEAD/continual_learning/ElasticFeatureConsolidation.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":"a16107eebc2360c6"}},{"code_sha256_prefix":"132bb32960f1c47e","entry":"ProtoManager","repo":"simomagi/elastic_feature_consolidation","repo_kind":"official","path":"continual_learning/ElasticFeatureConsolidation.py","file_url":"https://github.com/simomagi/elastic_feature_consolidation/blob/HEAD/continual_learning/ElasticFeatureConsolidation.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":"132bb32960f1c47e"}},{"code_sha256_prefix":"55221a7e9c3f3bf3","entry":"save_efm","repo":"simomagi/elastic_feature_consolidation","repo_kind":"official","path":"continual_learning/ElasticFeatureConsolidation.py","file_url":"https://github.com/simomagi/elastic_feature_consolidation/blob/HEAD/continual_learning/ElasticFeatureConsolidation.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":"55221a7e9c3f3bf3"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}