/surrogate-overparameterization

Source code of "On the influence of over-parameterization in manifold based surrogates and deep neural operators".

Primary LanguageJupyter NotebookMIT LicenseMIT

Table of contents

General info

This Git repository contains codes for the 'On the influence of over-parameterization in manifold based surrogates and deep neural operators' paper which can be found here: https://www.sciencedirect.com/science/article/abs/pii/S0021999123001031 (JPC) or https://arxiv.org/abs/2203.05071 (arXiv)

Authors: Katiana Kontolati, Somdatta Goswami, Michael D. Shields, George Em Karniadakis

Methods

  • Manifold PCE or mPCE approximates mappings via the identification of low-dimensional embeddings of input and output functions and the construction of a polynomial-based surrogate.

  • DeepONet is a deep neural operator model which allows the construction of mapping between infinite dimensional functions via the use of deep neural networks (DNNs).

Application

  • The Brusselator diffusion-reaction dynamical system is studied, which describes an autocatalytic chemical reaction between two substances.
  • The objective is to approximate the mapping between high-dimensional stochastic initial fields and the evolution of the system across time and space (first row below). The model response is learned for two dynamical states, when the system reaches a fixed point in the phase space (second row) and when it reaches a limit cycle (third row).
  • We explore the capabilities of the studied models and test them for various regression tasks including their extrapolation/generalization ability (performance to out-of-distribution data), robustness to noise, ability to handle complex stochastic inputs and highly nonlinear mappings.

Contents

  • data - contains files with the input random field data used to generate the train and test data of the model

  • utils - contains python scripts necessary for implementing the surrogate modeling tasks (loading data, plotting etc.)

  • main_{}.py/ main_{}.ipynb - contains python scripts and notebooks for implementing the proposed approaches

Datasets

To generate the train/test data for the Brusselator model simply run the generate_data.py script. This will save the generated dataset inside folder data/. The py-pde package is used for solving the model.

Get Started

To clone and use this repository, run the following terminal commands:

1. Create an Anaconda Python 3.7 virtual environment:

conda create -n surrogate-overparam python==3.7
conda activate surrogate-overparam

2. Clone the repo:

To clone and use this repository, run the following terminal commands:

git clone https://github.com/katiana22/surrogate-overparameterization.git

3. Install dependencies:

cd surrogate-overparameterization
pip install -r requirements.txt

Citation

If you find this GitHub repository useful for your work, please consider citing this work:

@article{kontolati2023influence,
  title={On the influence of over-parameterization in manifold based surrogates and deep neural operators},
  author={Kontolati, Katiana and Goswami, Somdatta and Shields, Michael D and Karniadakis, George Em},
  journal={Journal of Computational Physics},
  volume={479},
  pages={112008},
  year={2023},
  publisher={Elsevier}
}

Contact

For more information or questions please contact us at: