An implementation of the state-of-the-art Deep Active Learning algorithm. This code was built based on Jordan Ash's repository.
To run this code fully, you'll need PyTorch (we're using version 1.4.0), scikit-learn. We've been running our code in Python 3.7.
Sampling Strategies | Year | Done |
---|---|---|
Random Sampling | x | ✅ |
ClusterMargin [1] | arXiv'21 | ✅ |
WAAL [2] | AISTATS'20 | ✅ |
BADGE [3] | ICLR'20 | ✅ |
Adversarial Sampling for Active Learning [4] | WACV'20 | ✅ |
Learning Loss for Active Learning [5] | CVPR'19 | ✅ |
Variational Adversial Active Learning [6] | ICCV'19 | ✅ |
BatchBALD [7] | NIPS'19 | ✅ |
K-Means Sampling [8] | ICLR'18 | ✅ |
K-Centers Greedy [8] | ICLR'18 | ✅ |
Core-Set [8] | ICLR'18 | ✅ |
Adversarial - DeepFool [9] | ArXiv'18 | ✅ |
Uncertainty Ensembles [10] | NIPS'17 | ✅ |
Uncertainty Sampling with Dropout Estimation [11] | ICML'17 | ✅ |
Bayesian Active Learning Disagreement [11] | ICML'17 | ✅ |
Least Confidence [12] | IJCNN'14 | ✅ |
Margin Sampling [12] | IJCNN'14 | ✅ |
Entropy Sampling [12] | IJCNN'14 | ✅ |
UncertainGCN Sampling [13] | CVPR'21 | ✅ |
CoreGCN Sampling [13] | CVPR'21 | ✅ |
Ensemble [14] | CVPR'18 | ✅ |
MCDAL [15] | Knowledge-based Systems'19 | ✅ |
Sampling Strategies | Year | Done |
---|---|---|
Consistency-SSLAL [16] | ECCV'20 | ✅ |
MixMatch-SSLAL [17] | arXiv | ✅ |
UDA [18] | NIPS'20 | In progress |
First, please make sure you have installed Conda. Then, our environment can be installed by:
conda create -n DAL python=3.7
conda activate DAL
pip install -r requirements.txt
python main.py --model ResNet18 --dataset cifar10 --strategy LeastConfidence
It runs an active learning experiment using ResNet18 and CIFAR-10 data, querying according to the LeastConfidence algorithm. The result will be saved in the ./save directory.
You can also use run.sh
to run experiments.
You can download the features/feature_model from here
If you have any questions/suggestions, or would like to contribute to this repo, please feel free to contact:
Yu Li [email protected]
, Muxi Chen [email protected]
or Prof. Qiang Xu [email protected]
[1] (ClusterMargin, 2021) Batch Active Learning at Scale
[2] (WAAL, AISTATS'20) Deep Active Learning: Unified and Principled Method for Query and Training paper code
[3] (BADGE, ICLR'20) Deep Batch Active Learning by Diverse, Uncertain Gradient Lower Bounds paper code
[4] (ASAL, WACV'20) Adversarial Sampling for Active Learning paper
[5] (CVPR'19) Learning Loss for Active Learning paper code
[6] (VAAL, ICCV'19) Variational Adversial Active Learning paper code
[7] (BatchBALD, NIPS'19) BatchBALD: Efficient and Diverse Batch Acquisition for Deep Bayesian Active Learning paper code
[8] (CORE-SET, ICLR'18) Active Learning for Convolutional Neural Networks: A Core-Set Approach paper code
[9] (DFAL, 2018) Adversarial Active Learning for Deep Networks: a Margin Based Approach
[10] (NIPS'17) Simple and Scalable Predictive Uncertainty Estimation using Deep Ensembles paper code
[11] (DBAL, ICML'17) Deep Bayesian Active Learning with Image Data paper code
[12] (Least Confidence/Margin/Entropy, IJCNN'14) A New Active Labeling Method for Deep Learning, IJCNN, 2014
[13] (UncertainGCN, CoreGCN, CVPR'21) Sequential Graph Convolutional Network for Active Learning paper code
[14] (Emsemble, CVPR'18) The power of ensembles for active learning in image classification paper
[15] (Knowledge-based Systems'19) Multi-criteria active deep learning for image classification paper code
[16] (ECCV'20) Consistency-based semi-supervised active learning: Towards minimizing labeling cost paper
[17] (Google, arXiv) Combining MixMatch and Active Learning for Better Accuracy with Fewer Labels
[18] (Google, NIPS’20) Unsupervised Data Augmentation for Consistency Training