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.