Miriam W. Huijser and Jan C. van Gemert
International Conference on Computer Vision 2017 (ICCV): spotlight presentation.
Paper: https://jvgemert.github.io/pub/huijserICCV17ActiveBoundAnnoGAN.pdf
arXiv preprint: https://arxiv.org/abs/1703.06971
We provide the code for the decision boundary annotation active learning algorithm. If you find my code useful for your research, please cite:
@article{huijser2017active,
title={Active Decision Boundary Annotation with Deep Generative Models},
author={Huijser, Miriam W and van Gemert, Jan C},
booktitle={International Conference on Computer Vision ({ICCV})},
year={2017}
}
Clone this repository recursively because of the adapted ALI submodule:
git clone --recursive https://github.com/MiriamHu/ActiveBoundary.git
Then install requirements:
cd ActiveBoundary
pip install -r requirements.txt
The code is compatible only with Python2.7 (python).
The training code can be run with the following command:
python train.py <query_strategy> [--iterations ITERATIONS] [--enable_gpu] [--oracle_type {line_labeler,noisy_line_labeler,human_line_labeler}] [--dataset {shoebag,mnist08,svhn08}] [--save_path SAVE_PATH] --percentage_labeled PERCENTAGE_LABELED] [--al_batch_size AL_BATCH_SIZE]
<query_strategy> should be one of the following:
random- random sampling, also called "passive learning".uncertainty- uncertainty sampling.uncertainty-dense- uncertainty-dense sampling.clustercentroids- 5-cluster centroids.
If --enable-gpu, the query lines (and points) are generated and saved as *.pdf in the save path.
For --oracle_type human_line_labeler, we require --enable-gpu. The user is shown an interface in which the decision boundary can be annotated.
For more (hyper)parameters please refer to options.py.
The first time train.py is run for a certain dataset, the required data (and model if gpu is enabled) is downloaded automatically.
Any type of encoding-decoding network can be plugged into our system. See generative_model.py how to create your own class.
Our system currently uses the "Adversarially Learned Inference" model (Dumoulin et al., 2016). See https://ishmaelbelghazi.github.io/ALI/ for more information and the code.
We provide most encoded and non-encoded datasets from our paper:
- MNIST 0 vs. 8
- SVHN 0 vs. 8
- ShoeBag
To download a dataset either run train.py --dataset [mnist08, svhn08, shoebag] or run your own python script with the last lines of code in options.py.
Please do not hesitate to contact me (huijsermiriam@gmail.com) if you have any questions.
https://www.aiir.nl/
