Home

Awesome

PuriDivER - Official Pytorch Implementation

puridiver_overview

Online Continual Learning on a Contaminated Data Stream with Blurry Task Boundaries<br> Jihwan Bang, Hyunseo Koh, Seulki Park, Hwanjun Song, Jung-Woo Ha, Jonghyun Choi <br> CVPR 2022 <br> Paper | Slide | Video | Bibtex<br>

Abstract

Learning under a continuously changing data distribution with incorrect labels is a desirable real-world problem yet challenging. A large body of continual learning (CL) methods, however, assumes data streams with clean labels, and online learning scenarios under noisy data streams are yet underexplored. We consider a more practical CL task setup of an online learning from blurry data stream with corrupted labels, where existing CL methods struggle. To address the task, we first argue the importance of both diversity and purity of examples in the episodic memory of continual learning models. To balance diversity and purity in the episodic memory, we propose a novel strategy to manage and use the memory by a unified approach of label noise aware diverse sampling and robust learning with semi-supervised learning. Our empirical validations on four real-world or synthetic noise datasets (CIFAR10 and 100, mini-WebVision, and Food-101N) exhibit that our method significantly outperforms prior arts in this realistic and challenging continual learning scenario.

Overview of the results of PuriDivER

The table is shown for last accuracy comparison with combination of selection methods and robust learning in CIFAR-10.

sampling / robustSYM-20SYM-40SYM-60ASYM-20ASYM-40
RSV / none54.539.228.753.640.0
RSV / SELFIE54.539.228.851.840.4
RSV / Co-Teaching56.139.830.553.538.7
RSV / DivideMix56.143.735.156.138.9
GBS / none54.841.827.354.240.4
GBS / SELFIE55.441.627.851.340.7
GBS / Co-Teaching55.142.731.454.039.5
GBS / DivideMix57.848.834.357.444.6
RM / none57.146.533.558.346.2
RM / SELFIE56.844.831.857.946.9
RM / Co-Teaching57.547.635.158.545.9
RM / DivideMix61.350.934.960.646.4
PuriDivER61.359.252.461.647.1

Updates

Getting started

Requirements

Datasets

All the datasets are saved in dataset directory by following formats as shown below.

[dataset name] 
    |_train
        |_[class1 name]
            |_00001.png
            |_00002.png 
            ...
        |_[class2 name]
            ... 
    |_test (val for ImageNet)
        |_[class1 name]
            |_00001.png
            |_00002.png
            ...
        |_[class2 name]
            ...

You can easily download the dataset following above format.

Usage

To run the experiments in the paper, you just run run_experiment.py.

python run_experiment.py 

Results

There are three types of logs during running experiments; logs, results, tensorboard. The log files are saved in logs directory, and the results which contains accuracy of each task are saved in results directory.

root_directory
    |_ logs 
        |_ [dataset]
            |_{mode}_{mem_manage}_{stream}_msz{k}_rnd{seed_num}_{trans}.log
            |_ ...
    |_ results
        |_ [dataset]
            |_{mode}_{mem_manage}_{stream}_msz{k}_rnd{seed_num}_{trans}.npy
            |_...

In addition, you can also use the tensorboard as following command.

tensorboard --logdir tensorboard

Citation

@InProceedings{puridiver_cvpr22,
    author    = {Bang, Jihwan and Koh, Hyunseo and Park, Seulki and Song, Hwanjun and Ha, Jung-Woo and Choi, Jonghyun},
    title     = {Online Continual Learning on a Contaminated Data Stream with Blurry Task Boundaries},
    booktitle = {Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)},
    month     = {June},
    year      = {2022}
}

License

Copyright 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/>.