{"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/learning-a-unified-classifier-incrementally","title":"Learning a Unified Classifier Incrementally via Rebalancing","arxiv_id":null,"date":"2019-06-01","proceeding":"CVPR 2019 6","authors":["Saihui Hou"," Xinyu Pan"," Chen Change Loy"," Zilei Wang"," Dahua Lin"],"abstract":"Conventionally, deep neural networks are trained offline, relying on a large dataset prepared in advance. This paradigm is often challenged in real-world applications, e.g. online services that involve continuous streams of incoming data. Recently, incremental learning receives increasing attention, and is considered as a promising solution to the practical challenges mentioned above. However, it has been observed that incremental learning is subject to a fundamental difficulty -- catastrophic forgetting, namely adapting a model to new data often results in severe performance degradation on previous tasks or classes. Our study reveals that the imbalance between previous and new data is a crucial cause to this problem. In this work, we develop a new framework for incrementally learning a unified classifier, e.g. a classifier that treats both old and new classes uniformly. Specifically, we incorporate three components, cosine normalization, less-forget constraint, and inter-class separation, to mitigate the adverse effects of the imbalance. Experiments show that the proposed method can effectively rebalance the training process, thus obtaining superior performance compared to the existing methods. On CIFAR-100 and ImageNet, our method can reduce the classification errors by more than 6% and 13% respectively, under the incremental setting of 10 phases.\r","url_abs":"http://openaccess.thecvf.com/content_CVPR_2019/html/Hou_Learning_a_Unified_Classifier_Incrementally_via_Rebalancing_CVPR_2019_paper.html","url_pdf":"http://openaccess.thecvf.com/content_CVPR_2019/papers/Hou_Learning_a_Unified_Classifier_Incrementally_via_Rebalancing_CVPR_2019_paper.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":"learning-a-unified-classifier-incrementally","repo_url":"https://github.com/aimagelab/mammoth","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"learning-a-unified-classifier-incrementally","repo_url":"https://github.com/hshustc/CVPR19_Incremental_Learning","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"pytorch","reach":null},{"paper_slug":"learning-a-unified-classifier-incrementally","repo_url":"https://github.com/mmasana/FACIL","is_official":0,"mentioned_in_paper":0,"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"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/class-incremental-learning-on-cifar100","task":"Class Incremental Learning","dataset":"cifar100","model":"LUCIR","rank_in_archive_order":4,"of":7,"metrics":{"10-stage average accuracy":"56.53"},"uses_additional_data":false},{"leaderboard":"/sota/incremental-learning-on-cifar-100-50-classes-2","task":"Incremental Learning","dataset":"CIFAR-100 - 50 classes + 10 steps of 5 classes","model":"UCIR (CNN)*","rank_in_archive_order":10,"of":13,"metrics":{"Average Incremental Accuracy":"60.18"},"uses_additional_data":false},{"leaderboard":"/sota/incremental-learning-on-cifar-100-50-classes-2","task":"Incremental Learning","dataset":"CIFAR-100 - 50 classes + 10 steps of 5 classes","model":"UCIR (NME)*","rank_in_archive_order":11,"of":13,"metrics":{"Average Incremental Accuracy":"60.12"},"uses_additional_data":false},{"leaderboard":"/sota/incremental-learning-on-cifar-100-50-classes-3","task":"Incremental Learning","dataset":"CIFAR-100 - 50 classes + 5 steps of 10 classes","model":"UCIR (CNN)*","rank_in_archive_order":10,"of":15,"metrics":{"Average Incremental Accuracy":"63.42"},"uses_additional_data":false},{"leaderboard":"/sota/incremental-learning-on-cifar-100-50-classes-3","task":"Incremental Learning","dataset":"CIFAR-100 - 50 classes + 5 steps of 10 classes","model":"UCIR (NME)*","rank_in_archive_order":11,"of":15,"metrics":{"Average Incremental Accuracy":"63.12"},"uses_additional_data":false},{"leaderboard":"/sota/incremental-learning-on-cifar-100-b0-5steps","task":"Incremental Learning","dataset":"CIFAR-100-B0(5steps of 20 classes)","model":"UCIR","rank_in_archive_order":10,"of":10,"metrics":{"Average Incremental Accuracy":"62.77"},"uses_additional_data":false},{"leaderboard":"/sota/incremental-learning-on-imagenet-500-classes-2","task":"Incremental Learning","dataset":"ImageNet - 500 classes + 10 steps of 50 classes","model":"UCIR (NME)*","rank_in_archive_order":3,"of":4,"metrics":{"Average Incremental Accuracy":"59.92"},"uses_additional_data":false}],"syntology":{"atlas_url":null,"mcp":null,"developers":"https://syntology.ai/developers"},"arxiv_metadata":null,"syntology_extracted_results":null}