Lock in Feedback for Sequential Experiments

We have recently uploaded to arXiv a paper on Lock in Feedback for sequential experiments. Here is the abstract:

“We often encounter situations in which an experimenter wants to find, by sequential experimentation, $x_{max} = \arg\max_{x} f(x)$, where $f(x)$ is a (possibly unknown) function of a well controllable variable $x$. Taking inspiration from physics and engineering, we have designed a new method to address this problem. In this paper, we first introduce the method in continuous time, and then present two algorithms for use in sequential experiments. Through a series of simulation studies, we show that the method is effective for finding maxima of unknown functions by experimentation, even when the maximum of the functions drifts or when the signal to noise ratio is low.”

The paper presents a novel solution for the above problem. Here is a simple [R] function to makes this work (ugly using the for loop, but this is closest to the representation in the paper):


lif.2 <- function(x0, A, T, gamma, FUN, TT, sigma=0, plot=FALSE, ...){
# Logging:
xy <- matrix(NA, nrow=TT, ncol=3)

# params:
yws <- rep(NA, T)
w <- (2*pi)/T

# the loop:
for(t in 1:TT){
xt <- x0 + A*cos(w*t)
yt <- FUN(xt, sigma=sigma)
yws <- push(yws, yt * cos(w*t))

if(t > T){
yw <- sum(yws) / T
x0 <- x0 + (gamma / T) * yw
}
xy[t,] <- c(xt, x0, yt)
}

# A plot of x0 if needed
if(plot){
plot(xy[,2], type="l", ...)
}

# Return the data
return(xy)
}

For the paper see: http://arxiv.org/pdf/1502.00598.pdf

Start of Nth-Iteration lab website.

Today, we quietly celebrate the start of the $N^{th}$-iteration lab website. We will be posting news regarding the lab right here, and you will be able to find the publications of the lab, the people involved, and the projects that the lab is involved in through the menu above.

It’s pretty dull right now. But we hope to be adding new content regularly. Thanks for your time!