Presentation on theme: "How to Emulate: Recipes without Patronising"— Presentation transcript:
1How to Emulate: Recipes without Patronising The MUCM ToolkitDan Cornford, Aston University
2Overview What and why is the toolkit? How is it delivered Current toolkit contentsA (slightly contrived) tour through parts of the toolkitWhat is the future of the toolkit?What would you like to see in the toolkit?
3What is the toolkit? A series of linked (web) pages: Threads follow the derivation of major idea as a series of linked pagesCore threads cover main areas, variants cover specialisationsProcedures describe an operation or algorithmprovide sufficient information to allow the implementation of the operationDiscussions cover issues that may ariseduring the implementation of a method, or other optional detailsAlternatives present available optionswhen building a specific part of an emulator (e.g. choosing a covariance function) and provide some guidance for making the selectionExamples present how to use the techniques in practiceDefinitions of a term or a conceptMeta any page that does not fall in one of the above categoriesusually pages about the Toolkit itself
4What are the main threads? ThreadCoreGP - the core model, dealt with by fully Bayesian, Gaussian Process, emulationThreadCoreBL - the core model, dealt with by Bayes Linear emulationAnd to come …ThreadVariantMultipleOutputs - variant of the core model in which we emulate more than one output of a simulatorThreadGenericMultipleEmulators – dealing with multiple outputs from more than one emulatorThreadVariantMultipleSimulators - variant of the core model: emulating outputs from more than one related simulatorThreadVariantDynamic - a special case of multiple outputs as timeseriesThreadVariantStochastic - variant of the core model in which the simulator output is randomThreadVariantDerivatives - variant of the core model in which we also model derivatives of outputs
6Do I have to read it linearly? Pages can be accessed individually or as part of a thread.We will add cross-cutting threads, e.g. on design for computer models
7How are we creating it? The toolkit is built using a wiki All the MUCM team contributesTony O’Hagan is the editor in chief, Yiannis Andrianakis is managing the overall technologyWe release sections of the toolkit as they become mature to a web siteThis allows us control over the quality of the contentWe plan further enhancement to the presentationMore graphical presentation of the structureAbility for users to add comments to pages
8How to use the toolkit I’ll use a scenario to motivate this. A chemical engineer is working on an azoisopropane chemical process simulation.The process involves two key chemicals, which react to produce 39 main chemicals, with 42 reactions possible.Thus the simulator has 39+2*42 = 123 inputs.For now the chemist is mainly interested in a single output, the main target azoisopropane concentration, 1 output!I want to show how the toolkit can help here!
9What does the chemist want to know? There are many chemical reactions, but which are the most important for determining the output variation?This is in essence a sensitivity analysis.Not all the reaction rates and activation energies are perfectly known – many are not directly observableInitial concentrations can be controlledThreadCoreGP is relevant here.
10Exploratory analysis, prior judgements The chemist expects only a few reactions to be important, and wants to know which these areAt present they use local estimates based on simulator JacobiansThe model is not too complex – typical evaluation takes a few tens of seconds, depending on target timeIt is likely that reaction rate parameters within the model could lie in the range 0.5x to 2.0x where x is the specified value
11ThreadCoreGP: how to emulate ThreadCoreGP discusses all the issues that need to be tackled when undertaking emulation in the situation:We are only concerned with one simulatorThe simulator only produces one outputThe output is deterministicWe do not have observations of the real worldWe don’t make statements about the real world processWe cannot directly observe derivatives of the simulatorWe’ll explore how we can use ThreadCoreGP
12What is in ThreadCoreGP? Definition of what a Gaussian process isDiscussion of the implications of using a Gaussian processAlternatives to the ‘full Bayesian’ approach – Bayes Linear methodsProvides technical information and discusses alternatives for:determining active inputsmean functions and covariance functionschoice of prior distributionsexperimental design of simulator runsfitting the emulatorusing the emulatorprediction, uncertainty analysis and sensitivity analysis
13DiscGaussianAssumption – what is in there? This discusses issues to do with representing beliefs about the simulator in terms of a Gaussian processWhy we use a Gaussian processcomputation and simplicity; other approaches could be entertainedWhen a Gaussian process might be inappropriateoutputs constrained in a range (but not practically important if we have a good emulator)What to do if Gaussian process is not appropriatemain solution is use transformations e.g. logAlso mentions Bayes Linear methods
14AltMeanFunction – what is in there? Discussion of the alternatives for the mean function:mean function should be chosen to represent ‘the general shape of how the analyst expects the simulator output to respond to changes in the inputs’Typically a linear in parameters regression, with a prior over the parameters – AltGPPriorsOther forms possible but there is a price
15AltCorrelationFunction – what is in there? Discussion of the alternatives for choosing the covariance functionGaussian (squared exponential), generalised Gaussian, MaternRole of nuggetsImplications of choicesOther possible choices
16OK time for you to take over Rather than presenting this I now want to get you to do some workI like volunteers to try and use the toolkit – let’s talk about your simulation problems as see if the toolkit has the answersWhat problems made you sign up for todayI’ll try and find the answers in the toolkit or the experts
17Toolkit development – the future The toolkit is continually developingBy the end of MUCM there will be a complete description of most aspects of building and using emulatorsMUCM2 will add more content, particularly accessible introductions and more examplesHave we missed something?Please tell us!Future releases should allow easy commenting
18SummaryThe toolkit will distil the combined knowledge of the MUCM team (and beyond)We intend it to become the ‘emulation Wikipedia’:An accessible, free community resource which will outlive the projectWe are releasing it in parts, and will continue to improve it within MUCM2