Solved – Why neural and convolutional neural network detect edges first

computer visiondeep learningneural networks

There are many filters doing different tasks for us like edge filters, bar filters. Major filter banks are

The Leung-Malik (LM) Filter Bank

The Schmid (S) Filter Bank

The Maximum Response (MR) Filter Banks

We can use these filters for feature extraction, after that we can apply max pooling and other things. The basic thing is that these filters are hand crafted, so they cannot learn weights because we are using fixed filter banks.
Contrary to above said techniques for feature extraction, we also have deep learning techniques like neural networks and convolutional networks which learns weights or features over the time. In deep learning we dont tell which features are important rather our network learns itself over the time.
Question:
In deep learning when we dont tell anything then why is that so that layers closer to input learn the features to detect edges or bars? Why is that so that later layers learn to detect finer details?
We did not tell our network to learn edges first, we did not tell our network to learn finer details later. How our network gets to know that it has to learn edge filters in upper layers and other filters in lower layers? Am i missing some basic thing to understand neural networks? Plz correct me.

Best Answer

Convolution operation have close relationship to the frequency domain. See Convolution Theorem for details.

What makes edge an edge? Sudden changes / high frequency changes on the value. Intuitively this is why convolution can detect edges.


For example, Think about the following 1D toy data.

000000000000111111111111

For the homogeneous part the frequency is 0.