Implements Bayesian Deep Learning techniques for spatial uncertainty quantification in sampling optimization. Provides Monte Carlo dropout, variational inference, and comprehensive uncertainty estimation capabilities.
Details
The BayesianDeepLearning class integrates with the torch framework to provide:
Monte Carlo dropout for epistemic uncertainty estimation
Variational inference for parameter uncertainty quantification
Epistemic, aleatoric, and total uncertainty calculation
Spatial-aware neural network architectures
Public fields
modelTrained torch neural network model
configConfiguration parameters for BDL
torch_availableBoolean indicating torch availability
uncertainty_cacheCached uncertainty calculations
Active bindings
modelTrained torch neural network model
configConfiguration parameters for BDL
torch_availableBoolean indicating torch availability
uncertainty_cacheCached uncertainty calculations
Methods
Method new()
Usage
BayesianDeepLearning$new(config = list())Method fit_model()
Usage
BayesianDeepLearning$fit_model(
field_data,
existing_samples,
target_variable = NULL,
validation_split = 0.2,
epochs = 100,
batch_size = 32
)Arguments
field_dataList containing boundary, covariates, and metadata
existing_samplesData frame with existing sample locations and values
target_variableName of target variable to predict
validation_splitProportion of data for validation
epochsNumber of training epochs
batch_sizeTraining batch size
Method predict_with_uncertainty()
Usage
BayesianDeepLearning$predict_with_uncertainty(
locations,
n_samples = 100,
return_samples = FALSE,
progress_manager = NULL,
resource_manager = NULL
)Arguments
locationsSpatial locations for prediction (sf object or data.frame with x,y)
n_samplesNumber of Monte Carlo samples for uncertainty estimation
return_samplesWhether to return individual MC samples
progress_managerOptional ProgressManager instance
resource_managerOptional ResourceManager instance
Method mc_dropout_predict()
Usage
BayesianDeepLearning$mc_dropout_predict(
model,
data,
n_iterations = 100,
dropout_rate = 0.1
)Method variational_inference()
Usage
BayesianDeepLearning$variational_inference(
data,
prior_params = list(),
n_samples = 1000,
learning_rate = 0.01
)Examples
if (FALSE) { # \dontrun{
# Initialize BDL module
bdl <- BayesianDeepLearning$new()
# Fit model with spatial data
bdl$fit_model(field_data, existing_samples)
# Predict with uncertainty
predictions <- bdl$predict_with_uncertainty(new_locations)
# Calculate specific uncertainty types
epistemic <- bdl$epistemic_uncertainty(predictions)
} # }
## ------------------------------------------------
## Method `BayesianDeepLearning$new`
## ------------------------------------------------
if (FALSE) { # \dontrun{
bdl <- BayesianDeepLearning$new()
bdl_custom <- BayesianDeepLearning$new(config = list(dropout_rate = 0.2))
} # }
## ------------------------------------------------
## Method `BayesianDeepLearning$fit_model`
## ------------------------------------------------
if (FALSE) { # \dontrun{
model <- bdl$fit_model(
field_data = field_data,
existing_samples = samples,
target_variable = "soil_property",
epochs = 100
)
} # }
## ------------------------------------------------
## Method `BayesianDeepLearning$predict_with_uncertainty`
## ------------------------------------------------
if (FALSE) { # \dontrun{
predictions <- bdl$predict_with_uncertainty(
locations = new_locations,
n_samples = 100
)
} # }
## ------------------------------------------------
## Method `BayesianDeepLearning$mc_dropout_predict`
## ------------------------------------------------
if (FALSE) { # \dontrun{
mc_predictions <- bdl$mc_dropout_predict(
model = fitted_model,
data = prediction_data,
n_iterations = 100,
dropout_rate = 0.1
)
} # }
## ------------------------------------------------
## Method `BayesianDeepLearning$variational_inference`
## ------------------------------------------------
if (FALSE) { # \dontrun{
vi_result <- bdl$variational_inference(
data = training_data,
prior_params = list(mean = 0, std = 1),
n_samples = 1000
)
} # }
## ------------------------------------------------
## Method `BayesianDeepLearning$epistemic_uncertainty`
## ------------------------------------------------
if (FALSE) { # \dontrun{
epistemic <- bdl$epistemic_uncertainty(predictions)
} # }
## ------------------------------------------------
## Method `BayesianDeepLearning$aleatoric_uncertainty`
## ------------------------------------------------
if (FALSE) { # \dontrun{
aleatoric <- bdl$aleatoric_uncertainty(predictions)
} # }
## ------------------------------------------------
## Method `BayesianDeepLearning$total_uncertainty`
## ------------------------------------------------
if (FALSE) { # \dontrun{
total <- bdl$total_uncertainty(predictions)
} # }
