Neural Network Tutorials - Herong's Tutorial Examples - 1.20, by Dr. Herong Yang
What Is Pooling Layer
This section provides a quick introduction of pooling layer, which reduces the size of the input feature set by pooling a single value out of each local neughbor area.
What Is Pooling Layer? Pooling Layer is a layer of neural nodes in neural network that reduces the size of the input feature set. This is done by dividing the input feature set into many local neighbor areas, and then pooling one output value from each local neighbor area.
The most commonly used method to pool an output value from a local neighbor area is to take the maximum input value of that area.
For example, if we pool a 2-dimensional input image by dividing it into 3x3 pixel local neighbor areas, the pooling layer output can be calculated as:
oi,j = max(xi-1,j-1, xi-1,j, xi-1,j+1, xi, j-1, xi ,j, xi ,j+1, xi+1,j-1, xi+1,j, xi+1,j+1)
If an input image is pooled with 3x3 pixel areas, the size of the input image will be reduced by 9 times. This is a huge saving on processing time and resources. If we use a larger pooling area, we could save even more. But we may lose some details in the original image when using large pooling areas. So we have to be balanced about saving process effort and losing input information.
Here is an example of an input image being pooled using 4x4 pixel areas (source: ccideas.com). As you can see, we lost a lot of information on the image background.
The main purpose of a pooling layer is to reduce the size of input feature set. But it can also be used to reduce "noises" in the output of a convolutional layer. This is why a convolutional layer is commonly followed by a pooling layer.
Table of Contents