yue-zhongqi / ifsl

[NeurIPS 2020] Released code for Interventional Few-Shot Learning

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Interventional Few-Shot Learning

This project provides a strong Baseline with WRN28-10 and ResNet-10 backbone for the following Few-Shot Learning methods:

  • Fine-tuning
  • Matching Networks
  • Model-Agnostic Meta-Learning (MAML)
  • Meta-Transfer Learning for Few-Shot Learning (MTL)
  • Meta-Learning with Latent Embedding Optimization (LEO)
  • Synthetic Information Bottleneck (SIB)

This also includes implementation of our NeurIPS 2020 paper Interventional Few-Shot Learning, which proposes IFSL classifier based on intervention P(Y|do(X)) to remove the confounding bias from pre-trained knowledge. Our IFSL classifier is generally applicable to all fine-tuning and meta-learning method, easy to plug in and involves no additional training steps.

The codes are organized into four folders according to methods. The folder MAML_MN_FT contains baseline and IFSL for fine-tuning, Matching Networks and MAML.

Dependencies

Recommended version:

  • Python 3.7.6
  • PyTorch 1.4.0

Preparation

After downloading the weights and datasets, you can follow the instructions in each folder to modify the code and finish preparation.

TODO

Apologize in advance for dirty code, which I will clean up gradually.

  • Code refactoring
  • Improve documentation and optimize project setup procedures

References

The implementation is based on the following repositories (for correctness of baseline, most of our code is based on the official released code).

Citation

If you find our work or the code useful, please consider cite our paper using:

@inproceedings{yue2020interventional,
  title={Interventional Few-Shot Learning},
  author={Yue, Zhongqi and Zhang, Hanwang and Sun, Qianru and Hua, Xian-Sheng},
  booktitle= {NeurIPS},
  year={2020}
}

About

[NeurIPS 2020] Released code for Interventional Few-Shot Learning


Languages

Language:Python 99.7%Language:Shell 0.3%