Reason behind performing dot product on Convolutional Neural networks I was recently exploring CNNs and came to know that initial step consists of multiplying pixels of the input image with the corresponding value in the kernel(dot product of kernel and input image).
What exactly is the reason or intuition behind multiplying individual pixel value and why not add or subtract or divide ?
 A: The most basic operation in a Convolutional neural network is the convolution operation. Given a signal $\mathbf{x}$, which can represent a 1D audio signal or a 2D image, the convolution operation transforms this signal into another signal $\mathbf{y}$ that contains different frequency components.
In the context of classification, the purpose of the convolution operation, together with the activation and pooling operations, is to extract features from the input signal $\mathbf{x}$. Because the outputs of the convolution operation are well-understood, and because a CNN contains less parameters than a fully-connected network, which is more prone to over-fitting, we choose to use the convolution operation.
Here are some resources to better understand the convolution operation:

*

*The Scientist and Engineer's Guide to Digital Signal Processing

*Chapter 6 of this book
A: An intuitive way of thinking about the convolution operation in CNN is that the kernel screens the image for a specific patter. Each kernel/filter is looking for a different patter. If the pixel pattern found in a part of the image matches the kernel, we want a large activation as output at that position. Ff it does not match the pattern of the kernel, we want a small activation at the position. This is best-achieved using an element-wise matrix multiplication.
A good example is the "sobel kernel" used for edge detection. https://towardsdatascience.com/magic-of-the-sobel-operator-bbbcb15af20d
Here, the weights of the kernel are pre-defined in an actual CNN the weights would be learned and it is not directly obvious for which feature they are screening.
