LAMDA-CL/ICML2026-AREA
GitHub: LAMDA-CL/ICML2026-AREA
AREA 是一种基于 CLIP 的类增量学习方法,通过属性提取与聚合两阶段的稳定化设计来缓解模型在新类别持续学习过程中的灾难性遗忘。
Stars: 9 | Forks: 0
# AREA:基于 CLIP 的类增量学习的属性提取与聚合
这是“[AREA:基于 CLIP 的类增量学习的属性提取与聚合](http://arxiv.org/abs/2605.28809)”在 PyTorch 中的代码仓库。如果您在您的工作中使用了本仓库的任何内容,请引用以下 bibtex 条目:
```
@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}
}
```
# 📝 简介
类增量学习(CIL)在构建现实世界的学习系统中非常重要。在基于 CLIP 的 CIL 中,模型通过比较从模板提示(例如 ``a photo of a [CLASS]'')获得的视觉和文本 embedding 之间的相似度来执行分类。这种看似整体的匹配过程可以分解为两个概念上不同的阶段:属性提取和属性聚合。例如,模型可以使用毛发纹理和胡须等属性来识别猫。当学习像汽车这样的新类别时,模型必须提取额外的属性(如车轮),并调整它们在共享表示空间中的聚合方式。然而,由于只有当前任务的数据可用,增量更新可能会使属性提取和聚合都偏向于新类,从而导致灾难性遗忘。因此,我们提出了 AREA,用于基于 CLIP 的 CIL 的属性提取和聚合。为了稳定提取,我们通过主测地分析在超球面 embedding 空间中锚定类级别的视觉和文本属性。为了稳定聚合,我们通过评分和残差细化学习了轻量级的任务特定专家,并由变分信息瓶颈目标进行正则化。在推理过程中,我们通过最优传输在任务属性流形上进行路由,以获得更简洁的预测。在多个基准测试上的实验表明,AREA 始终优于 SOTA 方法。
## 🔧 环境要求
**环境**
1 [torch 1.13.0](https://github.com/pytorch/pytorch)
2 [torchvision 0.15.0](https://github.com/pytorch/vision)
3 [open-clip 2.30.0](https://github.com/mlfoundations/open_clip/releases/tag/v2.30.0)
**数据集**
我们提供处理后的数据集如下:
- **CIFAR100**:将由代码自动下载。
- **CUB200**:Google Drive:[链接](https://drive.google.com/file/d/1XbUpnWpJPnItt5zQ6sHJnsjPncnNLvWb/view?usp=sharing) 或 OneDrive [链接](https://entuedu-my.sharepoint.com/:u:/g/personal/n2207876b_e_ntu_edu_sg/EVV4pT9VJ9pBrVs2x0lcwd0BlVQCtSrdbLVfhuajMry-lA?e=L6Wjsc)
- **ImageNet-R**:Google Drive:[链接](https://drive.google.com/file/d/1SG4TbiL8_DooekztyCVK8mPmfhMo8fkR/view?usp=sharing) 或 Onedrive:[链接](https://entuedu-my.sharepoint.com/:u:/g/personal/n2207876b_e_ntu_edu_sg/EU4jyLL29CtBsZkB6y-JSbgBzWF5YHhBAUz1Qw8qM2954A?e=hlWpNW)
- **ObjectNet**:Onedrive:[链接](https://entuedu-my.sharepoint.com/:u:/g/personal/n2207876b_e_ntu_edu_sg/EZFv9uaaO1hBj7Y40KoCvYkBnuUZHnHnjMda6obiDpiIWw?e=4n8Kpy) 如果文件太大无法下载,您也可以参考[文件列表](https://drive.google.com/file/d/147Mta-HcENF6IhZ8dvPnZ93Romcie7T6/view?usp=sharing)和处理[代码](https://github.com/zhoudw-zdw/RevisitingCIL/issues/2#issuecomment-2280462493)。
- **Cars**:Google Drive:[链接](https://drive.google.com/file/d/1D8ReAuOPenWi6SMNUrOZhbm6ViyhDHbL/view?usp=sharing ) 或 OneDrive:[链接](https://njuedu-my.sharepoint.cn/:u:/g/personal/ky2409911_365_nju_edu_cn/EbT1XAstg51Mpy82uHM0D2EBJLrtzmr_V64jeBRjqyyTnQ?e=h6g1rM)
- **UCF**:Google Drive:[链接](https://drive.google.com/file/d/1Ng4w310_VDqpKbc7eYaumXTOiDxI02Wc/view?usp=sharing) 或 OneDrive:[链接](https://njuedu-my.sharepoint.cn/:u:/g/personal/ky2409911_365_nju_edu_cn/EU2qHQXjASdLh1jIl6ihZmcB6G2KvqmSw-sTlZKDE6xPbg?e=7ezvTr)
- **Aircraft**:Google Drive:[链接](https://drive.google.com/file/d/1xI5r1fU0d6Nff51HuOo5w-e4sGEP46Z2/view?usp=drive_link) 或 OneDrive:[链接](https://njuedu-my.sharepoint.cn/:u:/g/personal/ky2409911_365_nju_edu_cn/ETVliZnmPY9AvZZgcFFJ6jMB2c7TRvcq7-gso2Aqvdl_VQ?e=pWXqdP)
- **Food**:Google Drive:[链接](https://drive.google.com/file/d/1rupzXpwrbxki4l-RVmsRawhz1Cm0lDY5/view?usp=drive_link) 或 OneDrive:[链接](https://njuedu-my.sharepoint.cn/:u:/g/personal/ky2409911_365_nju_edu_cn/Eb4xfptD4L5Egus-SiYxrIcBDH1VewLGp4kzyACGF_Na_w?e=duA3Ia)
- **SUN**:OneDrive:[链接](https://njuedu-my.sharepoint.cn/:u:/g/personal/ky2409911_365_nju_edu_cn/EcQq1-1pFulKstYtdknB4O8BGo0hnlDRarAwB4wFEgkx0Q?e=YZ0xYV)
这些子集是从原始数据集中采样得到的。请注意,我没有分发这些数据集的权利。如果分发违反了许可协议,我将只提供文件名。
您需要根据您自己的路径在 `./utils/data.py` 中修改数据集的路径。
## 💡 运行脚本
要准备您的 JSON 文件,请参考 `exps` 文件夹中的设置并运行以下命令。论文中的所有主要实验都已经提供在 `exps` 文件夹中,您只需执行它们即可复现在 `logs` 文件夹中找到的结果。
```
python main.py --config ./exps/area/[configname].json
```
## 🌄 关于描述
为了保持仓库的轻量化,我们只为每个数据集包含了标注语料库的一个子集。如果您需要进行更大规模的实验,我们还在 `/descriptions` 下提供了一个脚本来生成描述语料库。您可以使用此脚本来生成完整的标注集。
## 🎈 致谢
本仓库基于 [CIL_Survey](https://github.com/zhoudw-zdw/CIL_Survey)、[PyCIL](https://github.com/G-U-N/PyCIL) 和 [C3Box](https://github.com/LAMDA-CL/C3Box) 构建。
标签:CLIP模型, PyTorch, 人工智能, 凭据扫描, 增量学习, 持续学习, 用户模式Hook绕过, 计算机视觉, 逆向工具