Help to fully understand Convolutional Neural Networks
I've just started to learn about Neural Networks (more specificaly CNNs) and would like to clarify some points.
I've been using this tutorial for Neural Networks and this one for CNN.
Now I believe that I understand how Convolution, ReLU and Pooling are mathematically done, but I can't understand some other steps through the CNN process:
Suppose that we have 1 input image and 4 filters for the first convolution.
1st – After the first convolution, how do we go from 4 feature maps to a bigger number of feature maps? I've seen examples where we go from 4 maps to 6 maps, which makes no sense to me. There is also this Link with a visual example, but I can't understand how to go from 6 Maps to 16 Maps at Convolution Layer 2 (this question was also asked HERE with more details but with no answer that I could understand)
2nd – This Link states the following for "The overall training process of the Convolution Network":
- Step1: We initialize all filters and parameters / weights with random values
What is the range for this random values? Should it all be from 0 to 1?
3rd – How do we decide how many layers would we have, both for Convolution and Fully-Connected? Is this purely arbitrary?
4th (and last)– I do not fully understand how to mathematically do the Fully Connected Layer and the Backpropagation. This question's answer should be really big, so any links with a better explanation than what I read so far might work.
I believe that for the Fully Connected Layer, we should use random numbers (again, which range?), multiply the final result from Convolutions/ReLU/Pool with these numbers, add them and then assign this to a vector, but not sure how many positions this vector would have. Then, how do we go from Fully-connected layer 1 to Fully-connected layer 2 (this example)? How do we decide how many positions each FC Layer has (I only know for the output layer)
OBS: I've asked this question on Stack Overflow but they flagged it as too broad since it had more then one question on the same question, so I hope i'm not breaking any rules here 🙂
submitted by /u/guideo