Answers.Body: <p>The kernel is the matrix of numbers that implements the filter. The filter is the effect  or function that is applied to the input signal.</p>
  <p>It is possible to conceive of filters in the general sense that work other than applying convolutions, but of course those mainly exist outside of CNNs, and a complex enough CNN can approximate any filter that is implemented differently.</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2022-02-19T10:03:13.970Z
Answers.LastActivityDate: 2022-02-19T10:03:13.970Z
Answers.UserDisplayName: Neil Slater
Body: <p>Consider the following excerpt from a paragraph, taken from the topic <strong>Detecting features with convolutions</strong> of the textbook named <strong><a href="https://web.archive.org/web/20220113022756/https://pytorch.org/assets/deep-learning/Deep-Learning-with-PyTorch.pdf" rel="nofollow noreferrer">Deep Learning with PyTorch</a></strong> by <em>Eli Stevens et al.</em>, regarding convolutional neural networks.</p>
  <blockquote>
  <p>From this angle, the job of a convolutional neural network is to
  <strong>estimate the kernel of a set of filter banks</strong> in successive layers
  that will transform a multichannel image into another multichannel
  image, where different channels correspond to different features (such
  as one channel for the average, another channel for vertical edges,
  and so on).</p>
  </blockquote>
  <p>The usage of words kernel and filter bank in this excerpt confused me as i generally treat both to be the same.</p>
  <p>What is the subtle difference between a filter and a kernel in the context of CNN?</p>
  
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2022-02-19T11:24:27.263Z
Comments.Text: In the context of CNNs, filter and kernel are the same thing, although I am not saying that you couldn't make a conceptual distinction between the two. I've never seen "filter" being used to refer to something that is different than the "kernel". It's just the tensor of weights/parameters. Filter banks, which I am not familiar with, are something specific, which is used in other contexts other than CNNs. The author is probably trying to make an analogy with filter banks. Without knowing the details of how "filter banks" are mathematically defined and implemented, I cannot say more than this.
Comments.UserDisplayName: nbro
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2022-02-19T11:30:25.467Z
Comments.Text: As Neil says below, you could say that the kernel is used to implement the filtering operation. For example, in image processing, you could say that you use a Gaussian kernel to filter/blur an image. So, in this sense, there's a conceptual difference. However, in the context of CNNs, this difference is never made, because we usually don't think of CNNs as neural networks that filter the image, but that extract features from the image.
Comments.UserDisplayName: nbro
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2022-02-19T11:37:51.413Z
Comments.Text: Keep in mind that you can also have a neural network that "filters" the image. For example, you can implement some autoencoder that deblurs/filters the image. However, you could well also say that this autoencoder uses the convolution to deblur the image and never mention the word "filter" or use the word filter to refer to the matrix of weights (i.e. kernel).
Comments.UserDisplayName: nbro
Tags: <convolutional-neural-networks><terminology><filters>
Title: Is there any subtle difference between kernel and filter in the context of neural netowrks?
UserDisplayName: hanugm
ThreadText: # Is there any subtle difference between kernel and filter in the context of neural netowrks?
  
  (Asked by: username_0 on 2022-02-18)
  
  Consider the following excerpt from a paragraph, taken from the topic **Detecting features with convolutions** of the textbook named **[Deep Learning with PyTorch](https://web.archive.org/web/20220113022756/https://pytorch.org/assets/deep-learning/Deep-Learning-with-PyTorch.pdf)** by *Eli Stevens et al.*, regarding convolutional neural networks.
  
  > From this angle, the job of a convolutional neural network is to
  > **estimate the kernel of a set of filter banks** in successive layers
  > that will transform a multichannel image into another multichannel
  > image, where different channels correspond to different features (such
  > as one channel for the average, another channel for vertical edges,
  > and so on).
  
  The usage of words kernel and filter bank in this excerpt confused me as i generally treat both to be the same.
  
  What is the subtle difference between a filter and a kernel in the context of CNN?
  
  **Tags:** convolutional-neural-networks, terminology, filters
  
  > **Comments:**
  > **username_1**: In the context of CNNs, filter and kernel are the same thing, although I am not saying that you couldn't make a conceptual distinction between the two. I've never seen "filter" being used to refer to something that is different than the "kernel". It's just the tensor of weights/parameters. Filter banks, which I am not familiar with, are something specific, which is used in other contexts other than CNNs. The author is probably trying to make an analogy with filter banks. Without knowing the details of how "filter banks" are mathematically defined and implemented, I cannot say more than this.  
  > **username_1**: As username_2 says below, you could say that the kernel is used to implement the filtering operation. For example, in image processing, you could say that you use a Gaussian kernel to filter/blur an image. So, in this sense, there's a conceptual difference. However, in the context of CNNs, this difference is never made, because we usually don't think of CNNs as neural networks that filter the image, but that extract features from the image.  
  > **username_1**: Keep in mind that you can also have a neural network that "filters" the image. For example, you can implement some autoencoder that deblurs/filters the image. However, you could well also say that this autoencoder uses the convolution to deblur the image and never mention the word "filter" or use the word filter to refer to the matrix of weights (i.e. kernel).  
  
  ---
  
  ## 1 answers
  
  ### Answer by username_2 on 2022-02-19. Score: 1
  
  The kernel is the matrix of numbers that implements the filter. The filter is the effect or function that is applied to the input signal.
  
  It is possible to conceive of filters in the general sense that work other than applying convolutions, but of course those mainly exist outside of CNNs, and a complex enough CNN can approximate any filter that is implemented differently.
  
  
  ---
  
  