% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/MLPKrigingClass.R
\name{MLPKriging}
\alias{MLPKriging}
\title{Create an MLPKriging model (Deep Kernel Learning)}
\usage{
MLPKriging(
  y,
  X,
  hidden_dims,
  d_out = 2,
  activation = "selu",
  kernel = "gauss",
  regmodel = "constant",
  normalize = FALSE,
  optim = "BFGS+Adam",
  objective = "LL",
  parameters = NULL
)
}
\arguments{
\item{y}{numeric vector of observations (n)}

\item{X}{numeric matrix of inputs (n x d)}

\item{hidden_dims}{integer vector of hidden layer sizes, e.g. \code{c(32, 16)}}

\item{d_out}{output feature dimensionality (default 2)}

\item{activation}{activation function: "relu", "selu", "tanh", "sigmoid", "elu"}

\item{kernel}{covariance kernel: "gauss", "matern3_2", "matern5_2", "exp"}

\item{regmodel}{trend: "constant", "linear", "quadratic"}

\item{normalize}{logical; normalise inputs?}

\item{optim}{optimiser (default "BFGS+Adam")}

\item{objective}{"LL" (log-likelihood)}

\item{parameters}{optional named list of tuning parameters, e.g.
\code{list(max_iter_adam = "300", adam_lr = "0.001", max_iter_bfgs = "50")}}
}
\value{
An S3 object of class "MLPKriging".
}
\description{
Kriging with a joint multi-layer perceptron applied to all
  inputs before the GP kernel is evaluated. The MLP weights, GP range
  parameters, variance and trend are jointly fitted by maximising the
  concentrated log-likelihood.
}
\examples{
X <- as.matrix(seq(0.01, 0.99, length.out = 10))
f <- function(x) 1 - 1/2 * (sin(12*x)/(1+x) + 2*cos(7*x)*x^5 + 0.7)
y <- f(X)
k <- MLPKriging(y, X, hidden_dims = c(16, 8), d_out = 2,
                activation = "selu", kernel = "gauss")
print(k)

}
