Home

Awesome

Always Be Dreaming: A New Approach for Data-Free Class-Incremental Learning

PyTorch code for the ICCV 2021 paper:
Always Be Dreaming: A New Approach for Data-Free Class-Incremental Learning
James Smith, Yen-Chang Hsu, Jonathan Balloch, Yilin Shen, Hongxia Jin, Zsolt Kira
International Conference on Computer Vision (ICCV), 2021
[arXiv] [pdf] [project]

<p align="center"> <img src="ABD_Diagram.png" width="100%"> </p>

Abstract

Modern computer vision applications suffer from catastrophic forgetting when incrementally learning new concepts over time. The most successful approaches to alleviate this forgetting require extensive replay of previously seen data, which is problematic when memory constraints or data legality concerns exist. In this work, we consider the high-impact problem of Data-Free Class-Incremental Learning (DFCIL), where an incremental learning agent must learn new concepts over time without storing generators or training data from past tasks. One approach for DFCIL is to replay synthetic images produced by inverting a frozen copy of the learner's classification model, but we show this approach fails for common class-incremental benchmarks when using standard distillation strategies. We diagnose the cause of this failure and propose a novel incremental distillation strategy for DFCIL, contributing a modified cross-entropy training and importance-weighted feature distillation, and show that our method results in up to a 25.1% increase in final task accuracy (absolute difference) compared to SOTA DFCIL methods for common class-incremental benchmarks. Our method even outperforms several standard replay based methods which store a coreset of images.

Installation

Prerequisites

Setup

Datasets

Download/Extract the following datasets to the dataset folder under the project root directory.

Training

All commands should be run under the project root directory.

sh experiments/cifar100-fivetask.sh # tables 1,2
sh experiments/cifar100-tentask.sh # tables 1,2
sh experiments/cifar100-twentytask.sh # tables 1,2

Results

Results are generated for various task sizes. See the main text for full details. Numbers represent final accuracy in three runs (higher the better).

CIFAR-100 (no coreset)

tasks51020
UB69.9 ± 0.269.9 ± 0.269.9 ± 0.2
Base16.4 ± 0.48.8 ± 0.14.4 ± 0.3
LwF17.0 ± 0.19.2 ± 0.04.7 ± 0.1
LwF.MC32.5 ± 1.017.1 ± 0.17.7 ± 0.5
DGR14.4 ± 0.48.1 ± 0.14.1 ± 0.3
DeepInversion18.8 ± 0.310.9 ± 0.65.7 ± 0.3
Ours43.9 ± 0.933.7 ± 1.220.0 ± 1.4

CIFAR-100 (with 2000 image coreset)

tasks51020
UB69.9 ± 0.269.9 ± 0.269.9 ± 0.2
Naive Rehearsal34.0 ± 0.224.0 ± 1.014.9 ± 0.7
LwF39.4 ± 0.327.4 ± 0.816.6 ± 0.4
E2E47.4 ± 0.838.4 ± 1.332.7 ± 1.9
BiC53.7 ± 0.445.9 ± 1.837.5 ± 3.2
Ours (no coreset)43.9 ± 0.933.7 ± 1.220.0 ± 1.4

Acknowledgement

This work is supported by Samsung Research America.

Citation

If you found our work useful for your research, please cite our work:

@article{smith2021always,
  author    = {Smith, James and Hsu, Yen-Chang and Balloch, Jonathan and Shen, Yilin and Jin, Hongxia and Kira, Zsolt},
  title     = {Always Be Dreaming: A New Approach for Data-Free Class-Incremental Learning},
  booktitle = {Proceedings of the IEEE/CVF International Conference on Computer Vision (ICCV)},
  month     = {October},
  year      = {2021},
  pages     = {9374-9384}
}