BACKGROUND

This specification relates to processing images to generate classification outputs, e.g., by processing the images through the layers of an image classification neural network.

Neural networks are machine learning models that employ one or more layers of nonlinear units to predict an output for a received input. Some neural networks include one or more hidden layers in addition to an output layer. The output of each hidden layer is used as input to the next layer in the network, i.e., the next hidden layer or the output layer. Each layer of the network generates an output from a received input in accordance with current values of a respective set of parameters.

SUMMARY

In general, one innovative aspect of the subject matter described in this specification can be embodied in an image classification neural network system implemented by one or more computers that includes a batch normalization layer between a first neural network layer and a second neural network layer, wherein the first neural network layer generates first layer outputs having a plurality of components, where the batch normalization layer is configured to, during training of the neural network system on a batch of training examples: receive a respective first layer output for each training example in the batch; compute a plurality of normalization statistics for the batch from the first layer outputs; normalize each component of each first layer output using the normalization statistics to generate a respective normalized layer output for each training example in the batch; generate a respective batch normalization layer output for each of the training examples from the normalized layer outputs; and provide the batch normalization layer output as an input to the second neural network layer.

For a system of one or more computers to be configured to perform particular operations or actions means that the system has installed on it software, firmware, hardware, or a combination of them that in operation cause the system to perform the operations or actions. For one or more computer programs to be configured to perform particular operations or actions means that the one or more programs include instructions that, when executed by data processing apparatus, cause the apparatus to perform the operations or actions.

Particular embodiments of the subject matter described in this specification can be implemented so as to realize one or more of the following advantages. A neural network system that includes one or more batch normalization layers can be trained more quickly than an otherwise identical neural network that does not include any batch normalization layers. For example, by including one or more batch normalization layers in the neural network system, problems caused by the distribution of a given layer's inputs changing during training can be mitigated. This may allow higher learning rates to be effectively used during training and may reduce the impact of how parameters are initialized on the training process. Additionally, during training, the batch normalization layers can act as a regularizer and may reduce the need for other regularization techniques, e.g., dropout, to be employed during training. Once trained, the neural network system that includes one normalization layers can generate neural network outputs that are as accurate, if not more accurate, than the neural network outputs generated by the otherwise identical neural network system.

The details of one or more embodiments of the subject matter of this specification are set forth in the accompanying drawings and the description below. Other features, aspects, and advantages of the subject matter will become apparent from the description, the drawings, and the claims.

