Convolutional neural networks are designed to process image data (or in general multiple arrays) and recognize patterns in it. The input of the convolutional layer is divided into local patches which are connected to the next layer (feature map) via a set of weights (trainable filters) [1]}, [2]}. A deep architecture with convolutional layers represents the current state of the art in computer vision, and is inspired by the biological organisation in the visual cortex in animals and humans [3]}. A typical convolutional network uses a pooling layer after the convolutional one. A pooling layer serves to reduce the spatial size of the representation and the amount of computation in the network [3]}, and also allows the network to achieve spatial invariance [2]}. A max pooling layer (the most common type of pooling layers, used in our studies) computes the maximum of a local subregion of units in the feature maps.
<FIGURE>