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.
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
acq_models
:
mc
(Model Change), uncertainty
(Uncertainty), vopt
(VOpt), sopt
(SigmaOpt), rand
(Random)gr
(Gaussian Regression), log
(Logistic Loss), probitnorm
(Probit - Normal)gr
(Gaussian Regression), ce
(Cross-Entropy)mc--gr
--> Model Change acquisition function in Gaussian Regression Model.This repo requires the Python packages: sklearn, mlflow, numpy, scipy
.
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
Example plots from code in results/acc_figures.py
(which can be opened as a Jupyter notebook)
MNIST | Salinas A | Urban |
---|---|---|
MNIST | Salinas A | Urban |
---|---|---|