Info: Zenodo’s user support line is staffed on regular business days between Dec 23 and Jan 5. Response times may be slightly longer than normal.

Published October 17, 2022 | Version v2
Software Open

Generation of surrogate models with artificial neural networks and polynomial chaos expansion

  • 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