Home

Awesome

Official Implementation of CLIB (Continual Learning for i-Blurry)

Online Continual Learning on Class Incremental Blurry Task Configuration with Anytime Inference<br> Hyunseo Koh<sup>*</sup>, Dahyun Kim<sup>*</sup>, Jung-Woo Ha, Jonghyun Choi<br> ICLR 2022 [Paper]<br> (* indicates equal contribution)

Overview

<img src="./overview.png" width="450"> <img src="./method_overview.png" width="450">

Abstract

Despite rapid advances in continual learning, a large body of research is devoted to improving performance in the existing setups. While a handful of work do propose new continual learning setups, they still lack practicality in certain aspects. For better practicality, we first propose a novel continual learning setup that is online, task-free, class-incremental, of blurry task boundaries and subject to inference queries at any moment. We additionally propose a new metric to better measure the performance of the continual learning methods subject to inference queries at any moment. To address the challenging setup and evaluation protocol, we propose an effective method that employs a new memory management scheme and novel learning techniques. Our empirical validation demonstrates that the proposed method outperforms prior arts by large margins.

Results

Results of CL methods on various datasets, for online continual learning on i-Blurry-50-10 split, measured by <img src="https://render.githubusercontent.com/render/math?math=A_\text{AUC}"> metric. For more details, please refer to our paper.

MethodsCIFAR10CIFAR100TinyImageNetImageNet
EWC++57.34±2.1035.35±1.9622.26±1.1524.81
BiC58.38±0.5433.51±3.0422.80±0.9427.41
ER-MIR57.28±2.4335.35±1.4122.10±1.1420.48
GDumb53.20±1.9332.84±0.4518.17±0.1914.41
RM23.00±1.438.63±0.195.74±0.306.22
Baseline-ER57.46±2.2535.61±2.0822.45±1.1525.16
CLIB70.26±1.2846.67±0.7923.87±0.6828.16

Getting Started

To set up the environment for running the code, you can either use the docker container, or manually install the requirements in a virtual environment.

Using Docker Container (Recommended)

We provide the Docker image khs8157/iblurry on Docker Hub for reproducing the results. To download the docker image, run the following command:

<pre> docker pull khs8157/iblurry:latest </pre>

After pulling the image, you may run the container via following command:

<pre> docker run --gpus all -it --shm-size=64gb -v <i>/PATH/TO/CODE</i>:<i>/PATH/TO/CODE</i> --name=<i>CONTAINER_NAME</i> khs8157/iblurry:latest bash </pre>

Replace the arguments written in <i>italic</i> with your own arguments.

Requirements

If not using Docker container, install the requirements using the following command

<pre> pip install -r requirements.txt </pre>

Running Experiments

Downloading the Datasets

CIFAR10, CIFAR100, and TinyImageNet can be downloaded by running the corresponding scripts in the dataset/ directory. ImageNet dataset can be downloaded from Kaggle.

Experiments Using Shell Script

Experiments for the implemented methods can be run by executing the shell scripts provided in scripts/ directory. For example, you may run CL experiments using CLIB method by

<pre> bash scripts/clib.sh </pre>

You may change various arguments for different experiments.

Citation

If you used our code or i-blurry setup, please cite our paper.

<pre> @inproceedings{koh2022online, title={Online Continual Learning on Class Incremental Blurry Task Configuration with Anytime Inference}, author={Koh, Hyunseo and Kim, Dahyun and Ha, Jung-Woo and Choi, Jonghyun}, booktitle={ICLR}, year={2022} } </pre>

License

Copyright (C) 2022-present NAVER Corp.

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <https://www.gnu.org/licenses/>.