torch::nn_module()
Representing a specified_masks_mask_generatorR/approach_vaeac_torch_modules.R
specified_masks_mask_generator.Rd
A mask generator which masks the entries based on sampling provided 1D masks with corresponding probabilities. Used for Shapley value estimation when only a subset of coalitions are used to compute the Shapley values.
specified_masks_mask_generator(masks, masks_probs, paired_sampling = FALSE)
Matrix/Tensor of possible/allowed 'masks' which we sample from.
Array of 'probabilities' for each of the masks specified in 'masks'. Note that they do not need to be between 0 and 1 (e.g. sampling frequency). They are scaled, hence, they only need to be positive.
Boolean. If we are doing paired sampling. So include both S and \(\bar{S}\).
If TRUE, then batch must be sampled using 'paired_sampler' which creates batches where
the first half and second half of the rows are duplicates of each other. That is,
batch = [row1, row1, row2, row2, row3, row3, ...]
.
if (FALSE) { # \dontrun{
masks <- torch_tensor(matrix(c(0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1),
nrow = 3, ncol = 4, byrow = TRUE
))
masks_probs <- c(3, 1, 6)
mask_gen <- specified_masks_mask_generator(masks = masks, masks_probs = masks_probs)
empirical_prob <-
table(as.array(mask_gen(torch::torch_randn(c(10000, ncol(masks))))$sum(-1)))
empirical_prob / sum(empirical_prob)
masks_probs / sum(masks_probs)
} # }