AREA: Attribute Extraction and Aggregation for CLIP-Based Class-Incremental Learning

May 28, 2026 ยท View on GitHub

Zhen-Hao Xieโ€ƒ Yu-Cheng Shiโ€ƒ Da-Wei Zhouโ€ƒ
School of Artificial Intelligence, Nanjing University
State Key Laboratory for Novel Software Technology, Nanjing University
arXiv

The code repository for "AREA: Attribute Extraction and Aggregation for CLIP-Based Class-Incremental Learning" in PyTorch. If you use any content of this repo for your work, please cite the following bib entry:

@inproceedings{xie2026area,
  title={AREA: Attribute Extraction and Aggregation for CLIP-Based Class-Incremental Learning},
  author={Xie, Zhen-Hao and Shi, Yu-Cheng and Zhou, Da-Wei},
  booktitle={ICML},
  year={2026}
}

๐Ÿ“ Introduction

Class-Incremental Learning (CIL) is important in building real-world learning systems. In CLIP-based CIL, the model performs classification by comparing similarity between visual and textual embeddings obtained from template prompts, e.g., ``a photo of a [CLASS]''. This seemingly monolithic matching process can be decomposed into two conceptually distinct stages: attribute extraction and attribute aggregation. For example, a model may recognize cat using attributes such as fur texture and whiskers. When learning a new class like car, the model must extract additional attributes like wheels and adjust how they are aggregated in the shared representation space. However, since only data from the current task is available, incremental updates can bias both attribute extraction and aggregation toward new classes, leading to catastrophic forgetting. Therefore, we propose AREA for attribute extraction and aggregation for CLIP-based CIL. To stabilize extraction, we anchor class-level visual and textual attributes on the hyperspherical embedding space via principal geodesic analysis. To stabilize aggregation, we learn lightweight task-specific experts with scoring and residual refinement, regularized by a variational information bottleneck objective. During inference, we perform routing over task attribute manifolds via optimal transport for more concise prediction. Experiments on multiple benchmarks show that AREA consistently outperforms SOTA methods.

๐Ÿ”ง Requirements

Environment

1 torch 1.13.0

2 torchvision 0.15.0

3 open-clip 2.30.0

Dataset

We provide the processed datasets as follows:

  • CIFAR100: will be automatically downloaded by the code.
  • CUB200: Google Drive: link or OneDrive link
  • ImageNet-R: Google Drive: link or Onedrive: link
  • ObjectNet: Onedrive: link You can also refer to the filelist and processing code if the file is too large to download.
  • Cars: Google Drive: link or OneDrive: link
  • UCF: Google Drive: link or OneDrive: link
  • Aircraft: Google Drive: link or OneDrive: link
  • Food: Google Drive: link or OneDrive: link
  • SUN: OneDrive: link

These subsets are sampled from the original datasets. Please note that I do not have the right to distribute these datasets. If the distribution violates the license, I shall provide the filenames instead.

You need to modify the path of the datasets in ./utils/data.py according to your own path.

๐Ÿ’ก Running scripts

To prepare your JSON files, refer to the settings in the exps folder and run the following command. All main experiments from the paper are already provided in the exps folder, you can simply execute them to reproduce the results found in the logs folder.

python main.py --config ./exps/area/[configname].json

๐ŸŒ„ About Descriptions

To keep the repository lightweight, we have only included a subset of the annotated corpus for each dataset. If you need to conduct larger-scale experiments, we also provide a script under /descriptions to generate the descriptive corpus. You can use this script to generate the full set of annotations.

๐ŸŽˆ Acknowledgement

This repo is based on CIL_Survey, PyCIL and C3Box.