CNN中卷积的含义和可视化表示

卷积中的每个filter也就是过滤器可以被看成特征标识符,随着层数加深,过滤器会越来越复杂
1.低层的卷积过滤器一般代表一些边缘特征,颜色等。
2.较高层的过滤器会代表一些边缘特征的组合,如颜色和边缘组成的简单纹理
3.更高层的过滤器会类似于自然图像中的纹理,如羽毛眼睛鼻子等

如果图像中含有过滤器所识别的特征,则会有较大的**,否则则不会**。例如图像中有一个眼睛,那么所代表眼睛的那个滤波器会**生成较大的响应,而代表鼻子的滤波器就不会**因为图像中没有鼻子这个特征。

考虑过滤器能否**的时候,其实都是考虑的原图中是否有这个特征,而不是考虑上一层输出是否有这个特征。因为一层层的过滤器效果叠加起来,都是对原图的过滤。一个眼睛的特征是由许多特征组合而来,如果经过之前多层的过滤器过滤后的输出依然有响应,而且也被这一层的眼睛过滤器**,则就相当于这一层的过滤器检测了原图中是否有眼睛的特征。
例如
左侧矩阵是原图,右侧是曲线过滤器,因为原图中有曲线这个特征,则曲线过滤器被**,有很大的响应。
CNN中卷积的含义和可视化表示
CNN中卷积的含义和可视化表示
每一层的过滤器对原图的感受的范围是不一样的,这里就是感受野的概念。用感受野来表示网络内部不同神经元对原图像的感受的范围大小,第一层的感受野其实就是过滤器的大小,因为后面的卷积核池化,始得后面层的感受野越来越大。感受野越大,就代表的所接触的原图的范围也就越大,也就能感受更大的特征(浅层的过滤器感受野小,只能感受边缘特征,而高层的过滤器感受野大,可以感受原图中像鼻子眼睛这样的具体特征)。感受野越大,能感受更为全局,语义层次更高的特征;感受野越小,感受的特征越趋向于局部核细节
CNN中卷积的含义和可视化表示
CNN中卷积的含义和可视化表示
参考deep learning with python
分别验证:
可视化卷积神经网络的中间输出(中间层的响应情况)
可视化卷积神经网络的让过滤器响应最大的原图像(其实就是可视化过滤器的识别的特征)

1.可视化中间输出:
通过可视化输出也可以感受到过滤器识别特征的种类。中间的输出某一个图其实就是对应过滤器的响应图,是定量描述过滤器所识别的特征在不同位置中是否存在(存在则有颜色,不存在就是黑色的)
可视化每一层的每一个输出通道,都会对应一个图像,下图是第一层输出的第7个通道,在眼睛处响应比较大,说明过滤器可能是“绿色原点检测器”
CNN中卷积的含义和可视化表示
2.让过滤器响应最大的原始
通过观察让过滤器相应最大的原始图像,可以理解过滤器所识别的特征。下面是VGG16每个block的输出,可以看到底层的过滤器是简单的颜色,高层的则是眼睛羽毛树叶等纹理特征。(从右到左层数加深)
如果原始图像输入的是下面某一个图片,则对应的过滤器产生的响应会是最大的,因此这也反映了过滤器所是别的特征是什么。
CNN中卷积的含义和可视化表示