A computer implemented method of training a neural network to receive images or features extracted from images and to output, for a given image, scores for each of a set of object categories, each score representing a likelihood that the given image contains an image of an object belonging to the object category, the method comprising: receiving training data, the training data comprising a plurality of training inputs and, for each training input, a respective target output; training a neural network on the training data, wherein the neural network is configured to: receive a network input, convert the network input into a latent representation of the network input, and process the latent representation to generate a network output from the network input, wherein training the neural network on the training data comprises training the neural network on a variational information bottleneck objective, thereby encouraging, for each training input, the latent representation generated for the training input to have low mutual information with the training input while the network output generated for the training input has high mutual information with the target output for the training input, and wherein the training comprises, for each training input, performing an iteration of stochastic gradient descent on a lower bound of the variational information bottleneck objective to determine an update to current values of parameters of the neural network, wherein the lower bound is represented as an objective function to be minimized that satisfies, for a given training input x n: 1 N − log ( q y n | f x n ε + β KL p Z | x n, r Z, where N is the total number of training inputs in the set of training data, q ( y n | f ( x n, ε)) is a score assigned to the target output for the training input x n by the network output for the training input x n, e is noise sampled from a noise distribution, f ( x n, ε) is the latent representation generated from the sampled noise and the intermediate output for the training input x n, β is a fixed positive constant value, KL is the Kullback-Leibler divergence, p ( Z | x n) is the probability distribution over possible latent representations defined by the intermediate output, and r is a variational approximation of a marginal distribution of the latent representations Z; and providing data specifying the trained neural network for use in processing new network inputs. receiving training data, the training data comprising a plurality of training inputs and, for each training input, a respective target output; training a neural network on the training data, wherein the neural network is configured to: receive a network input, convert the network input into a latent representation of the network input, and process the latent representation to generate a network output from the network input, receive a network input, convert the network input into a latent representation of the network input, and process the latent representation to generate a network output from the network input, wherein training the neural network on the training data comprises training the neural network on a variational information bottleneck objective, thereby encouraging, for each training input, the latent representation generated for the training input to have low mutual information with the training input while the network output generated for the training input has high mutual information with the target output for the training input, and wherein the training comprises, for each training input, performing an iteration of stochastic gradient descent on a lower bound of the variational information bottleneck objective to determine an update to current values of parameters of the neural network, wherein the lower bound is represented as an objective function to be minimized that satisfies, for a given training input x n: 1 N − log ( q y n | f x n ε + β KL p Z | x n, r Z, where N is the total number of training inputs in the set of training data, q ( y n | f ( x n, ε)) is a score assigned to the target output for the training input x n by the network output for the training input x n, e is noise sampled from a noise distribution, f ( x n, ε) is the latent representation generated from the sampled noise and the intermediate output for the training input x n, β is a fixed positive constant value, KL is the Kullback-Leibler divergence, p ( Z | x n) is the probability distribution over possible latent representations defined by the intermediate output, and r is a variational approximation of a marginal distribution of the latent representations Z; and providing data specifying the trained neural network for use in processing new network inputs.