Home

Awesome

General Greedy De-bias for Dataset Biases

This is an extention of "Greedy Gradient Ensemble for Robust Visual Question Answering" (ICCV 2021, Oral). The prerequisites can refer to GGE.

If you find this repo helpful, please cite

@article{han2021general,
	title={General Greedy De-bias Learning},
	author={Han, Xinzhe and Wang, Shuhui and Su, Chi and Huang, Qingming and Tian, Qi},
	journal={arXiv preprint arXiv:2112.10572 },
	year={2021}
}
@inproceedings{han2021greedy,
  title={Greedy gradient ensemble for robust visual question answering},
  author={Han, Xinzhe and Wang, Shuhui and Su, Chi and Huang, Qingming and Tian, Qi},
  booktitle={Proceedings of the IEEE/CVF International Conference on Computer Vision},
  pages={1584--1593},
  year={2021}
}

GGD

figure1 figure2

The core of GGD is to decompose the CE loss of GGE. The pytorch implementation is

loss = -(logits.log_softmax(-1) * labels).mean() + weight * (logits.log_softmax(-1) * bias * labels).mean()

Biased-MNIST

Biased-MNIST is produced the same with Re-bias. Run the notebook in the MNIST folder. Modify data_label_correlation for different bias level.

VQA-CP

Codes for VQA-CP is updated in GGE. To train a model with new GGD-CR, set import base_model_sfce in mian.py and run

CUDA_VISIBLE_DEVICES=0 python main.py --dataset cpv2 --mode gge_iter --debias ce_decompose --topq 1 --topv -1 --qvp 5 --output [] 

Adversarial SQuAD

The experiment for AdQA is provided in squad folder. The code is modified from squad.

Acknowledgements

Some codes are modified from CSS, UpDn, squad, and Re-bias. Thanks for their open source.