问题
I have few question regarding CNN. In the figure below between Layer S2 and C3, 5*5 sized kernel has been used.
Q1. How many kernel has been used there? Do each of these kernel connected with each of the feature map in Layer S2 ?
Q2. When using Max-pooling, while backpropageting error how a max-pooling feature/neuron knows/determines from which (feature map/neuron) in its previous immediate layer it got the max value ?
Q3. If we want to train kernel then we initialize with random value, is there any equation to update these kernel values using backpropagated error value ?
Q4. In the above figure how the backpropagation works between 'Input' and 'C5' layer after getting error from Layer F6 ?
回答1:
Q1: C1 -> 6 Kernels C3 -> 16 Kernels
S2 and S4 are just subsampling, this means 2*2 Pixel will be decreased to 1 Pixel The most populare Pooling Mechanism is the MAX Pooling:
( 5 10 ) -->
( ) --> (10)
( 7 8 ) -->
Q2: You can save the information or if you have enough time re-run the max_pooling and check where the maximum is and then put the error at this position. The other values in this 2*2 Block are zero
来源:https://stackoverflow.com/questions/36158599/how-backpropagation-works-in-convolutional-neural-networkcnn