# CNN'S are what?

I have a very fundamental question on what CNN'S actually are. I understand fully the training process as to take a bunch of images, start with random filters, convolve, activate, calculate loss, back propagate and learn weights. Fully understood....

But recently I came across this line on Slack

CNN'S can act as a frequency filter as well

for example, a blur is a low-pass filter and it can be implemented as convolution with fixed weights;

Please Explain? (Can't understand this at all)

• Sorry, all the answers are nice but can accept only one.. – Aditya Jun 14 '18 at 18:38

If I've got the point of your question, it means that convolutional nets can learn different filters. You may train a net with random initialization and after training you can find learned-filters which are familiar to you or not. You may see that your model has learned Sobel filter which is a high pass filter or maybe you may see that the weights which are learned are exactly the same as a mean filter which is a low pass filter. In all cases network tries to learn filters that help it find appropriate features of the inputs. The learned filters can be anything. They may be known to you or not. So, yes. They can learn all kind of features like low pass and high pass filters. Also for visualization purposes to fully figure out what is going on inside them I recommend you taking a look at here.

I suspect this is referring to kernels that are used in image processing for a variety of tasks. Without seeing the conversation, this is my interpretation.

The idea of a kernel in image processing is that you take a grid (maybe 3x3) and apply it to all of the locations in an image. The way you apply it is by placing it at a pixel location. Then, the 9 pixels covered by the kernel are multiplied by its weights and summed. That value is placed at that pixel location in the new image. The picture below shows it nicely. Source

You can see how this is very much like how a convolutional filter in a CNN is applied. A set of example kernels is listed on Wikipedia. These kernels perform actions such as blurring and edge detection, so if you had a filter in your CNN with those weights, it would perform the same action.

As you say, CNN convolves. In signal processing the convolution is with continuous data, here it is with discrete values.

This article in Quora explains, how the mathematic expression in neural network forms the same equation than that of two functions in mathematics.

Mathematically, applying a Gaussian blur to an image is the same as convolving the image with a Gaussian function.BLUR in wikipedia

Gaussian function is higher on lower values so it kinda is a low pass filter when applied with convolution.