Is there a set of rules or guidelines for designing filters for convolutional neural networks? For example, a 3 x 3 layer with ones in the first column, zeroes in the second, and negative ones in the third may be used as a vertical edge detector for images. How do you find such filters without trying out randomly arranged filters? Many of the answers I found use domain knowledge or are application-specific. In general, how do I design a filter to get a certain pattern in the output value arrangement? Of course, the filters might be learned by a convolutional neural network, but how would I hand-design one? This question on Research Gate has conflicting answers that seem to be domain-specific, e.g. CNN vs. signal processing.
This research paper gives some answers, but based on the abstract, it collates general principles used in machine learning or AI. Would the methods described here be better for designing filters than studying matrix operations or mathematics?