Neural Network Gaussian Process
NNGP
A Neural Network Gaussian Process (NNGP) is a Gaussian process (GP) obtained as the limit of a certain type of sequence of neural networks. Specifically, a wide variety of network architectures converges to a GP in the infinitely wide limit, in the sense of distribution.
The concept constitutes an intensional definition, i.e., a NNGP is just a GP, but distinguished by how it is obtained.
Motivation
Bayesian networks are a modeling tool for assigning probabilities to events, and thereby characterizing the uncertainty in a model's predictions.
Deep learning and artificial neural networks are approaches used in machine learning to build computational models which learn from training examples.
Bayesian neural networks merge these fields.
They are a type of neural network whose parameters and predictions are both probabilistic.
While standard neural networks often assign high confidence even to incorrect predictions, Bayesian neural networks can more accurately evaluate how likely their predictions are to be correct.
Computation in artificial neural networks is usually organized into sequential layers of artificial neurons.
The number of neurons in a layer is called the layer width.
When we consider a sequence of Bayesian neural networks with increasingly wide layers (see figure), they converge in distribution to a NNGP.
This large width limit is of practical interest, since the networks often improve as layers get wider.
And the process may give a closed form way to evaluate networks.
https://upload.wikimedia.org/wikipedia/commons/transcoded/9/92/Infinitely_wide_neural_network.webm/Infinitely_wide_neural_network.webm.1080p.vp9.webm
Left: a Bayesian neural network with two hidden layers, transforming a 3-dimensional input (bottom) into a two-dimensional output$ (y_1, y_2)(top).
Right: output probability density function$ p(y_1, y_2)induced by the random weights of the network.
Video: as the width of the network increases, the output distribution simplifies, ultimately converging to a multivariate normal in the infinite width limit.
NNGPs also appears in several other contexts:
It describes the distribution over predictions made by wide non-Bayesian artificial neural networks after random initialization of their parameters, but before training;
it appears as a term in neural tangent kernel prediction equations;
it is used in deep information propagation to characterize whether hyperparameters and architectures will be trainable.
It is related to other large width limits of neural networks.
Scope
The first correspondence result had been established in the 1995 PhD thesis of Radford M. Neal, then supervised by Geoffrey Hinton at University of Toronto.
Neal cites David J. C. MacKay as inspiration, who worked in Bayesian learning.
Today the correspondence is proven for:
Single hidden layer Bayesian neural networks; deep fully connected networks as the number of units per layer is taken to infinity; convolutional neural networks as the number of channels is taken to infinity; transformer networks as the number of attention heads is taken to infinity; recurrent networks as the number of units is taken to infinity.
In fact, this NNGP correspondence holds for almost any architecture:
Generally, if an architecture can be expressed solely via matrix multiplication and coordinatewise nonlinearities (i.e., a tensor program), then it has an infinite-width GP.
This in particular includes all feedforward or recurrent neural networks composed of multilayer perceptron, recurrent neural networks (e.g., LSTMs, GRUs), (nD or graph) convolution, pooling, skip connection, attention, batch normalization, and/or layer normalization.
Illustration
Every setting of a neural network's parameters$ \thetacorresponds to a specific function computed by the neural network.
A prior distribution$ p(\theta)over neural network parameters therefore corresponds to a prior distribution over functions computed by the network.
As neural networks are made infinitely wide, this distribution over functions converges to a Gaussian process for many architectures.
The notation used in this section is the same as the notation used below to derive the correspondence between NNGPs and fully connected networks, and more details can be found there.
The figure to the right plots the one-dimensional outputs$ z^{L}(\cdot; \theta)of a neural network for two inputs$ xand$ x^{\ast}against each other.
https://scrapbox.io/files/65e1d8952324d60023a6c669.svg
When parameters$ \thetaof an infinite width network are sampled repeatedly from their prior$ p(\theta), the resulting distribution over network outputs is described by a Gaussian process.
The black dots show the function computed by the neural network on these inputs for random draws of the parameters from$ p(\theta).
The red lines are iso-probability contours for the joint distribution over network outputs$ z^{L}(x;\theta)and$ z^{L}(x^{\ast};\theta)induced by$ p(\theta).
This is the distribution in function space corresponding to the distribution$ p(\theta)in parameter space, and the black dots are samples from this distribution.
For infinitely wide neural networks, since the distribution over functions computed by the neural network is a Gaussian process, the joint distribution over network outputs is a multivariate Gaussian for any finite set of network inputs.
Discusstion
Infinitely wide fully connected network
This section expands on the correspondence between infinitely wide neural networks and Gaussian processes for the specific case of a fully connected architecture.
It provides a proof sketch outlining why the correspondence holds, and introduces the specific functional form of the NNGP for fully connected networks.
The proof sketch closely follows the approach by Novak and coauthors.
Network architecture specification
https://scrapbox.io/files/65e1dc67bee2b70024ebea3b.png
An NNGP is derived which is equivalent to a Bayesian neural network with this fully connected architecture.
Consider a fully connected artificial neural network with inputs$ x, parameters$ \thetaconsisting of weights$ W^land biases$ b^lfor each layer$ lin the network, pre-activations (pre-nonlinearity)$ z^l, activations (post-nonlinearity)$ y^l, pointwise nonlinearity$ \phi(\cdot), and layer width$ n^l.
For simplicity, the width$ n^{L+1}of the readout vector$ z^Lis taken to be 1.
The parameters of this network have a prior distribution$ p(\theta), which consists of an isotropic Gaussian for each weight and bias, with the variance of the weights scaled inversely with layer width.
This network is illustrated in the figure to the right, and described by the following set of equations:
$ \begin{aligned} x &\equiv \text{input} \\ y^l(x) &= \left\{\begin{array}{lcl} x & & l = 0 \\ \phi\left(z^{l-1}(x)\right) & & l > 0 \end{array}\right. \\z^l_i(x) &= \sum_j W^l_{ij} y^l_j(x) + b^l_i \\ W^l_{ij} &\sim \mathcal N\left( 0, \frac{\sigma^2_w}{n^l} \right) \\ b^l_i &\sim \mathcal N\left( 0,\sigma^2_b \right) \\ \phi(\cdot) &\equiv \text{nonlinearity} \\ y^l(x), z^{l-1}(x) &\in \mathbb R^{n^l \times 1} \\ n^{L+1} &= 1 \\ \theta &= \left\{ W^0, b^0, \dots, W^L, b^L \right\} \end{aligned}
$ z^l | K^l is a Gaussian process
The pre-activations$ z^lonly depend on$ y^lthrough its second moment matrix$ K^l.
Because of this, we can say that$ z^lis a Gaussian process conditioned on$ K^l, rather than conditioned on$ y^l,
$ \begin{aligned} z^l_i \mid K^l &\sim \mathcal{GP}\left( 0, \sigma^2_w K^l + \sigma^2_b \right). \end{aligned}
As layer width$ n^l \rightarrow \infty,$ K^l \mid K^{l-1}becomes deterministic
As previously defined,$ K^lis the second moment matrix of$ y^l.
Since$ y^lis the activation vector after applying the nonlinearity$ \phi, it can be replaced by$ \phi\left(z^{l-1}\right), resulting in a modified equation expressing$ K^lfor$ l>0in terms of$ z^{l-1},
$ \begin{aligned} K^l(x, x') &= \frac{1}{n^l} \sum_i \phi\left( z^{l-1}_i(x) \right) \phi\left( z^{l-1}_i(x') \right).\end{aligned}
We have already determined that$ z^{l-1} | K^{l-1}is a Gaussian process.
This means that the sum defining$ K^lis an average over$ n^lsamples from a Gaussian process which is a function of$ K^{l-1},
$ \begin{aligned} \left\{ z^{l-1}_i(x), z^{l-1}_i(x') \right\} &\sim\mathcal{GP}\left( 0, \sigma^2_w K^{l-1} + \sigma^2_b \right).\end{aligned}
As the layer width$ n^lgoes to infinity, this average over$ n^lsamples from the Gaussian process can be replaced with an integral over the Gaussian process:
$ \begin{aligned} \lim_{n^l \rightarrow \infty} K^l(x, x') &= \int dz\, dz'\, \phi( z )\, \phi( z' )\, \mathcal{N}\left( \left[\begin{array}{c} z \\ z' \end{array}\right]; 0, \sigma^2_w \left[ \begin{array}{cc} K^{l-1}(x, x) & K^{l-1}(x, x') \\ K^{l-1}(x', x) & K^{l-1}(x', x') \end{array} \right] + \sigma^2_b \right) \end{aligned}
So, in the infinite width limit the second moment matrix$ K^lfor each pair of inputs$ xand$ x'can be expressed as an integral over a 2d Gaussian, of the product of$ \phi(z)and$ \phi(z').
There are a number of situations where this has been solved analytically, such as when$ \phi(\cdot)is a ReLU, ELU, GELU, or error function nonlinearity.
Even when it can't be solved analytically, since it is a 2d integral it can generally be efficiently computed numerically.
This integral is deterministic, so$ K^l | K^{l-1}is deterministic.
For shorthand, we define a functional$ F, which corresponds to computing this 2d integral for all pairs of inputs, and which maps$ K^{l-1}into$ K^l,
$ \begin{aligned} \lim_{n^l \rightarrow \infty} K^l &= F\left( K^{l-1} \right). \end{aligned}
$ z^L \mid xis an NNGP
By recursively applying the observation that$ K^l \mid K^{l-1}is deterministic as$ n^l \rightarrow \infty, $ K^Lcan be written as a deterministic function of$ K^0,
$ \begin{aligned} \lim_{\min\left( n^1, \dots, n^L\right) \rightarrow \infty} K^L &= F \circ F \cdots \left( K^{0} \right) = F^L\left(K^0\right) , \end{aligned}
where$ F^Lindicates applying the functional$ Fsequentially$ Ltimes.
By combining this expression with the further observations that the input layer second moment matrix$ K^0(x,x')=\tfrac{1}{n^0} \sum_i x_i x'_iis a deterministic function of the input$ x, and that$ z^L | K^Lis a Gaussian process, the output of the neural network can be expressed as a Gaussian process in terms of its input,
$ \begin{aligned} z^L_i(x) &\sim \mathcal{GP}\left( 0, \sigma^2_w F^L\left(K^0\right) + \sigma^2_b \right).\end{aligned}
Software libraries
Neural Tangents is a free and open-source Python library used for computing and doing inference with the NNGP and neural tangent kernel corresponding to various common ANN architectures.