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

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

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

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

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

下面结合一个多通道的例子马上就能理解了:
在这里插入图片描述

图 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 指的是卷积核的数目。

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

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

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

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

再来看一个单通道的例子:
在这里插入图片描述

图 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

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐