Model Change Active Learning Paper
(To Appear)
Python code for doing active learning in graph-based semi-supervised learning (GBSSL) paradigm. Implements testing done in paper that will soon appear and be submitted for peer-review.
Usage
To run tests in this framework, run scripts bin_run.py or multi_run.py specifying location (--data-root) of .npz file that contains variables X (N x d numpy array) and labels (N vector numpy array). Default is hard-coded in the scripts to run on all possible acquisition functions, but can change the list variable acq_models
- possible choices for
acq_models:- acquisitions functions :
mc(Model Change),uncertainty(Uncertainty),vopt(VOpt),sopt(SigmaOpt),rand(Random) - binary models :
gr(Gaussian Regression),log(Logistic Loss),probitnorm(Probit - Normal) - multiclass models :
gr(Gaussian Regression),ce(Cross-Entropy) - Separate acquisition function and model with double-dash: e.g.
mc--gr--> Model Change acquisition function in Gaussian Regression Model.
- acquisitions functions :
Package Requirements
This repo requires the Python packages: sklearn, mlflow, numpy, scipy.
Simple Self-Contained Test
Can simply run test on the synthetic dataset "Binary Clusters" presented in the paper:
python binary_clusters_run.py --al-iters 100 --B 1 # run sequential active learning on binary clusters data for 100 active learning iterations
python binary_clusters_run.py --al-iters 20 --B 5 # run batch activate learning on binary clusters data for 20 active learning iterations
Results in Paper
Example plots from code in results/acc_figures.py (which can be opened as a Jupyter notebook)
Multiclass Gaussian Regression
| MNIST | Salinas A | Urban |
|---|---|---|
![]() |
![]() |
![]() |
Cross-Entropy
| MNIST | Salinas A | Urban |
|---|---|---|
![]() |
![]() |
![]() |





