$extrastylesheet
Dakota
Version 6.2
|
Bayesian inference using the QUESO library from UT Austin. More...
Public Member Functions | |
NonDQUESOBayesCalibration (ProblemDescDB &problem_db, Model &model) | |
standard constructor | |
~NonDQUESOBayesCalibration () | |
destructor | |
Real | prior_density (const QUESO::GslVector &qv) |
compute the prior PDF for a particular MCMC sample | |
Protected Member Functions | |
void | quantify_uncertainty () |
redefined from DakotaNonD | |
void | print_results (std::ostream &s) |
redefined from DakotaAnalyzer | |
void | init_queso_environment () |
initialize the QUESO FullEnvironment on the Dakota MPIComm | |
void | init_precond_request_value () |
initialize the ASV value for preconditioned cases | |
void | init_residual_response () |
initialize a residual response for use in data transformations | |
void | init_queso_solver () |
define variables, options, likelihood callback, and inverse problem | |
void | precondition_proposal () |
use derivative information from the emulator to define the proposal covariance (inverse of misfit Hessian) | |
void | run_queso_solver () |
perform the MCMC process | |
void | run_chain_with_restarting () |
short term option to restart the MCMC chain with updated proposal density computed from the emulator at a new starting point | |
void | filter_chain (size_t update_cntr, unsigned short batch_size) |
extract batch_size points from the MCMC chain and store final aggregated set within allSamples | |
void | chain_to_local (unsigned short batch_size, std::map< Real, size_t > &local_best) |
store indices of best batch_size samples from the current MCMC chain within the local_best array | |
void | local_to_aggregated (unsigned short batch_size, const std::map< Real, size_t > &local_best) |
update bestSamples aggregation using new contributions from the current MCMC chain | |
void | aggregated_to_all () |
following aggregation cycles, copy bestSamples to allSamples | |
void | local_to_all (const std::map< Real, size_t > &local_best) |
in the absence of aggregation cycles, copy local_best to allSamples | |
void | update_center () |
update the starting point for a restarted MCMC chain using last point from previous chain | |
void | update_model () |
evaluates allSamples on iteratedModel and update the mcmcModel emulator with all{Samples,Responses} | |
Real | assess_emulator_convergence () |
compute the L2 norm of the change in emulator coefficients | |
void | init_parameter_domain () |
intialize the QUESO parameter space, min, max, initial, and domain | |
void | prior_proposal_covariance () |
use covariance of prior distribution for setting proposal covariance | |
void | user_proposal_covariance (const String &input_fmt, const RealVector &cov_data, const String &cov_filename) |
set proposal covariance from user-provided diagonal or matrix | |
void | set_ip_options () |
set inverse problem options calIpOptionsValues common to all solvers | |
void | set_mh_options () |
set MH-specific inverse problem options calIpMhOptionsValues | |
void | update_chain_size (unsigned int size) |
update MH-specific inverse problem options calIpMhOptionsValues | |
void | copy_gsl (const QUESO::GslVector &qv, RealVector &rv) |
local copy_data utility | |
void | copy_gsl (const QUESO::GslVector &qv, RealMatrix &rm, int i) |
local copy_data utility | |
Static Protected Member Functions | |
static double | dakotaLikelihoodRoutine (const QUESO::GslVector ¶mValues, const QUESO::GslVector *paramDirection, const void *functionDataPtr, QUESO::GslVector *gradVector, QUESO::GslMatrix *hessianMatrix, QUESO::GslVector *hessianEffect) |
Likelihood function for call-back from QUESO to DAKOTA for evaluation. | |
Protected Attributes | |
String | mcmcType |
MCMC type ("dram" or "delayed_rejection" or "adaptive_metropolis" or "metropolis_hastings" or "multilevel", within QUESO) | |
Real | likelihoodScale |
scale factor for likelihood; deprecated | |
bool | calibrateSigma |
flag to indicated if the sigma terms should be calibrated (default true) | |
short | precondRequestValue |
the active set request value to use in proposal preconditioning | |
Response | residualResponse |
local Response in which to store computed residuals | |
bool | logitTransform |
flag indicating user activation of logit transform option | |
Private Attributes | |
boost::shared_ptr < QUESO::EnvOptionsValues > | envOptionsValues |
options for setting up the QUESO Environment | |
boost::shared_ptr < QUESO::FullEnvironment > | quesoEnv |
top-level QUESO Environment | |
boost::shared_ptr < QUESO::VectorSpace < QUESO::GslVector, QUESO::GslMatrix > > | paramSpace |
QUESO parameter space based on number of calibrated parameters. | |
boost::shared_ptr < QUESO::BoxSubset < QUESO::GslVector, QUESO::GslMatrix > > | paramDomain |
QUESO parameter domain: hypercube based on min/max values. | |
boost::shared_ptr < QUESO::GslVector > | paramInitials |
initial parameter values at which to start chain | |
boost::shared_ptr < QUESO::GslMatrix > | proposalCovMatrix |
proposal covariance for DRAM | |
boost::shared_ptr < QUESO::SipOptionsValues > | calIpOptionsValues |
general inverse problem options | |
boost::shared_ptr < QUESO::MhOptionsValues > | calIpMhOptionsValues |
MH-specific inverse problem options. | |
boost::shared_ptr < QUESO::GenericScalarFunction < QUESO::GslVector, QUESO::GslMatrix > > | likelihoodFunctionObj |
boost::shared_ptr < QUESO::BaseVectorRV < QUESO::GslVector, QUESO::GslMatrix > > | priorRv |
boost::shared_ptr < QUESO::GenericVectorRV < QUESO::GslVector, QUESO::GslMatrix > > | postRv |
boost::shared_ptr < QUESO::StatisticalInverseProblem < QUESO::GslVector, QUESO::GslMatrix > > | inverseProb |
std::map< Real, QUESO::GslVector > | bestSamples |
array for managing aggregation of best MCMC samples across multiple (restarted) chains | |
RealVectorArray | prevCoeffs |
cache previous expansion coefficients for assessing convergence of emulator refinement process | |
Static Private Attributes | |
static NonDQUESOBayesCalibration * | NonDQUESOInstance |
Pointer to current class instance for use in static callback functions. |
Bayesian inference using the QUESO library from UT Austin.
This class provides a wrapper to the QUESO library developed as part of the Predictive Science Academic Alliance Program (PSAAP), specifically the PECOS (Predictive Engineering and Computational Sciences) Center at UT Austin. The name QUESO stands for Quantification of Uncertainty for Estimation, Simulation, and Optimization.
NonDQUESOBayesCalibration | ( | ProblemDescDB & | problem_db, |
Model & | model | ||
) |
standard constructor
This constructor is called for a standard letter-envelope iterator instantiation. In this case, set_db_list_nodes has been called and probDescDB can be queried for settings from the method specification.
References Dakota::abort_handler(), NonDQUESOBayesCalibration::calibrateSigma, NonDCalibration::calibrationData, NonDCalibration::expData, NonDQUESOBayesCalibration::init_queso_environment(), and ExperimentData::load_data().
void quantify_uncertainty | ( | ) | [protected, virtual] |
redefined from DakotaNonD
Perform the uncertainty quantification
Implements NonD.
References Dakota::abort_handler(), NonDBayesCalibration::adaptPosteriorRefine, NonDQUESOBayesCalibration::assess_emulator_convergence(), NonDQUESOBayesCalibration::calibrateSigma, Analyzer::compactMode, Iterator::convergenceTol, NonDBayesCalibration::emulatorType, NonDCalibration::expData, NonDQUESOBayesCalibration::init_parameter_domain(), NonDQUESOBayesCalibration::init_precond_request_value(), NonDQUESOBayesCalibration::init_queso_solver(), NonDQUESOBayesCalibration::init_residual_response(), NonDBayesCalibration::initialize_model(), Iterator::maxIterations, NonDQUESOBayesCalibration::NonDQUESOInstance, Analyzer::numContinuousVars, Analyzer::numFunctions, Iterator::outputLevel, NonDQUESOBayesCalibration::paramSpace, NonDQUESOBayesCalibration::prior_proposal_covariance(), NonDBayesCalibration::proposalCovarData, NonDBayesCalibration::proposalCovarFilename, NonDBayesCalibration::proposalCovarInputType, NonDBayesCalibration::proposalCovarType, NonDQUESOBayesCalibration::proposalCovMatrix, NonDQUESOBayesCalibration::run_chain_with_restarting(), ExperimentData::scalar_sigma_est(), NonDQUESOBayesCalibration::update_model(), and NonDQUESOBayesCalibration::user_proposal_covariance().
void prior_proposal_covariance | ( | ) | [protected] |
use covariance of prior distribution for setting proposal covariance
Must be called after paramMins/paramMaxs set above
References Model::continuous_distribution_moment(), NonDBayesCalibration::mcmcModel, Analyzer::numContinuousVars, Iterator::outputLevel, NonDQUESOBayesCalibration::proposalCovMatrix, and NonDBayesCalibration::standardizedSpace.
Referenced by NonDQUESOBayesCalibration::quantify_uncertainty().
void user_proposal_covariance | ( | const String & | input_fmt, |
const RealVector & | cov_data, | ||
const String & | cov_filename | ||
) | [protected] |
set proposal covariance from user-provided diagonal or matrix
This function will convert user-specified cov_type = "diagonal" | "matrix" data from either cov_data or cov_filename and populate a full QUESO::GslMatrix* in proposalCovMatrix with the covariance.
References Analyzer::numContinuousVars, NonDQUESOBayesCalibration::proposalCovMatrix, and NonDBayesCalibration::standardizedSpace.
Referenced by NonDQUESOBayesCalibration::quantify_uncertainty().
void set_ip_options | ( | ) | [protected] |
set inverse problem options calIpOptionsValues common to all solvers
set inverse problem options common to all solvers
References NonDQUESOBayesCalibration::calIpOptionsValues.
Referenced by NonDQUESOBayesCalibration::init_queso_solver().
bool logitTransform [protected] |
flag indicating user activation of logit transform option
this option is useful for preventing rejection or resampling for out-of-bounds samples by transforming bounded domains to [-inf,inf].
Referenced by NonDQUESOBayesCalibration::set_mh_options().