{"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/energy-based-latent-aligner-for-incremental","title":"Energy-based Latent Aligner for Incremental Learning","arxiv_id":"2203.14952","date":"2022-03-28","proceeding":"CVPR 2022 1","authors":["K J Joseph","Salman Khan","Fahad Shahbaz Khan","Rao Muhammad Anwer","Vineeth N Balasubramanian"],"abstract":"Deep learning models tend to forget their earlier knowledge while incrementally learning new tasks. This behavior emerges because the parameter updates optimized for the new tasks may not align well with the updates suitable for older tasks. The resulting latent representation mismatch causes forgetting. In this work, we propose ELI: Energy-based Latent Aligner for Incremental Learning, which first learns an energy manifold for the latent representations such that previous task latents will have low energy and the current task latents have high energy values. This learned manifold is used to counter the representational shift that happens during incremental learning. The implicit regularization that is offered by our proposed methodology can be used as a plug-and-play module in existing incremental learning methodologies. We validate this through extensive evaluation on CIFAR-100, ImageNet subset, ImageNet 1k and Pascal VOC datasets. We observe consistent improvement when ELI is added to three prominent methodologies in class-incremental learning, across multiple incremental settings. Further, when added to the state-of-the-art incremental object detector, ELI provides over 5% improvement in detection accuracy, corroborating its effectiveness and complementary advantage to existing art.","url_abs":"https://arxiv.org/abs/2203.14952v1","url_pdf":"https://arxiv.org/pdf/2203.14952v1.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":"energy-based-latent-aligner-for-incremental","repo_url":"https://github.com/josephkj/eli","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"energy-based-latent-aligner-for-incremental","repo_url":"https://github.com/jie-su/bpd","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}}],"tasks":[{"task_slug":"class-incremental-learning","task_name":"Class Incremental Learning"},{"task_slug":"incremental-learning","task_name":"Incremental Learning"},{"task_slug":"class-incremental-learning-1","task_name":"class-incremental learning"}],"methods":[{"method_slug":"align","method_name":"ALIGN"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":null,"atlas_url":"https://app.syntology.ai/?focus=2203.14952","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2203.14952"}},"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/josephkj/eli","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/jie-su/bpd","reach":{"status":"ok","spdx":"Apache-2.0"}}],"summary":{"ran":2,"ran_draft_wrong":1,"unverified":10},"by_repo_kind":{"official":{"samples":3,"ran":2,"repositories":1},"listed":{"samples":10,"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":"1cb1eede30824641","entry":"EBM","repo":"josephkj/eli","repo_kind":"official","path":"classification/utils/ebm_aligner.py","file_url":"https://github.com/josephkj/eli/blob/HEAD/classification/utils/ebm_aligner.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"1cb1eede30824641"}},{"code_sha256_prefix":"f593c64c16aa19d9","entry":"EBMAligner","repo":"josephkj/eli","repo_kind":"official","path":"classification/utils/ebm_aligner.py","file_url":"https://github.com/josephkj/eli/blob/HEAD/classification/utils/ebm_aligner.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":"f593c64c16aa19d9"}},{"code_sha256_prefix":"cf78c734df121970","entry":"clones","repo":"jie-su/bpd","repo_kind":"listed","path":"model/layers_sub.py","file_url":"https://github.com/jie-su/bpd/blob/HEAD/model/layers_sub.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":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"cf78c734df121970"}},{"code_sha256_prefix":"6b27ea4ac6f86d40","entry":"Disentangler","repo":"jie-su/bpd","repo_kind":"listed","path":"model/build_net.py","file_url":"https://github.com/jie-su/bpd/blob/HEAD/model/build_net.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"6b27ea4ac6f86d40"}},{"code_sha256_prefix":"b39040341d334314","entry":"Generator","repo":"jie-su/bpd","repo_kind":"listed","path":"model/build_net.py","file_url":"https://github.com/jie-su/bpd/blob/HEAD/model/build_net.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"b39040341d334314"}},{"code_sha256_prefix":"890f680a573b7205","entry":"Reconstructor","repo":"jie-su/bpd","repo_kind":"listed","path":"model/build_net.py","file_url":"https://github.com/jie-su/bpd/blob/HEAD/model/build_net.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"890f680a573b7205"}},{"code_sha256_prefix":"c4da517c7047a35e","entry":"load_dsads","repo":"jie-su/bpd","repo_kind":"listed","path":"datasets/dataset_load.py","file_url":"https://github.com/jie-su/bpd/blob/HEAD/datasets/dataset_load.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"c4da517c7047a35e"}},{"code_sha256_prefix":"468fc4eb946078a7","entry":"load_mhealth","repo":"jie-su/bpd","repo_kind":"listed","path":"datasets/dataset_load.py","file_url":"https://github.com/jie-su/bpd/blob/HEAD/datasets/dataset_load.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"468fc4eb946078a7"}},{"code_sha256_prefix":"6600946312e48b28","entry":"load_pamap2","repo":"jie-su/bpd","repo_kind":"listed","path":"datasets/dataset_load.py","file_url":"https://github.com/jie-su/bpd/blob/HEAD/datasets/dataset_load.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"6600946312e48b28"}},{"code_sha256_prefix":"6d4971d4af2d0623","entry":"norm_shape","repo":"jie-su/bpd","repo_kind":"listed","path":"tool/utils.py","file_url":"https://github.com/jie-su/bpd/blob/HEAD/tool/utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"6d4971d4af2d0623"}},{"code_sha256_prefix":"e26044f85fda2569","entry":"process_inputs_fp","repo":"josephkj/eli","repo_kind":"official","path":"classification/utils/ebm_aligner.py","file_url":"https://github.com/josephkj/eli/blob/HEAD/classification/utils/ebm_aligner.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":"e26044f85fda2569"}},{"code_sha256_prefix":"058fe3614265d463","entry":"sliding_window","repo":"jie-su/bpd","repo_kind":"listed","path":"tool/utils.py","file_url":"https://github.com/jie-su/bpd/blob/HEAD/tool/utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"058fe3614265d463"}},{"code_sha256_prefix":"d1b2a3e236cfd907","entry":"str2bool","repo":"jie-su/bpd","repo_kind":"listed","path":"tool/utils.py","file_url":"https://github.com/jie-su/bpd/blob/HEAD/tool/utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"d1b2a3e236cfd907"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}