Hello everyone,
I find it hard to understand the topic of convolution… More specifically, I couldn’t get the rationale behind the “weights” that we were asked about in the tutorial.
To be more specific, I don’t understand why the number of weights in a fully connected layer is B^2*C_out?
If there are B units in the input layer, and B units in each of the Cout convolution layers, and each of the output layer is connected to all units in the input layer, the number of weights is B^2 /layer, so B^2*Cout in total.
In CNNs, each output unit connects to only K input units, but the weights are the same for all output units in the same convolution layer. So only K*Cout weights in total. It is as if each of the neurons in one convolution layer is searching, in one part of the input space, for features that are specific to that layer, and the response in one unit is maximal when the activity in its corresponding input units mostly resemble that feature. For instance, if the weights of one convolutional layer are (0 1 0) (k=3), that layer will look for very sharp and short changes between contiguous input units.
Hope this is correct and makes sense, ask again if not, or perhaps someone else can give a better answer.