.. title:: Docs .. image:: _images/logo.png :target: index.html :width: 50% .. raw:: html
.. image:: http://img.shields.io/badge/License-BSD--3--Clause--LBNL-blue.svg :target: https://gitlab.com/hpo-uq/hyppo/-/raw/master/LICENSE.txt .. image:: https://badge.fury.io/py/hpo-uq.svg :target: https://pypi.python.org/pypi/hpo-uq/ .. image:: https://img.shields.io/pypi/dm/hpo-uq .. image:: https://zenodo.org/badge/DOI/10.11578/dc.20211123.8.svg :target: https://doi.org/10.11578/dc.20211123.8 HYPPO is a software package that uses adaptive surrogate models with uncertainty quantification to automatically tune hyperparameters in a variety of deep learning models. The hyperparamer optimization (HPO) process uses the following steps: #. **Initialization**: Maps architecture to performance of trained model #. **Prediction**: Choose which architecture to try next using surrogate modeling #. Determine model's accuracy using test data #. Iteratively update with new input-output data .. image:: _images/flowchart.png This HPO problem is formulated as a bilevel optimization problem: .. math:: \min_{\theta,w^*}u(\theta,w^*;D_{val}) \,\, \text{s.t.}\,\, \theta \in \Omega \,\,\,\, (1)\\ w* \in \text{arg}\min_{w\in W}\mathcal{l}(w;\theta,D_{train}) \,\,\,\, (2) The upper level problem (1) finds the optimal set of hyperparameters (i.e., the model architecture) that minimizes the objective function. The lower level problem (2) finds the optimal weights that minimze the loss function for the training data. This documentation aims at providing a comprehensive background and instruction for the HYPPO software. The program can be used for a variety of applications, including but not limited to performing Deep Learning training across many sets of hyperparameters with multiple trials for each evaluation, doing sensitivity analysis on sparse data across the hyperparameter space, and doing surrogate modeling for hyperparameter optimization. Installation ------------ The HYPPO software can be installed very easily using the `pip` Python package manager as follows:: pip install hpo-uq The above command will install all the required :ref:`dependencies ` (see list below) along with the main software. More information about the package can be found in the `pypi webpage `_. .. literalinclude:: ../requirements.txt :language: html HPO Solutions ------------- Below is an example of how HPO model solutions provided by HYPPO can be visualized. The figure below shows the solutions obtained by applying HYPPO to a time-series prediction problem. Please refer to the `HYPPO introductory paper `_ for more details. To reproduce the results from this paper, please visit this `Google Colab notebook `_. .. raw:: html License Agreement ----------------- .. literalinclude:: ../LICENSE.txt :language: html Reporting issues ---------------- .. raw:: html
Submit a ticket If you find any bugs when running this program, please make sure to report them by clicking on the above link and submit a ticket on the software's official Gitlab repository. .. toctree:: :caption: Getting Started :hidden: software/installation software/configuration software/buildconfig software/external software/dataset .. toctree:: :caption: Working Environments :hidden: environment/conda environment/cori environment/distribution environment/asynchronous .. toctree:: :caption: Built-in Architectures :hidden: architecture/compare architecture/mlp architecture/rnn architecture/lstm architecture/cnn architecture/gcn .. toctree:: :caption: Hyperparameter Exploration :hidden: evaluation/sampling evaluation/hposet evaluation/training evaluation/uquant evaluation/sensitivity .. toctree:: :caption: Surrogate Modeling :hidden: analysis/gp analysis/rbf analysis/1d_problem analysis/2d_problem .. toctree:: :caption: Published Works :hidden: papers/introduction papers/gan4hep .. toctree:: :caption: Miscellaneous :hidden: miscellaneous/modules miscellaneous/contribute Commit History genindex miscellaneous/faq