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 ?

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.
