Giles Strong, Originally presented at PyHEP 2021: https://indico.cern.ch/event/1019958/timetable/#21-pytorch-inferno
YouTube recording: https://www.youtube.com/watch?v=copNcyHnHBs
The INFERence-aware Neural Optimisation (INFERNO) algorithm (de Castro and Dorigo, 2018 https://www.sciencedirect.com/science/article/pii/S0010465519301948), allows one to fully optimise neural networks for the task of statistical inference by including the effects of systematic uncertainties in the training. This has significant advantages for work in HEP, where the uncertainties are often only included right at the end of an analysis, and spoil the usage of classification as a proxy task to statistical inference.
The loss itself, however, can be somewhat difficult to integrate into traditional frameworks due to its requirements to access the model and the data at different points during the optimisation cycle. Including both a lightweight neural-network framework for PyTorch, and the required inference functions, the PyTorch-INFERNO package provides a "drop-in" implementation of the INFERNO loss. The package also aims to serve as a demonstration of how potential users can implement the loss themselves to drop into their framework of choice.
In this lightning talk, I will give a quick overview of both the algorithm and the package, a well as discuss some of the more general requirements for implementing the algorithm as a drop-in loss.
GitHub: https://github.com/GilesStrong/pytorch_inferno Docs: https://gilesstrong.github.io/pytorch_inferno/ Blog-posts (part 1 of 5): https://gilesstrong.github.io/website/statistics/hep/inferno/2020/12/04/inferno-1.html
- Either install using the pip (
pip install -r requirements.txt
), or conda (conda env create -f environment.yml
thenconda activate pytorch_inferno
). - Launch jupyter (
jupyter notebook
) - Open presentation.ipynb
- Click the Binder badge at the top of the readme, or here
- Binder sometimes crashes due to excessive computation and is generally quite slow. It is sufficient for viewing the presentation, though.
- Click the Colab badge at the top of the readme, or here
- Change the runtime type to GPU
- Colab doesn't allow one to view the presentation as slides, but does provide a more-stable computing environment.