Skip to main content

Tensorflow package for building neural networks capable of frequentist inference and uncertainty estimation

Project description

Gaussian Ansatz (v0.0.1)

GitHub Project

The Gaussian Ansatz is a machine learning framework for performing frequentist inference, complete with local uncertainty estimation, as described in "Learning Uncertainties the Frequentist Way: Calibration and Correlation in High Energy Physics" (arxiv:2205.03413). These models can be used to quickly estimate local resolutions of an inference $z$ given a measurement $x$, even if $x$ is very high-dimensional.

Installation

From PyPI

In your Python environment run

python -m pip install GaussianAnsatz

From this repository locally

In your Python environment from the top level of this repository run

python -m pip install .

From GitHub

In your Python environment run

python -m pip install "GaussianAnsatz @ git+https://github.com/rikab/GaussianAnsatz.git"

Example Usage

For an example of how to use the Gaussian Ansatz, see the notebook examples/minimal_working_example.ipynb. This notebook contains example code for loading data, using pre-built DNN Gaussian Ansatz, pre-training and training, and extracting inferences with uncertainty estimates.

Additional, more complicated examples can be found in the JEC subfolder. The files here correspond exactly to the jet energy studies, as described in "Learning Uncertainties the Frequentist Way: Calibration and Correlation in High Energy Physics" (arxiv:2205.03413)

Dependencies

To use the Gaussian Ansatz, the following packages must be installed as prerequisites:

  • Tensorflow: A standard tensor operation library.
  • Energyflow: A suite of particle physics tools, including Energy Flow Networks and Particle FLow Networks
  • Standard python packages: numpy, scipy, matplotlib

Citation

If you use the Gaussian Ansatz, please cite both the corresponding paper, "Learning Uncertainties the Frequentist Way: Calibration and Correlation in High Energy Physics"?:

@article{Gambhir:2022gua,
author = "Gambhir, Rikab and Nachman, Benjamin and Thaler, Jesse",
title = "{Learning Uncertainties the Frequentist Way: Calibration and Correlation in High Energy Physics}",
eprint = "2205.03413",
archivePrefix = "arXiv",
primaryClass = "hep-ph",
reportNumber = "MIT-CTP 5431",
doi = "10.1103/PhysRevLett.129.082001",
journal = "Phys. Rev. Lett.",
volume = "129",
number = "8",
pages = "082001",
year = "2022"

}

Changelog

  • v0.0.1: 17 April 2023. Now pip-installable!
  • v0.0.0: 6 May 2022. Public release.

Based on the work in "Learning Uncertainties the Frequentist Way: Calibration and Correlation in High Energy Physics" (arxiv:2205.03413)

Bugs, Fixes, Ideas, or Questions? Contact me at rikab@mit.edu

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gaussianansatz-0.0.1.tar.gz (12.2 kB view hashes)

Uploaded Source

Built Distribution

gaussianansatz-0.0.1-py3-none-any.whl (11.7 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page