I've recently been reading up on CNNs and this part of the architecture is really confusing me. Assume, I have an input of size [32*32*3] and pass it to a convolution layer. Now, if my kernel size were to be [5*5*3] and the depth of my convolution layer were to be 1, only one feature map would be produced for the image. Here, each neuron would have a 75 weights (+1 bias). If I wanted to calculate multiple feature maps in this layer, say 3, is each local section (in this example [5*5*3]) of the image looked on by three different neurons and each of their weights trained individually? And what would be the output volume of this layer?
5
-
$\begingroup$ Do not use the term neuron to denote convolutional layers. $\endgroup$ – DuttaA May 17 '19 at 12:50
-
$\begingroup$ @DuttaA what is the recommended term to denote conv layers then? $\endgroup$ – Dishant Sheth May 20 '19 at 4:20
-
$\begingroup$ Convolutional filter or filter is the correct term, not neurons. $\endgroup$ – DuttaA May 20 '19 at 4:27
-
$\begingroup$ @DuttaA the filter is the weights/weight matrix. And, the filter size is the receptive field of the neuron in the conv layer. My question was about processing at the most elementary level of a conv layer and not the conv layer as a whole. You will see majority papers using neurons when describing elementary tasks and filters/kernel when describing the conv layer as whole. It's a debate and this is my perspective on it. $\endgroup$ – Dishant Sheth May 20 '19 at 7:01
-
$\begingroup$ Sure it is. I know many people use the term, but as a person who has beginner level of biology and some knowledge about signal processing the term is grossly misused. $\endgroup$ – DuttaA May 20 '19 at 7:35
Add a comment
|
$\begingroup$
$\endgroup$
Each feature map (or kernel) is independent of each other. If you had $3$ of these filters, your output shape would be $(28, 28, 3)$ (given the appropriate amount of padding and stride) with a total of $75*3=225$ trainable weights.