/DebiAN

Official code of "Discover and Mitigate Unknown Biases with Debiasing Alternate Networks" (ECCV 2022)

Primary LanguagePythonGNU General Public License v3.0GPL-3.0

Discover and Mitigate Unknown Biases with Debiasing Alternate Networks [ECCV 2022]

Paper

Zhiheng Li, Anthony Hoogs, Chenliang Xu

University of Rochester, Kitware, Inc.

Contact: Zhiheng Li (email: zhiheng.li@rochester.edu, homepage: https://zhiheng.li)

abdf

TL;DR: We introduce Debiasing Alternate Networks (DebiAN) to discover and mitigate unknown biases of an image classifier. DebiAN alternately trains two networks—a discover and a classifier. Discoverer actively identifies classifier’s unknown biases. At the same time, the classifier mitigates the biases identified by the discoverer.

Multi-Color MNIST Dataset

abdf

In this work, we propose the Multi-Color MNIST dataset to better benchmark debiasing methods under the multi-bias setting. It contains two bias attributes—left color and right color.

Download and Untar Multi-Color MNIST Dataset

cd data

wget https://github.com/zhihengli-UR/DebiAN/releases/download/v1.0/multi_color_mnist.tar.gz -O multi_color_mnist.tar.gz

tar xvzf multi_color_mnist.tar.gz

Generate Multi-Color MNIST Dataset

If you want to generate other bias-aligned ratio combinations between left color and right color bias attributes, you can use the following command:

bash scripts/make_multi_color_mnist.sh

Data Preparation

Put each dataset in a folder under the data directory as follows:

data
├── bar
├── bffhq
├── celeba
├── lsun
├── multi_color_mnist
└── places365

Biased Action Recognition (BAR): download BAR dataset from here and unzip it to data/bar

bFFHQ: download bFFHQ dataset from here and unzip it to data/bffhq

CelebA: download CelebA dataset from here and unzip it to data/celeba

LSUN: download the LSUN dataset from here and unzip it to data/lsun

Places365: download the Places365 dataset from here and unzip it to data/places365

Dependencies

pytorch

torchvision

lmdb

imageio

Training and Evaluation

bash scripts/${DATASET_NAME}_debian.sh  # ${DATASET_NAME} = bar, bffhq, celeba_blond, celeba_gender, multi_color_mnist, or scene

Add your method

This code base can be used to add future methods for training and evaluation. To achieve that, simply create a new Trainer class for your method that inherits the BaseTrainer class in each experiment folder (e.g., bffhq_exp).

Citation

Please cite our work if you use DebiAN or the Multi-Color MNIST dataset.

@inproceedings{Li_2022_ECCV,
  title = {Discover and {{Mitigate Unknown Biases}} with {{Debiasing Alternate Networks}}},
  booktitle = {The {{European Conference}} on {{Computer Vision}} ({{ECCV}})},
  author = {Li, Zhiheng and Hoogs, Anthony and Xu, Chenliang},
  year = {2022}
}