Thank you for the explanation. I understand that CNNs can learn filters that are task-specific, but how does the learning process determine the optimal filter values? And can we control the complexity of the learned filters in any way, for example, by limiting the number of trainable parameters?