Reputation: 389
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.
Upvotes: 13
Views: 5850
Reputation: 4718
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.
Upvotes: 14