These models are based, mainly, around the ideas introduced
in the Neocognitron [1]},
consisting of layers of identical feature detectors
combined with layers of units that pool these features
into larger structures.
The general term convolutional neural network is used to
refer to the various variations on this design,
in reference to the mathematical name for an operation equivalent
to applying the same filter to all positions in an image.
The convolutional layers themselves contain the trainable
feature detectors, and these are typically followed by
pooling layers which apply a fixed aggregation to those outputs,
such as taking an average or maximum.
Particular architectures in this family may combine these
convolution and pooling layers with other components
such as fully connected layers or skip-connections.
