How does a model select the filters used in different layers of a Convolutional Neural Network?

I'm new to CNN as many of us are and am confused in lectures and tutorials when they get to the part where you select how many filters you want. I get the feeling that I'm selecting a number of kernels/filters to pass over the data. I'm familiar with high and low-pass filters. If I were to decide on 64 filters, how are the filters selected? Are they random? Do they come from a specific set? Are the filters specific to different models (resnet vs. r-cnn, etc)? If I say 32 filters will they always be the same filters? The kind of filter I'm talking about filters/kernels such as these or this explanation of performing convolutions

I’m interested in the filters that stay constant throughout the model. I understand the weights on the filters are what is being learned by the model. I guess these can be called filters, kernels or features. How I see it is the image patch is multiplied by the kernel and results in a response map. The bias term on the response map is then the learned weight for that kernel.

1 answer

  • answered 2018-04-17 05:11 BradMcDanel

    The filters are the model parameters that are being learned for the specific task during training. They are multiple methods of initializing the filter weights, but a simple approach would be draws from a normal distribution.

    The structure of the network (e.g., how many CNN layers and how many filters to be learned in each layer), are hyperparameters that are set by you or screened over.