Convolution

Resources

Main Idea

The convolution is an Operator mapping from two functions to another, on the same domain. For two functions f and g both mapping Rd→R it is defined as

(f∗g)(x)=∫Rdf(y)g(x−y)dy.

This is well-defined for a variety of conditions, such as

The function g is often referred to as the Kernel. In many applications, this operation is discretized, such as in Convolutional Neural Networks, which are actually cross-correlations (f(x)⋆g(x)=f(−x)∗g(x)). The discrete convolution for d=1 can be given as

(f∗g)(xj)=∑if(xi)⋅g(xj−xi),

(possibly off by a constant based on Δx), also requiring boundary conditions for i to have a finite range.

Properties