Home

Awesome

Variational Variance

This repository is the official implementation of Probabilistically Fortified Optimization of Parameter Maps for Heteroscedastic Gaussian Likelihoods

We include code files from Reliable training and estimation of variance networks in the john-master sub-directory of our repository. Their methods constitute one of our baselines. Any file therein denoted with _orig is their original code. We had to modify certain files for integration. We include these originals for easy differencing. Any file without an _orig pair is unmodified.

Requirements

To install requirements:

pip install -r requirements.txt

Our code is based in TensorFlow 2.3, which automatically detects and utilizes any available CUDA acceleration. However, the baseline code from Detlefsen et al., 2019 (john-master sub-directory) is based in pyTorch. Their code supports enabling and disabling CUDA. Any of our code that calls theirs does NOT access their CUDA option and consequently defaults with CUDA enabled. Please be aware of this if running on a machine without access to CUDA acceleration.

To download UCI data sets (performed in run_regression_uci.sh as well):

python regression_data.py

Data for our VAE experiments downloads automatically via TensorFlow Datasets.

Reproducing Results

If you downloaded a copy of this repository with a populated results sub-directory, then you may already have all of our original results. Please see the following subsections for details on how to run just the analysis.

Toy Data

Please see run_regression_toy.sh, which runs our toy regression experiments in sequence. Upon completing the experiments, this script also runs the analysis code, which automatically generates the relevant figures in our manuscript. To run just the analyses:

python regression_analysis.py --experiment toy
python regression_analysis.py --experiment toy-sparse

UCI Data

Please see run_regression_uci.sh, which runs our UCI regression experiments in parallel. Upon completing the experiments, this script also runs the analysis code, which automatically generates the relevant tables in our manuscript. To run just the analyses:

python regression_analysis.py --experiment uci

Active Learning

Please see run_active_learning_uci.sh, which runs our UCI active learning experiments in parallel. Upon completing the experiments, this script also runs the analysis code, which automatically generates the relevant tables and figures in our manuscript. To run just the analyses:

python active_learning_analysis.py

VAE Experiments

Please see run_generative.sh, which runs our VAE experiments. Upon completing the experiments, this script also runs the analysis code, which automatically generates the relevant tables and figures in our manuscript. To run just the analyses:

python generative_analysis.py

Contributing

We have selected an MIT license for this repository.