In a convolutional layer, what best describes the kernel (also called a filter)?
Select an answer to reveal the explanation.
Short Explanation and Infographic
Think of a kernel as a tiny window you drag across the image, checking a patch at a time for a specific pattern like an edge or a curve. That's why the first option is correct: it's a small matrix of learnable weights sliding over the input, computing a dot product at each position to build a feature map. It's not a single scalar added everywhere — that would just shift brightness, not detect shape. It's also not a storage buffer for pooled output; pooling happens after convolution and does something totally different (downsampling). And it has nothing to do with initializing biases — that's a separate part of network setup. The kernel's whole job is pattern detection through this sliding, weight-sharing trick, which is also why CNNs need far fewer parameters than a fully connected layer scanning the same image.
Full explanation below image
Full Explanation
A kernel (or filter) in a convolutional layer is a small matrix of learnable weights — commonly 3x3 or 5x5 — that is convolved across the width and height of the input, computing a dot product between the kernel values and the underlying input patch at every spatial position. The result is a feature map that highlights where the pattern the kernel has learned to detect (an edge, a texture, a color transition) appears in the input. This is correct because convolution's defining property is weight sharing: the same small set of parameters is reused at every spatial location, which drastically reduces parameter count compared to a fully connected layer and gives the network translation invariance. The option describing a single scalar added to every pixel is wrong because that describes a bias term or a brightness offset, not a spatial pattern detector — it carries no information about local structure. The option describing a fixed-size buffer storing the feature map after pooling confuses the kernel with the output of a downstream pooling operation; pooling reduces spatial resolution and operates on the feature map the kernel already produced, so it is a different stage entirely. The option about randomly generating biases is also incorrect: bias initialization is a separate weight-initialization concern unrelated to what a kernel does during the forward pass. As a memory aid, picture the kernel as a stencil: you press it against one region, record how well the region matches the stencil's pattern, then slide the stencil over by a stride and repeat until you've covered the whole input, producing the feature map.