Generation of surrogate models with artificial neural networks and polynomial chaos expansion
Creators
- 1. Max Plack Institute for Chemistry, Mainz
- 2. Max Planck Institute for Chemistry, Mainz
- 3. ETH Zurich, Massachusetts Institute of Technology, McGill University
- 4. Institute for Atmospheric and Climate Science, ETH Zürich
Description
The provided code allows the generation and application of machine learning surrogate models based on a data set of template model in- and outputs. Example training and test data originates from the kinetic multilayer model of aerosol surface and bulk chemistry (KM-SUB, https://doi.org/10.5194/acp-10-3673-2010). Artificial neural networks are implemented with the python library Keras, polynomial chaos expansion with the Matlab software UQLab. Further information can be found in the provided files. An overview is also given in file contents.txt.
This code is the product of a collaboration between:
Max Planck Institute for Chemistry, Hahn-Meitner-Weg 1, 55128 Mainz, Germany
Institute for Atmospheric and Climate Science, ETH Zürich, 8092 Zürich, Switzerland
Authors:
Thomas Berkemeier, Matteo Krüger, Aryeh Feinberg, Marcel Müller, Ulrich Pöschl and Ulrich K. Krieger
Code contributions:
Neural network code by Matteo Krüger
Polynomial chaos expansion code by Aryeh Feinberg and Marcel Müller
File contents:
Artificial neural networks (Python):
exec_surr_modeling.py - python executable for hyperparameter tuning and model training
fit_acquisition_test.py - pre-sampling with NN for NN-suggested fit acquisition
Matlab_Sampling.py - execution of matlab model scripts with matlab engine
MCMC.py - functions for pre-sampling with NN (Metropolis Hastings python implementation and random loguniform batch sampling), error calculation
mogon_hpt_iterator.py - hyperparameter tuning, saving of model results and best model pickles
mogon_model.py - NN model with variable architecture, data pre-processing
PredictFits.py - supporting functions for application of pickled NN models (predictions)
ReadData.py - supporting function for specific data structure and data file handling
Polynomial chaos expansion (Matlab):
PCEcreator_200810.m - PCE model creation
AnalysePCE_210203.m - PCE model evaluation
sensitivity_analysis_exp_conditions.m - subsampling sensitivity analysis/common random number analysis
sensitivity_analysis_PCE.m - model sensitivity analysis
Example training data (KM-SUB):
P0sortTest.csv - Test data (n=1000)
P0sortTrain.csv - Training data (n>4.2 Mio)
Files
KM-SUB_sampled_training_data.zip
Files
(275.6 MB)
Name | Size | Download all |
---|---|---|
md5:309a01bb9ce0c86fab1f09a30bc8b164
|
275.6 MB | Preview Download |
md5:e3bf09d8ffd3d3a658e2531b63bc3370
|
23.5 kB | Preview Download |