My doubt is how do I backpropagate error in the Pooling layer, because when I calculate the derivative, there is only 1 element of 4 (for example, when using a 2x2 pooling kernel) that affects the result of the feedforward.
BackPropogation can be applied on pooling layers too.
Pooling in the convolutional network is termed as downsampling or subsampling, which minimizes the number of neurons in the convolutional layer by retaining the important information. There exists a different type of pooling in deep CNN to perform the data processing system.
Summing it up: CNN uses back-propagation and the back propagation is not a simple derivative like ANN but it is a convolution operation as given below.
Pooling layers are used to reduce the dimensions of the feature maps. Thus, it reduces the number of parameters to learn and the amount of computation performed in the network. The pooling layer summarises the features present in a region of the feature map generated by a convolution layer.
Suppose you have a matrix M of four elements
a b
c d
and maxpool(M) returns d. Then, the maxpool function really only depends on d. So, the derivative of maxpool relative to d is 1, and its derivative relative to a,b,c is zero. So you backpropagate 1 to the unit corresponding to d, and you backpropagate zero for the other units.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With