卷积核(kernel)和过滤器(filter)的区别

之前就遇到过类似的问题,但是没有在中文社区中找到一种通俗易懂的答案,于是决定写下这篇文章,希望能给有类似困惑的人一个比较清晰的解释。

  • 卷积核就是由长和宽来指定的,是一个二维的概念。

  • 而过滤器是是由长、宽和深度指定的,是一个三维的概念。

  • 过滤器可以看做是卷积核的集合。

  • 过滤器比卷积核高一个维度——深度。

下面结合一个多通道的例子马上就能理解了:
卷积核(kernel)和过滤器(filter)的区别

图 1

图1是对一个3通道的图片做卷积操作,卷积核的大小为 3 × 3 3 \times 3 3×3 ,卷积核的数目为3,此时过滤器指的就是这三个卷积核的集合,维度是 3 × 3 × 3 3 \times 3 \times 3 3×3×3 ,前面的 3 × 3 3 \times 3 3×3 指的是卷积核的高度(H)和宽度(W),后面的那个 3 3 3 指的是卷积核的数目。

上面的操作是对三个通道分别做卷积操作,然后将卷积的结果相加,最后输出一个特征图。

即: 一个过滤器就对应一个特征图

注意这个数字对应关系,如果换成卷积核还能否成立?

一般情况下,过滤器的概念应当应用在多通道的情况下,因为在多通道情况下,我们没办法说一个卷积操作就能够产生一个特征图,于是有了过滤器这个概念,便于描述这种情况。(这个是我的猜测,哈哈哈哈)

再来看一个单通道的例子:
卷积核(kernel)和过滤器(filter)的区别

图 2

图2就是对一个单通道的图片做卷积操作,卷积核的大小是 3 × 3 3 \times 3 3×3 ,卷积核的数目为1,最终得到1个特征图。

在单通道情况下,其实过滤器和卷积核可以看做一个东西,即 filter=kernel 。

如果要得到多个特征图其实只需要多加几个卷积核即可。

这时候,一个卷积核就对应一个特征图。

实际具体怎么理解还是要结合实际情况,在单通道情况下,过滤器和卷积核混着用没关系,都可以表示同一种意思;但是在多通道情况下,就要仔细看看作者具体想要表达什么意思了。

参考:

【1】A Comprehensive Introduction to Different Types of Convolutions in Deep Learning
【2】Difference between “kernel” and “filter” in CNN
【3】Types of Convolution Kernels : Simplified