https://mooseframework.inl.gov
ActiveLearningGPDecision.h
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://mooseframework.inl.gov
3 //*
4 //* All rights reserved, see COPYRIGHT for full restrictions
5 //* https://github.com/idaholab/moose/blob/master/COPYRIGHT
6 //*
7 //* Licensed under LGPL 2.1, please see LICENSE for details
8 //* https://www.gnu.org/licenses/lgpl-2.1.html
9 
10 #pragma once
11 
16 
19 {
20 public:
23 
25  const int & getTrainingSamples() const { return _n_train; }
26 
27 protected:
34  virtual void preNeedSample() override;
35 
46  virtual bool needSample(const std::vector<Real> & row,
47  dof_id_type local_ind,
48  dof_id_type global_ind,
49  Real & val) override;
50 
57  virtual bool facilitateDecision();
58 
65  virtual void setupData(const std::vector<std::vector<Real>> & inputs,
66  const std::vector<Real> & outputs);
67 
76  bool learningFunction(const Real & gp_mean, const Real & gp_std) const;
77 
84 
86  std::vector<std::vector<Real>> _inputs_batch;
88  std::vector<Real> _outputs_batch;
89 
94 
96  std::vector<bool> & _flag_sample;
97 
99  const int _n_train;
100 
102  std::vector<std::vector<Real>> & _inputs;
103 
105  std::vector<Real> & _gp_mean;
107  std::vector<Real> & _gp_std;
108 
110  bool _decision;
111 
113  const std::vector<std::vector<Real>> & _inputs_global;
115  const std::vector<Real> & _outputs_global;
116 };
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.
const Real & _learning_function_threshold
The learning function threshold.
virtual void preNeedSample() override
This is where most of the computations happen:
const int & getTrainingSamples() const
Access the number of training samples.
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.
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.
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...
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 &parameters)
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.
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.
uint8_t dof_id_type
std::vector< bool > & _flag_sample
Flag samples when the GP fails.