View source: R/ospSeqBatchDesign.R
osp.seq.batch.design | R Documentation |
Sequential experimental design for optimal stopping problems with several adaptive batching heuristics based on Lyu & Ludkovski (2020+)
osp.seq.batch.design(model, method = "km", t0 = 0.01, is.gbm = FALSE)
model |
a list containing all the model parameters. |
method |
A GP emulator to apply. Must be one of |
t0 |
parameter |
is.gbm |
flag to indicate whether the underlying simulator is independent log-normals (used as part of density computation for integrated EI criteria) [Default FALSE] |
Implements the adaptive batching strategy defined in mode$batch.heuristic
.
Calls lhs
from library tgp. Possible batch heuristics are:
fb
: [Default] fixed batch amounts (essentially same as osp.seq.design)
mlb
: Multi-level batching; relies on model$r.cand
rb
: Ratchet batching; relies on model$r.cand
absur
: Adaptive batching with Stepwise Uncertainty Reduction; relies on model$t0
adsa
: Adaptive Design with Sequential Allocation
ddsa
: Deterministic ADSA that alternates between adding a new input site and allocating
to existing sites
All heuristics also require specifying the acquisition function for expected improvement criterion
via model$ei.func
, see osp.seq.design
a list containing:
fit
a list of fitted response surfaces
timeElapsed
vector of time costs for each round
nsims
total number of 1-step model$sim.func
calls
empLoss
vector of empirical losses
ndesigns
: number of unique designs k_T
batches
: matrix of replications r_i, indexed by time-steps and by sequential rounds
M. Ludkovski, X. Lyu (2020+) Adaptive Batching for Gaussian Process Surrogates with Application in Noisy Level Set Estimation, <http://arxiv.org/abs/2003.08579>
[mlOSP::osp.seq.design]
sob30 <- randtoolbox::sobol(55, d=2) # construct a space-filling initial design
sob30 <- sob30[ which( sob30[,1] + sob30[,2] <= 1) ,]
sob30 <- 25+30*sob30
model2d <- list(x0 = rep(40,2),K=40,sigma=rep(0.2,2),r=0.06,
div=0,T=1,dt=0.04,dim=2,sim.func=sim.gbm,
payoff.func=put.payoff, look.ahead=1, pilot.nsims=1000,
cand.len=1000,max.lengthscale=c(40,40),min.lengthscale=c(3,3),
seq.design.size=50,batch.nrep=25,total.budget=2000,init.size=30,
init.grid=sob30, kernel.family="gauss",update.freq=5,
r.cand=c(20, 30,40,50,60, 80, 120, 160))
set.seed(11)
require(tgp)
require(DiceKriging)
require(laGP)
require(ks)
model2d$batch.heuristic <- 'adsa'
model2d$ei.func <- 'amcu'
oos.obj.adsa <- osp.seq.batch.design(model2d,method="trainkm")
plt.2d.surf.with.batch(oos.obj.adsa$fit[[15]],
oos.obj.adsa$batches[1:oos.obj.adsa$ndesigns[15] - 1, 15])
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.