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.