{"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/order-robust-class-incremental-learning-graph","title":"Order-Robust Class Incremental Learning: Graph-Driven Dynamic Similarity Grouping","arxiv_id":"2502.20032","date":"2025-02-27","proceeding":"CVPR 2025 1","authors":["Guannan Lai","Yujie Li","Xiangkun Wang","Junbo Zhang","Tianrui Li","Xin Yang"],"abstract":"Class Incremental Learning (CIL) requires a model to continuously learn new classes without forgetting previously learned ones. While recent studies have significantly alleviated the problem of catastrophic forgetting (CF), more and more research reveals that the order in which classes appear have significant influences on CIL models. Specifically, prioritizing the learning of classes with lower similarity will enhance the model's generalization performance and its ability to mitigate forgetting. Hence, it is imperative to develop an order-robust class incremental learning model that maintains stable performance even when faced with varying levels of class similarity in different orders. In response, we first provide additional theoretical analysis, which reveals that when the similarity among a group of classes is lower, the model demonstrates increased robustness to the class order. Then, we introduce a novel \\textbf{G}raph-\\textbf{D}riven \\textbf{D}ynamic \\textbf{S}imilarity \\textbf{G}rouping (\\textbf{GDDSG}) method, which leverages a graph coloring algorithm for class-based similarity grouping. The proposed approach trains independent CIL models for each group of classes, ultimately combining these models to facilitate joint prediction. Experimental results demonstrate that our method effectively addresses the issue of class order sensitivity while achieving optimal performance in both model accuracy and anti-forgetting capability. Our code is available at https://github.com/AIGNLAI/GDDSG.","url_abs":"https://arxiv.org/abs/2502.20032v1","url_pdf":"https://arxiv.org/pdf/2502.20032v1.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":"order-robust-class-incremental-learning-graph","repo_url":"https://github.com/aignlai/gddsg","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"pytorch","reach":null}],"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":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2502.20032","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2502.20032"}},"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":"deterministic:regex_extraction","url":"https://github.com/AIGNLAI/GDDSG","reach":null}],"summary":{"ran":1,"ran_draft_wrong":3,"unverified":6},"by_repo_kind":{"official":{"samples":10,"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":10,"samples":[{"code_sha256_prefix":"b312457d278089c4","entry":"CosineLinear","repo":"AIGNLAI/GDDSG","repo_kind":"official","path":"GDDSG.py","file_url":"https://github.com/AIGNLAI/GDDSG/blob/HEAD/GDDSG.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"b312457d278089c4"}},{"code_sha256_prefix":"95a009e8cb945b91","entry":"accuracy","repo":"AIGNLAI/GDDSG","repo_kind":"official","path":"GDDSG.py","file_url":"https://github.com/AIGNLAI/GDDSG/blob/HEAD/GDDSG.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"95a009e8cb945b91"}},{"code_sha256_prefix":"48066f595df2757e","entry":"maxsplit","repo":"AIGNLAI/GDDSG","repo_kind":"official","path":"GDDSG.py","file_url":"https://github.com/AIGNLAI/GDDSG/blob/HEAD/GDDSG.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"48066f595df2757e"}},{"code_sha256_prefix":"cc729692ea3b4959","entry":"select_random_pairs","repo":"AIGNLAI/GDDSG","repo_kind":"official","path":"GDDSG.py","file_url":"https://github.com/AIGNLAI/GDDSG/blob/HEAD/GDDSG.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":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"cc729692ea3b4959"}},{"code_sha256_prefix":"a567f058afa20de1","entry":"BaseLearner","repo":"AIGNLAI/GDDSG","repo_kind":"official","path":"GDDSG.py","file_url":"https://github.com/AIGNLAI/GDDSG/blob/HEAD/GDDSG.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"a567f058afa20de1"}},{"code_sha256_prefix":"2cabd1fb18e7bafc","entry":"BaseNet","repo":"AIGNLAI/GDDSG","repo_kind":"official","path":"GDDSG.py","file_url":"https://github.com/AIGNLAI/GDDSG/blob/HEAD/GDDSG.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"2cabd1fb18e7bafc"}},{"code_sha256_prefix":"95f34200e2374020","entry":"Learner","repo":"AIGNLAI/GDDSG","repo_kind":"official","path":"GDDSG.py","file_url":"https://github.com/AIGNLAI/GDDSG/blob/HEAD/GDDSG.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"95f34200e2374020"}},{"code_sha256_prefix":"3392baec348062a0","entry":"ResNetCosineIncrementalNet","repo":"AIGNLAI/GDDSG","repo_kind":"official","path":"GDDSG.py","file_url":"https://github.com/AIGNLAI/GDDSG/blob/HEAD/GDDSG.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"3392baec348062a0"}},{"code_sha256_prefix":"e689a4b7ee9dde6c","entry":"SimpleVitNet","repo":"AIGNLAI/GDDSG","repo_kind":"official","path":"GDDSG.py","file_url":"https://github.com/AIGNLAI/GDDSG/blob/HEAD/GDDSG.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"e689a4b7ee9dde6c"}},{"code_sha256_prefix":"a9c49573d599bef5","entry":"get_convnet","repo":"AIGNLAI/GDDSG","repo_kind":"official","path":"GDDSG.py","file_url":"https://github.com/AIGNLAI/GDDSG/blob/HEAD/GDDSG.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"a9c49573d599bef5"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}