Description Usage Arguments Details Value Author(s) References Examples
Optimizes the ALC surface to sequentially select inducing points for a given predictive location and local neighborhood. ALC can be based solely on the predictive location or an additional set of reference locations.
1 2 3 4 |
Xc |
a vector containing the predictive location used as the center of the design/neighborhood |
Xref |
a |
M |
the positive integer number of inducing points placed for each local neighborhood; |
Xn |
a |
Yn |
a vector of the corresponding responses to |
theta |
the lengthscale parameter (positive number) in a Gaussian
correlation function; a (default) |
g |
the nugget parameter (positive number) in the covariance |
ip_bounds |
a 2 by d |
num_thread |
a scalar positive integer indicating the number of threads to use for parallel processing
for the multistart search: |
num_multistart |
a positive integer indicating the number of starting locations used to optimize the ALC and find the global minimum |
epsK |
a small positive number added to the diagonal of the correlation matrix, of inducing points, K, for numerically stability for inversion |
epsQ |
a small positive number added to the diagonal of the Q |
tol |
a positive number to serve as the tolerance level for covergence of ALC when optimizing the location of the next inducing point |
rep_list |
a list from |
verbose |
if |
The function sequentially places M inducing points around the local neighborhood (Xn) of Xc. The first inducing point is placed at Xc. The remaining points and placed based on the minimum in the ALC surface using rbind(Xc, Xref) as a reference set for the predictive variance. Hyperparameters theta,g are fixed.
The output is a list with the following components.
Xm |
a |
alc |
a vector of the ALC progress at each inducing point selection step |
time |
a scalar giving the passage of wall-clock time elapsed for (substantive parts of) the calculation |
D. Austin Cole austin.cole8@vt.edu
D.A. Cole, R.B. Christianson, and R.B. Gramacy (2021). Locally Induced Gaussian Processes for Large-Scale Simulation Experiments Statistics and Computing, 31(3), 1-21; preprint on arXiv:2008.12857; https://arxiv.org/abs/2008.12857
S. Seo, M. Wallat, T. Graepel, and K. Obermayer (2000). Gaussian Process Regression: Active Data Selection and Test Point Rejection In Mustererkennung 2000, 27-34. New York, NY: Springer-Verlag.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | ## a "computer experiment"
## Simple 2-d Herbie's Tooth function used in Cole et al (2020);
## thanks to Lee, Gramacy, Taddy, and others who have used it before
## Build up a design with N=~40K locations
x <- seq(-2, 2, by=0.02)
X <- as.matrix(expand.grid(x, x))
Y <- herbtooth(X)
library(laGP)
## Build a local neighborhood
Xstar <- matrix(c(.4, -1.1), nrow=1)
n <- 100; m <- 10
Xstar_to_X_dists <- distance(Xstar, X)
quant_dists <- quantile(Xstar_to_X_dists, n/nrow(X))
Xn <- X[Xstar_to_X_dists < quant_dists,]
Yn <- Y[Xstar_to_X_dists < quant_dists]
theta <- darg(NULL, Xn)$start
## Optimize inducing point locations
Xm.alc <- optIP.ALC(Xstar, Xref=NULL, M=m, Xn=Xn, Yn=Yn, theta=theta)
## Define reference locations for ALC sum
Xref <- as.matrix(expand.grid(Xstar[1]+c(-.05, 0, .05), Xstar[2]+c(-.05, 0, .05)))
Xm.alc_with_Xref <- optIP.ALC(Xstar, Xref=Xref, M=m, Xn=Xn, Yn=Yn, theta=theta)
## Plot inducing point design and neighborhood
ranges <- apply(Xn, 2, range)
plot(Xn, pch = 16, cex=.5, col='grey',
xlim=ranges[,1]+c(-.02, .02), ylim=ranges[,2]+c(-.02, .15),
xlab='x1', ylab = 'x2',
main='ALC-optimal Inducing Point Design')
points(Xstar[1], Xstar[2], pch=16)
points(Xm.alc$Xm, pch=2, col=3, lwd=2)
points(Xm.alc_with_Xref$Xm, pch=3, col=4, lwd=2)
legend('topleft', col=c(1,'grey',3,4), pch=c(16,16,2,3), lty=NA, lwd=2, ncol=2,
legend=c('Xstar','Neighborhood','Xm based on Xstar','Xm based on Xref'))
## View ALC progress
plot(1:m, Xm.alc$alc, type='l', xlab='Inducing point number',
ylab='ALC',main='ALC optimization progress')
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.