23 "Evaluates a GP surrogate model, determines its prediction quality, " 24 "launches full model if GP prediction is inadequate, and retrains GP.");
25 MooseEnum learning_function(
"Ufunction COV");
27 "learning_function", learning_function,
"The learning function for active learning.");
28 params.
addRequiredParam<
Real>(
"learning_function_threshold",
"The learning function threshold.");
30 std::numeric_limits<Real>::max(),
31 "The learning function parameter.");
32 params.
addRequiredParam<UserObjectName>(
"al_gp",
"Active learning GP trainer.");
33 params.
addRequiredParam<UserObjectName>(
"gp_evaluator",
"Evaluate the trained GP.");
35 params.
addParam<ReporterValueName>(
"flag_sample",
"flag_sample",
"Flag samples.");
37 params.
addParam<ReporterValueName>(
"inputs",
"inputs",
"The inputs.");
38 params.
addParam<ReporterValueName>(
"gp_mean",
"gp_mean",
"The GP mean prediction.");
39 params.
addParam<ReporterValueName>(
"gp_std",
"gp_std",
"The GP standard deviation.");
46 _learning_function(getParam<
MooseEnum>(
"learning_function")),
47 _learning_function_threshold(getParam<
Real>(
"learning_function_threshold")),
48 _learning_function_parameter(getParam<
Real>(
"learning_function_parameter")),
51 _flag_sample(declareValue<
std::vector<bool>>(
52 "flag_sample",
std::vector<bool>(sampler().getNumberOfRows(), false))),
53 _n_train(getParam<
int>(
"n_train")),
54 _inputs(declareValue<
std::vector<
std::vector<
Real>>>(
56 std::vector<
std::vector<
Real>>(sampler().getNumberOfRows(),
57 std::vector<
Real>(sampler().getNumberOfCols())))),
59 declareValue<
std::vector<
Real>>(
"gp_mean",
std::vector<
Real>(sampler().getNumberOfRows()))),
61 declareValue<
std::vector<
Real>>(
"gp_std",
std::vector<
Real>(sampler().getNumberOfRows()))),
63 _inputs_global(getGlobalInputData()),
64 _outputs_global(getGlobalOutputData())
69 "The Ufunction requires the model failure threshold ('learning_function_parameter') " 88 const std::vector<Real> & outputs)
registerMooseObject("StochasticToolsApp", ActiveLearningGPDecision)
virtual void setupData(const std::vector< std::vector< Real >> &inputs, const std::vector< Real > &outputs)
This sets up data for re-training the GP.
std::vector< Real > _outputs_batch
Store all the outputs used for training.
const int _n_train
Number of initial training points for GP.
static InputParameters validParams()
bool _decision
GP pass/fail decision.
virtual void reTrain(const std::vector< std::vector< Real >> &inputs, const std::vector< Real > &outputs) const final
const Real & _learning_function_threshold
The learning function threshold.
virtual void preNeedSample() override
This is where most of the computations happen:
const std::vector< Real > & _outputs_global
Reference to global output data requested from base class.
const MooseEnum & _learning_function
The learning function for active learning.
virtual Real evaluate(const std::vector< Real > &x) const
Evaluate surrogate model given a row of parameters.
void paramError(const std::string ¶m, Args... args) const
const Real & _learning_function_parameter
The learning function parameter.
std::vector< std::vector< Real > > _inputs_batch
Store all the input vectors used for training.
const ActiveLearningGaussianProcess & _al_gp
The active learning GP trainer that permits re-training.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
Interface for objects that need to use samplers.
static InputParameters validParams()
bool learningFunction(const Real &gp_mean, const Real &gp_std) const
This method evaluates the active learning acquisition function and returns bool that indicates whethe...
void mooseError(Args &&... args) const
virtual bool needSample(const std::vector< Real > &row, dof_id_type local_ind, dof_id_type global_ind, Real &val) override
Based on the computations in preNeedSample, the decision to get more data is passed and results from ...
const InputParameters & parameters() const
std::vector< Real > & _gp_mean
Broadcast the GP mean prediciton to JSON.
virtual bool facilitateDecision()
Make decisions whether to call the full model or not based on GP prediction and uncertainty.
const SurrogateModel & _gp_eval
The GP evaluator object that permits re-evaluations.
ActiveLearningGPDecision(const InputParameters ¶meters)
std::vector< std::vector< Real > > & _inputs
Storage for the input vectors to be transferred to the output file.
std::vector< Real > & _gp_std
Broadcast the GP standard deviation to JSON.
void ErrorVector unsigned int
This is a base class for performing active learning routines, meant to be used in conjunction with Sa...
const std::vector< std::vector< Real > > & _inputs_global
Reference to global input data requested from base class.
std::vector< bool > & _flag_sample
Flag samples when the GP fails.