Home

Awesome

Adjusting Decision Boundary for Class Imbalanced Learning

This repository is the official PyTorch implementation of WVN-RS, introduced in Adjusting Decision Boundary for Class Imbalanced Learning.

Requirements

  1. NVIDIA docker : Docker image will be pulled from cloud.
  2. CIFAR dataset : The "dataset_path" in run_cifar.sh should be
cifar10/
    data_batch_N
    test_batch
cifar100/
    train
    test

CIFAR datasets are available here.

How to use

Run the shell script.

bash run_cifar.sh

To use Weight Vector Normalization (WVN), use --WVN flag. (It is already in the script.)

Results

  1. Validation error on Long-Tailed CIFAR10
Imbalance2001005020101
Baseline35.6729.7122.9116.0413.266.83
Over-sample32.1928.2721.4015.2312.246.61
Focal34.7129.6223.2816.7713.196.60
CB31.1125.4320.7315.6412.516.36
LDAM-DRW28.0922.9717.8314.5311.846.32
Baseline+RS27.0221.3617.1613.4611.866.32
WVN+RS27.2320.1716.8012.7610.716.29
  1. Validation error on Long-Tailed CIFAR100
Imbalance2001005020101
Baseline64.2160.3855.0948.9343.5229.69
Over-sample66.3961.5356.6549.0343.3829.41
Focal64.3861.3155.6848.0544.2228.52
CB63.7760.4054.6847.4142.0128.39
LDAM-DRW61.7357.9652.5447.1441.2928.85
Baseline+RS59.5955.6551.9145.0941.4529.80
WVN+RS59.4855.5051.8046.1241.0229.22

Notes

This codes use docker image "feidfoe/pytorch:v.2" with pytorch version, '0.4.0a0+0640816'. The image only provides basic libraries such as NumPy or PIL.

WVN is implemented on ResNet architecture only.

Baseline repository

This repository is forked and modified from original repo.

Contact

Byungju Kim (byungju.kim@kaist.ac.kr)

BibTeX for Citation

@ARTICLE{9081988,
  author={B. {Kim} and J. {Kim}},
  journal={IEEE Access}, 
  title={Adjusting Decision Boundary for Class Imbalanced Learning}, 
  year={2020},
  volume={8},
  number={},
  pages={81674-81685},}