liveBook · Manning

Adam

As explained in Bayesian Optimization in Action

Adam is an adaptive stochastic-gradient optimization algorithm that maintains moving estimates of first and second moments of gradients.

Adam is a gradient-descent optimizer for improving model parameters by repeatedly evaluating a likelihood, computing its gradients, and updating the parameters. section 3.3.2

A typical PyTorch training loop follows these steps:

  • Create an optimizer over the parameter or model parameters to optimize. section 3.3.2
  • Enable training mode for the model and likelihood. section 12.1.2
  • Clear previous gradients, compute the negative likelihood loss, backpropagate, and call optimizer.step(). section 3.3.2
  • Run enough iterations to inspect whether the loss and optimized values converge, then switch to evaluation mode. section 3.3.2

Optimizing a Gaussian-process mean

For a constant-mean GP, optimize only model.mean_module.constant with torch.optim.Adam(..., lr=0.01). A 500-step loop minimizes -mll(output, train_y), updates the constant, and records loss and parameter values for convergence checks. section 3.3.2

model.train()                         #1
likelihood.train()                    #1
 
losses = []
constants = []
for i in tqdm(range(500)):
    optimizer.zero_grad()
 
    output = model(train_x)
    loss = -mll(output, train_y)      #2
 
    loss.backward()                   #3
 
    losses.append(loss.item())
    constants.append(model.mean_module.constant.item())
 
    optimizer.step()                  #3
 
model.eval()                          #4
likelihood.eval()                     #4

Inspect the complete training loop, including gradient clearing, loss computation, backpropagation, parameter updates, and mode changes. section 3.3.2

How Bayesian Optimization in Action covers it

How deep it goes
Implements the training loop and convergence checks but does not explain Adam's internal moment estimates.
Examples
Uses constant-mean Gaussian processes, full GP parameter training, 500 iterations, and loss-versus-parameter convergence plots.
What it assumes
Assumes familiarity with gradient descent, GP models, likelihoods, gradients, and PyTorch training and evaluation modes.
What you can do after
Apply it via PyTorch to train Gaussian-process parameters and evaluate whether optimization has converged.
How it connects
Connects gradient descent with Gaussian processes, likelihood functions, PyTorch, GPyTorch, and model evaluation.

Also explained in

Compare how 7 books explain adam →

Related concepts

This explainer was generated by Manning's knowledge graph from the text of Bayesian Optimization in Action. The section links point to the parts of the book it draws on.