I was trying to understand the convolution better and its mathematical properties and interpretations in engineering (specially in the context of computer vision). Recall the convolution:
$$ s(t) = (x * w)(t) = \int x(a) w(t-a) da$$
the first argument (to the convolution) $x$ is usually called the input but the second argument $w$ (to the convolution) is usually called the "kernel". However, in computer vision and convolutional neural networks, the second argument is usually called a "template" (maybe the image of an edge or a wheel, or some part of an object). However, in other areas, I think is signals and systems, its usually called a "filter".
As a computer software engineer, I believe that naming is extremely important because it gives us the power to think about specific concepts. Having bad names can lead to sloppy thinking. Therefore, I was assuming that these technical names probably were chosen with these ideas in mind. Does someone know or understand why these names have been used to the second argument of the convolution?
The specific names that I am aware of are:
- Kernel (from pure maths?)
- Filter (signals and systems?)
- Template (Computer vision/ Machine Learning)
Not sure if I am missing any, but I'd like to understand these naming better and possibly (hopefully) understand intuitively better what the convolution operator does and its interpretation in engineering and mathematics.