1. A method performed by data processing apparatuses, the method comprising: receiving an initial image; receiving data defining an objective function that is dependent on processing of a neural network trained to identify features of an image, wherein the neural network comprises a plurality of neurons, and wherein the objective function includes terms associated with outputs generated by a subset of the neurons of the neural network during processing of an input image by the neural network; and modifying the initial image to generate a modified image by iteratively performing the following: processing a current version of the initial image using the neural network to generate a current objective score for the current version of the initial image using the objective function, wherein the objective score is calculated based on the outputs generated by the subset of the neurons of the neural network during processing of the input image by the neural network; and modifying the current version of the initial image to increase the current objective score by performing an iteration of gradient descent against the current version of the initial image to enhance a feature detected by the processing, wherein performing the iteration of gradient descent comprises backpropagating gradients through a plurality of layers of the neural network to determine an adjustment to the current version of the initial image.