In the following CNN network, the input is an RGB image with both height and width equal to 81. The convolution operation in the convolutional layer is a standard 2D convolution (i.e., each kernel has the same number of channels as the input, and the kernel goes through local patches of the input to conduct element-wise multiplication and take the sum). "FC10" denotes a fully connected layer with 10 units.
Convolutional layer:
- Number of filters: ?
- Filter size: ?x?
- Padding: valid
- Stride: 1x1
Max-pooling:
- Pool size: 4x4
- Padding: valid
- Stride: ?x?
Flatten
FC 10
Answer the following questions (show the workings):
(a) [6 marks] Assume that the sizes of the output feature maps after the convolutional layer and max pooling layer are 67 (width) x 67 (height) x 12 (number of channels) and 22 (width) x 22 (height) x 12 (number of channels), respectively. Both the padding of the convolutional layer and max-pooling layer is "valid" (no padding). Based on the sizes of the feature maps and other settings of the layers shown in the figure, calculate the number of filters and filter size of the convolutional layer, and the stride of the max-pooling layer.
(b) [4 marks] Assume that the filter size of the convolutional layer is 11x11, the number of filters is 32, the stride is set to 1x1, and the padding is set to "same" (the output size of the feature map will be equal to the input). Compute the number of parameters and multiplications of the convolutional layer (ignore the bias).
(c) [6 marks] To reduce the number of parameters and multiplications of the convolutional layer in Question (b), while keeping the receptive field the same, one possible method is to stack two convolutional layers, e.g., one 3x3 convolutional layer and one 9x9 convolutional layer (both layers have 32 filters). Describe another different stacking of two convolutional layers, and compute the new number of parameters and multiplications of the stacking. (Note: stacking 9x9 and 3x3 does not count as a different stacking)